import { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core'; import { SimDateAdapter } from '@ngx-simple/core/datetime'; import { CalendarCell, CalendarUserEvent, SimCalendarBodyComponent, SimCalendarCellClassFunction } from './calendar-body.component'; import { DateRange } from './date-selection-model'; import { DateFilterFn } from './datepicker-input-base'; /** * 一个内部组件,用于在日期选择器中显示单个年份。 */ export declare class SimYearViewComponent implements AfterContentInit { private _changeDetectorRef; _dateAdapter: SimDateAdapter; /** 在年视图中显示的日期(除年以外的所有内容都将被忽略) */ get activeDate(): D; set activeDate(value: D); /** 当前选定的日期 */ get selected(): DateRange | D | null; set selected(value: DateRange | D | null); /** 最小选择日期 */ get minDate(): D | null; set minDate(value: D | null); /** 最大选择日期 */ get maxDate(): D | null; set maxDate(value: D | null); /** 用于过滤哪些日期可选的函数 */ dateFilter: DateFilterFn; dateClass: SimCalendarCellClassFunction; /** * 选择面板 决定 startView 值 * year 选择多年面板 => multi-year * month 选择月份面板 => multi-year | year * week 选择周面板 => multi-year | year | month * date 选择日期面板 => multi-year | year | month * date-time 选择日期时间面板 => multi-year | year | month | date */ picker: 'year' | 'month' | 'week' | 'date' | 'datetime'; /** 选择新月份时发出 */ readonly selectedChange: EventEmitter; /** 发出选定的月份。 当 picker为 'month' 发出 */ readonly userSelection: EventEmitter>; /** 发出选定的月份。只是月份发现变化 */ readonly monthSelected: EventEmitter; /** 在激活任何日期时发出 */ readonly activeDateChange: EventEmitter; _calendarBody: SimCalendarBodyComponent; /** 月份的数据 */ _months: CalendarCell[][]; /** 今天是今年当前的月份。 如果今天在不同的年份,则为Null。 */ _todayMonth: number | null; /** 选定的日期是在今年的哪个月。如果选择的日期在不同的年份,则为Null。 */ _selectedMonth: number | null; private _activeDate; private _minDate; private _maxDate; private _selected; constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: SimDateAdapter); ngAfterContentInit(): void; _focusActiveCell(): void; /** 选择新的月份时处理 */ _monthSelected(event: CalendarUserEvent): void; /** 当日历处于多年视图中时,处理日历主体上的按键事件 */ _handleCalendarBodyKeydown(event: KeyboardEvent): void; _init(): void; private _createCellForMonth; /** 月份的过滤器 */ private _shouldEnableMonth; /** * 测试组合月份/年是否在此之后。maxDate,只考虑它的月份和年份 */ private _isYearAndMonthAfterMaxDate; /** * 测试组合月份/年是否在此之前。只考虑月份和年份 */ private _isYearAndMonthBeforeMinDate; private _getMonthInCurrentYear; /** 根据模型值设置当前选择的月份 */ private _setSelectedMonth; }