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, PresetDate, TdDatePickerProps } 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 SinglePanelProps extends Pick { format: string; value?: DateValue | DateValue[]; formattedValue?: string; year: number; month: number; multiple?: boolean; presets?: PresetDate; presetsPlacement?: 'left' | 'top' | 'right' | 'bottom'; onCellClick?: (value: Date, context: { e: MouseEvent; }) => void; onCellMouseEnter?: (value: Date) => void; onCellMouseLeave?: (context: { e: MouseEvent; }) => void; onJumperClick?: (context: { trigger: 'prev' | 'next' | 'current'; }) => void; onMonthChange?: (month: number) => void; onYearChange?: (year: number) => void; onPresetClick?: (preset: DateValue | (() => DateValue), context: { preset: PresetDate; e: MouseEvent; }) => void; class?: string; style?: Record | string; } export default class DatePickerPanel extends Component { static defaultProps: Partial; private classPrefix; private monthPopupVisible; private yearPopupVisible; private yearOptions; private scrollAnchor; private yearPanelRef; private cachedPopupAttach; install(): void; receiveProps(nextProps: SinglePanelProps, oldProps: SinglePanelProps): void; private convertToDate; private resolveDisableDate; /** * 根据firstDayOfWeek调整星期顺序,week mode额外添加"周"列 */ private buildWeekdays; private getQuarterLabels; /** * 根据mode生成对应的日期/周/月/季度/年数据,并标记选中、禁用等状态 */ private buildTableData; private getMonthOptions; private initYearOptions; private loadMoreYear; private adjustYearScrollPosition; private getYearScrollContainer; private handleMonthPopupVisibleChange; private handleYearPopupVisibleChange; private handleMonthOptionClick; private handleYearOptionClick; private handlePanelTopClick; private handlePanelBottomClick; private handleYearPanelScroll; private handlePaginationChange; private getMonthLabel; private getNearestYearValue; private getYearLabel; private renderMonthPanel; private renderYearPanel; private getPaginationTips; private handleUpdateScrollTop; private updateScrollPosition; private findPopupContainer; private resolvePopupAttach; private getCellValueWithTime; private renderTableCell; private renderTable; /** * 根据presetsPlacement决定预设区域的位置样式 */ private renderPresets; render(props: OmiProps): JSX.Element; }