import { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core'; import { SimDateAdapter } from '@ngx-simple/core/datetime'; import { CalendarCell, CalendarUserEvent, SimCalendarBodyComponent } from './calendar-body.component'; import { DateRange } from './date-selection-model'; /** 一次选择20年 */ export declare const yearsPerPage = 20; /** 一行显示4年 */ export declare const yearsPerRow = 4; export declare class SimMultiYearViewComponent 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: (date: D) => boolean; /** * 选择面板 决定 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; /** 发出选定的年份。 这并不意味着所选日期发生了变化 */ readonly yearSelected: EventEmitter; /** 发出选定的年份。 当 picker为 'year' 发出 */ readonly userSelection: EventEmitter>; /** 在激活任何日期时发出 */ readonly activeDateChange: EventEmitter; _calendarBody: SimCalendarBodyComponent; /** 年份面板的数据 */ _years: CalendarCell[][]; /** 当前的年份 */ _todayYear: number; /** 选定的年份 */ _selectedYear: number | null; private _minDate; private _maxDate; private _selected; private _activeDate; constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: SimDateAdapter); ngAfterContentInit(): void; _init(): void; _focusActiveCell(): void; _getActiveCell(): number; /** 选择新的一年时处理 */ _yearSelected(event: CalendarUserEvent): void; /** 当日历处于多年视图中时,处理日历主体上的按键事件 */ _handleCalendarBodyKeydown(event: KeyboardEvent): void; /** 创建给定年份的CalendarCell数据 */ private _createCellForYear; /** 给定年份是否启用 */ private _shouldEnableYear; /** 根据模型值设置当前突出显示的年份 */ private _setSelectedYear; } export declare function isSameMultiYearView(dateAdapter: SimDateAdapter, date1: D, date2: D, minDate: D | null, maxDate: D | null): boolean; /** * 首次打开多年视图时,将显示活动的年份。 因此,我们计算了活动年份和 *slot* 之间的多少年,当页面进入视图时,我们的“startingYear”将呈现在其中。 */ export declare function getActiveOffset(dateAdapter: SimDateAdapter, activeDate: D, minDate: D | null, maxDate: D | null): number;