import { default as EaBase } from '../../core/EaBase'; import { Dayjs } from 'dayjs'; export type ControllerType = "button" | "select"; export interface DayOption { prevMonthRemainingDays: number[]; currentMonthDays: number[]; nextMonthRemainingDays: number[]; } export interface CalendarSelectDetail { year: number; month: number; date: number; day: number; fullDate: string; } /** * @summary 日历组件,用于显示和选择日期,支持按钮/下拉控制器和国际化。 * @status stable * @since 3.0 * * @dependency ea-button * @dependency ea-select * * @slot header - 自定义头部内容。 * * @event ea-select - 选择日期时触发,detail: `{ year, month, date, day, fullDate }`。 * * @csspart container - 外层容器。 * @csspart header - 头部容器。 * @csspart title - 标题部分。 * @csspart controller-wrapper - 控制器包装器。 * @csspart controller-group - 控制器组。 * @csspart controller - 控制器通用部分。 * @csspart prev - 上一月控制器。 * @csspart next - 下一月控制器。 * @csspart current - 当前/今天控制器。 * @csspart year - 年份选择器。 * @csspart month - 月份选择器。 * @csspart body - 主体表格。 * @csspart thead - 表头。 * @csspart thead-tr - 表头行。 * @csspart th - 表头单元格。 * @csspart tbody - 表体。 * @csspart row - 日期行。 * @csspart day - 日期单元格。 * @csspart prev-month - 上月日期单元格。 * @csspart current-month - 当月日期单元格。 * @csspart next-month - 下月日期单元格。 * * @cssproperty --ea-calendar-bg-color - 组件背景颜色。 * @cssproperty --ea-calendar-border-color - 组件边框颜色。 * @cssproperty --ea-calendar-border-radius - 组件圆角。 * @cssproperty --ea-calendar-shadow - 组件阴影。 * @cssproperty --ea-calendar-header-padding - 头部内边距。 * @cssproperty --ea-calendar-header-title-font-size - 标题字体大小。 * @cssproperty --ea-calendar-header-title-font-weight - 标题字体粗细。 * @cssproperty --ea-calendar-header-title-color - 标题颜色。 * @cssproperty --ea-calendar-body-padding - 主体内边距。 * @cssproperty --ea-calendar-thead-bg-color - 表头背景颜色。 * @cssproperty --ea-calendar-th-color - 表头单元格颜色。 * @cssproperty --ea-calendar-th-font-weight - 表头单元格字体粗细。 * @cssproperty --ea-calendar-th-padding - 表头单元格内边距。 * @cssproperty --ea-calendar-th-border-color - 表头单元格边框颜色。 * @cssproperty --ea-calendar-day-height - 日期单元格高度。 * @cssproperty --ea-calendar-day-hover-bg-color - 日期单元格悬停背景颜色。 * @cssproperty --ea-calendar-day-active-bg-color - 选中日期背景颜色。 * @cssproperty --ea-calendar-day-active-color - 选中日期文字颜色。 * @cssproperty --ea-calendar-day-active-border-color - 选中日期边框颜色。 * @cssproperty --ea-calendar-day-active-hover-bg-color - 选中日期悬停背景颜色。 * @cssproperty --ea-calendar-day-today-color - 今日日期文字颜色。 * @cssproperty --ea-calendar-day-today-font-weight - 今日日期字体粗细。 * @cssproperty --ea-calendar-day-out-of-range-color - 非当月日期文字颜色。 * @cssproperty --ea-calendar-day-out-of-range-hover-color - 非当月日期悬停文字颜色。 * @cssproperty --ea-calendar-day-out-of-range-hover-bg-color - 非当月日期悬停背景颜色。 * @cssproperty --ea-calendar-controller-year-width - 年份选择器宽度。 * @cssproperty --ea-calendar-controller-month-width - 月份选择器宽度。 * @cssproperty --ea-calendar-controller-group-gap - 控制器组间距。 */ export declare class EaCalendar extends EaBase { private _container; private _title; private _controllerWrapper; private _thead; private _tbody; private _dateChangeAbortController?; private _isEaSelectImported; private _isEaButtonImported; private _displayDate; value: string; controllerType: ControllerType; get displayDate(): Dayjs; set displayDate(value: Dayjs | string); updateContainerClasslist(): string; private _handleTodayClick; private _handleControllerRender; private _initButtonControllerEvent; private _initSelectControllerEvent; /** @param weekList - 星期名称列表 @param weekFullList - 完整星期名称列表 @returns 星期行 HTML 字符串 */ private _renderWeekHeader; /** @param date - 要渲染的日期 */ private _updateCalendarDays; private _handleDayCellClick; /** 处理日历网格键盘导航 */ private _handleGridKeydown; /** @param fromCell - 当前聚焦单元格 @param toCell - 目标聚焦单元格 */ private _moveFocus; /** @param refDate - 参考日期 @returns 日期数组选项 */ private _getDayOption; /** @param year - 年份 @param month - 月份 @param date - 日期 @returns 是否是今天 */ private _isToday; /** @returns 日历天数的 HTML 字符串 */ private _renderDayCells; /** @param year - 年份 @param month - 月份 @param date - 日期 @returns 是否是选中日期 */ private _isActiveDate; html(): string; $updateLocalization(locale: string): void; $mount(): void; $beforeUnmount(): void; } export default EaCalendar; //# sourceMappingURL=index.d.ts.map