| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| import { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core'; |
| import { DateAdapter, MatDateFormats } from '@angular/material/core'; |
| import { Directionality } from '@angular/cdk/bidi'; |
| import { MatCalendarBody, MatCalendarCell } from './calendar-body'; |
| /** |
| * An internal component used to display a single year in the datepicker. |
| * @docs-private |
| */ |
| export declare class MatYearView<D> implements AfterContentInit { |
| private _changeDetectorRef; |
| private _dateFormats; |
| _dateAdapter: DateAdapter<D>; |
| private _dir?; |
| /** The date to display in this year view (everything other than the year is ignored). */ |
| activeDate: D; |
| private _activeDate; |
| /** The currently selected date. */ |
| selected: D | null; |
| private _selected; |
| /** The minimum selectable date. */ |
| minDate: D | null; |
| private _minDate; |
| /** The maximum selectable date. */ |
| maxDate: D | null; |
| private _maxDate; |
| /** A function used to filter which dates are selectable. */ |
| dateFilter: (date: D) => boolean; |
| /** Emits when a new month is selected. */ |
| readonly selectedChange: EventEmitter<D>; |
| /** Emits the selected month. This doesn't imply a change on the selected date */ |
| readonly monthSelected: EventEmitter<D>; |
| /** Emits when any date is activated. */ |
| readonly activeDateChange: EventEmitter<D>; |
| /** The body of calendar table */ |
| _matCalendarBody: MatCalendarBody; |
| /** Grid of calendar cells representing the months of the year. */ |
| _months: MatCalendarCell[][]; |
| /** The label for this year (e.g. "2017"). */ |
| _yearLabel: string; |
| /** The month in this year that today falls on. Null if today is in a different year. */ |
| _todayMonth: number | null; |
| /** |
| * The month in this year that the selected Date falls on. |
| * Null if the selected Date is in a different year. |
| */ |
| _selectedMonth: number | null; |
| constructor(_changeDetectorRef: ChangeDetectorRef, _dateFormats: MatDateFormats, _dateAdapter: DateAdapter<D>, _dir?: Directionality | undefined); |
| ngAfterContentInit(): void; |
| /** Handles when a new month is selected. */ |
| _monthSelected(month: number): void; |
| /** Handles keydown events on the calendar body when calendar is in year view. */ |
| _handleCalendarBodyKeydown(event: KeyboardEvent): void; |
| /** Initializes this year view. */ |
| _init(): void; |
| /** Focuses the active cell after the microtask queue is empty. */ |
| _focusActiveCell(): void; |
| /** |
| * Gets the month in this year that the given Date falls on. |
| * Returns null if the given Date is in another year. |
| */ |
| private _getMonthInCurrentYear; |
| /** Creates an MatCalendarCell for the given month. */ |
| private _createCellForMonth; |
| /** Whether the given month is enabled. */ |
| private _shouldEnableMonth; |
| /** |
| * Tests whether the combination month/year is after this.maxDate, considering |
| * just the month and year of this.maxDate |
| */ |
| private _isYearAndMonthAfterMaxDate; |
| /** |
| * Tests whether the combination month/year is before this.minDate, considering |
| * just the month and year of this.minDate |
| */ |
| private _isYearAndMonthBeforeMinDate; |
| /** |
| * @param obj The object to check. |
| * @returns The given object if it is both a date instance and valid, otherwise null. |
| */ |
| private _getValidDateOrNull; |
| /** Determines whether the user has the RTL layout direction. */ |
| private _isRtl; |
| } |