import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core'; import { DateAdapter } from '../dateadapter/date-adapter'; import { DateRange } from '../date-selection-model'; import { UsaCalendarUserEvent, UsaCalendarBody, UsaCalendarCell, UsaCalendarCellClassFunction } from './calendar-body'; import * as i0 from "@angular/core"; export declare const yearsPerPage = 12; export declare const yearsPerRow = 4; /** * An internal component used to display a year selector in the datePicker. * @docs-private */ export declare class UsaMultiYearView implements AfterContentInit, OnDestroy { private _changeDetectorRef; _dateAdapter: DateAdapter; private _rerenderSubscription; /** Flag used to filter out space/enter keyup events that originated outside of the view. */ private _selectionKeyPressed; /** The date to display in this multi-year view (everything other than the year is ignored). */ get activeDate(): D; set activeDate(value: D); private _activeDate; /** The currently selected date. */ get selected(): DateRange | D | null; set selected(value: DateRange | D | null); private _selected; /** The minimum selectable date. */ get minDate(): D | null; set minDate(value: D | null); private _minDate; /** The maximum selectable date. */ get maxDate(): D | null; set maxDate(value: D | null); private _maxDate; /** A function used to filter which dates are selectable. */ dateFilter: (date: D) => boolean; /** Function that can be used to add custom CSS classes to date cells. */ dateClass: UsaCalendarCellClassFunction; /** Emits when a new year is selected. */ readonly selectedChange: EventEmitter; /** Emits the selected year. This doesn't imply a change on the selected date */ readonly yearSelected: EventEmitter; /** Emits when any date is activated. */ readonly activeDateChange: EventEmitter; /** The body of calendar table */ _usaCalendarBody: UsaCalendarBody; /** Grid of calendar cells representing the currently displayed years. */ _years: UsaCalendarCell[][]; /** The year that today falls on. */ _todayYear: number; /** The year of the selected date. Null if the selected date is null. */ _selectedYear: number | null; constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: DateAdapter); ngAfterContentInit(): void; ngOnDestroy(): void; /** Initializes this multi-year view. */ _init(): void; getNextYears(): void; getPreviousYears(): void; /** Handles when a new year is selected. */ _yearSelected(event: UsaCalendarUserEvent): void; /** Handles keydown events on the calendar body when calendar is in multi-year view. */ _handleCalendarBodyKeydown(event: KeyboardEvent): void; /** Handles keyup events on the calendar body when calendar is in multi-year view. */ _handleCalendarBodyKeyup(event: KeyboardEvent): void; _getActiveCell(): number; /** Focuses the active cell after the microtask queue is empty. */ _focusActiveCell(): void; /** Creates an UsaCalendarCell for the given year. */ private _createCellForYear; /** Whether the given year is enabled. */ private _shouldEnableYear; /** Sets the currently-highlighted year based on a model value. */ private _setSelectedYear; static ɵfac: i0.ɵɵFactoryDeclaration, [null, { optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration, "usa-multi-year-view", ["usaMultiYearView"], { "activeDate": { "alias": "activeDate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dateFilter": { "alias": "dateFilter"; "required": false; }; "dateClass": { "alias": "dateClass"; "required": false; }; }, { "selectedChange": "selectedChange"; "yearSelected": "yearSelected"; "activeDateChange": "activeDateChange"; }, never, never, false, never>; } export declare function isSameMultiYearView(dateAdapter: DateAdapter, date1: D, date2: D, minDate: D | null, maxDate: D | null): boolean; /** * When the multi-year view is first opened, the active year will be in view. * So we compute how many years are between the active year and the *slot* where our * "startingYear" will render when paged into view. */ export declare function getActiveOffset(dateAdapter: DateAdapter, activeDate: D, minDate: D | null, maxDate: D | null): number;