import React, { ReactInstance } from 'react'; import PropTypes from 'prop-types'; import CalendarFoundation, { CalendarAdapter, EventObject, MonthData, MonthlyEvent, ParsedRangeEvent } from '@douyinfe/semi-foundation/lib/cjs/calendar/foundation'; import { DateObj } from '@douyinfe/semi-foundation/lib/cjs/calendar/eventUtil'; import BaseComponent from '../_base/baseComponent'; import { Locale } from '../locale/interface'; import { MonthCalendarProps } from './interface'; import '@douyinfe/semi-foundation/lib/cjs/calendar/calendar.css'; export interface MonthCalendarState { itemLimit: number; showCard: Record; parsedEvents: MonthlyEvent; cachedKeys: Array; } export default class monthCalendar extends BaseComponent { static propTypes: { displayValue: PropTypes.Requireable; header: PropTypes.Requireable; events: PropTypes.Requireable; mode: PropTypes.Requireable; markWeekend: PropTypes.Requireable; width: PropTypes.Requireable>; height: PropTypes.Requireable>; style: PropTypes.Requireable; className: PropTypes.Requireable; dateGridRender: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onClose: PropTypes.Requireable<(...args: any[]) => any>; onMoreClick: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { displayValue: Date; events: EventObject[]; mode: string; }; static contextType: React.Context; cellDom: React.RefObject; foundation: CalendarFoundation; cardRef: Map; optionContainerEl: Map; contentCellHeight: number; monthlyData: MonthData; clickOutsideHandler: (e: MouseEvent) => void; constructor(props: MonthCalendarProps); get adapter(): CalendarAdapter; calcItemLimit: () => number; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: MonthCalendarProps, prevState: MonthCalendarState): void; handleClick: (e: React.MouseEvent, val: [Date]) => void; closeCard(e: React.MouseEvent, key: string): void; showCard: (e: React.MouseEvent, key: string) => void; handleMoreClick: (e: React.MouseEvent, key: string, date: Date, remaining: number) => void; renderHeader: (dateFnsLocale: Locale['dateFnsLocale']) => React.JSX.Element; renderEvents: (events: ParsedRangeEvent[]) => React.JSX.Element[]; renderCollapsed: (events: MonthlyEvent['day'][number], itemInfo: DateObj, listCls: string, month: string) => React.JSX.Element; formatDayString: (dateObj: Date, month: string, date: string) => string | number | boolean | Iterable | React.JSX.Element; renderCusDateGrid: (date: Date) => React.ReactNode; renderWeekRow: (index: number | string, weekDay: MonthData[number], events?: MonthlyEvent) => React.JSX.Element; renderMonthGrid: () => React.JSX.Element; render(): React.JSX.Element; }