import 'tdesign-icons-web-components/esm/components/chevron-down'; import 'tdesign-icons-web-components/esm/components/chevron-left'; import 'tdesign-icons-web-components/esm/components/chevron-right'; import '../../select-input'; import 'dayjs/locale/zh-cn'; import { Component, OmiProps } from 'omi'; import { DateValue, PresetRange, TdDateRangePickerProps } from '../type'; export interface DatePickerTableCell { text: string | number; value: Date; time?: string; active?: boolean; highlight?: boolean; hoverHighlight?: boolean; disabled?: boolean; additional?: boolean; now?: boolean; firstDayOfMonth?: boolean; lastDayOfMonth?: boolean; weekOfYear?: boolean; startOfRange?: boolean; endOfRange?: boolean; hoverStartOfRange?: boolean; hoverEndOfRange?: boolean; dayjsObj?: any; } export interface RangePanelProps extends Pick { format: string; value?: string[]; hoverValue?: string[]; year: number[]; month: number[]; activeIndex?: number; isFirstValueSelected?: boolean; cancelRangeSelectLimit?: boolean; onCellClick?: (value: Date, context: { e: MouseEvent; partial: 'start' | 'end'; }) => void; onCellMouseEnter?: (value: Date, context: { partial: 'start' | 'end'; }) => void; onCellMouseLeave?: (context: { e: MouseEvent; }) => void; onJumperClick?: (context: { trigger: 'prev' | 'next' | 'current'; partial: 'start' | 'end'; }) => void; onMonthChange?: (month: number, context: { partial: 'start' | 'end'; }) => void; onYearChange?: (year: number, context: { partial: 'start' | 'end'; }) => void; onPresetClick?: (preset: DateValue[] | (() => DateValue[]), context: { preset: PresetRange; e: MouseEvent; }) => void; class?: string; style?: Record | string; } export default class RangePanel extends Component { static defaultProps: Partial; private classPrefix; private startMonthPopupVisible; private startYearPopupVisible; private endMonthPopupVisible; private endYearPopupVisible; private startYearOptions; private endYearOptions; private scrollAnchor; private startYearPanelRef; private endYearPanelRef; private cachedPopupAttach; install(): void; receiveProps(nextProps: RangePanelProps, oldProps: RangePanelProps): void; private convertToDate; private resolveDisableDate; private buildWeekdays; private getQuarterLabels; /** * 根据mode生成对应的日期/周/月/季度/年数据,并标记选中、悬浮高亮、范围等状态 */ private buildTableData; private getMonthOptions; private initYearOptions; private loadMoreYear; private adjustYearScrollPosition; private handleMonthPopupVisibleChange; private handleYearPopupVisibleChange; private handleMonthOptionClick; private handleYearOptionClick; private handlePanelTopClick; private handlePanelBottomClick; private handleYearPanelScroll; private handlePaginationChange; private getMonthLabel; private getNearestYearValue; private getYearLabel; private getPaginationTips; private handleUpdateScrollTop; private updateScrollPosition; private findPopupContainer; private resolvePopupAttach; private getCellValueWithTime; private renderTableCell; private renderTable; private renderMonthPanel; private renderYearPanel; private renderPanelContent; /** * 根据presetsPlacement决定预设区域是垂直或水平布局 */ private renderPresets; render(props: OmiProps): JSX.Element; }