import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core'; import { SimDateAdapter } from '@ngx-simple/core/datetime'; import { NgClassInterface } from '@ngx-simple/core/types'; import { Subject } from 'rxjs'; import { CalendarUserEvent } from './calendar-body.component'; import { DateRange } from './date-selection-model'; import { SimMonthViewComponent } from './month-view.component'; import { SimMultiYearViewComponent } from './multi-year-view.component'; import { SimTimeViewComponent } from './time-view.component'; import { SimYearViewComponent } from './year-view.component'; export declare type SimCalendarView = 'month' | 'year' | 'multi-year' | 'date' | 'week'; export declare class SimCalendarComponent implements OnChanges, AfterContentInit { private _changeDetectorRef; private _dateAdapter; 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); get currentView(): SimCalendarView; set currentView(value: SimCalendarView); get activeDate(): D; set activeDate(value: D); /** 表示日历开始的时期(月或年)的日期 */ get startAt(): D | null; set startAt(value: D | null); simCalendarFooter: TemplateRef; /** 日历是否应该在月或年视图中启动 */ startView: SimCalendarView; /** * 选择面板 决定 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'; /** 用于过滤哪些日期可选的方法 */ dateFilter: (date: D) => boolean; /** 可用于将自定义CSS类添加到日期的函数 */ dateClass: (date: D) => NgClassInterface; /** 比较范围的开始 */ comparisonStart: D | null; /** 比较范围的结束 */ comparisonEnd: D | null; enablePrev: boolean; enableNext: boolean; readonly selectedChange: EventEmitter; /** 切换header button发出 */ readonly toggleActiveDateChange: EventEmitter<[D, SimCalendarView, number]>; /** 选择任何日期时发出 */ readonly userSelection: EventEmitter>; /** * 退出在多年视图中选择的年份。 这并不意味着所选日期会发生变化。 */ readonly yearSelected: EventEmitter; /** * 退出在年视图中选择的月份。 这并不意味着所选日期会发生变化。 */ readonly monthSelected: EventEmitter; /** 引用当前月份视图组件 */ timeView: SimTimeViewComponent; /** 引用当前月份视图组件 */ monthView: SimMonthViewComponent; /** 引用当前年份视图组件 */ yearView: SimYearViewComponent; /** 引用多年份视图组件 */ multiYearView: SimMultiYearViewComponent; stateChanges: Subject; private _startAt; private _currentView; private _selected; private _activeDate; private _minDate; private _maxDate; constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: SimDateAdapter); ngOnChanges(changes: SimpleChanges): void; ngAfterContentInit(): void; focusActiveCell(): void; _yearSelectedInMultiYearView(normalizedYear: D): void; _monthSelectedInYearView(normalizedYear: D): void; _goToDateInView($event: D, view: SimCalendarView): void; updateTodaysDate(): void; _dateSelected($event: CalendarUserEvent): void; }