| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /**
- * @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, MatCalendarCellCssClasses } from './calendar-body';
- /**
- * An internal component used to display a single month in the datepicker.
- * @docs-private
- */
- export declare class MatMonthView<D> implements AfterContentInit {
- private _changeDetectorRef;
- private _dateFormats;
- _dateAdapter: DateAdapter<D>;
- private _dir?;
- /**
- * The date to display in this month view (everything other than the month and 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;
- /** Function used to filter which dates are selectable. */
- dateFilter: (date: D) => boolean;
- /** Function that can be used to add custom CSS classes to dates. */
- dateClass: (date: D) => MatCalendarCellCssClasses;
- /** Emits when a new date is selected. */
- readonly selectedChange: EventEmitter<D | null>;
- /** Emits when any date is selected. */
- readonly _userSelection: EventEmitter<void>;
- /** Emits when any date is activated. */
- readonly activeDateChange: EventEmitter<D>;
- /** The body of calendar table */
- _matCalendarBody: MatCalendarBody;
- /** The label for this month (e.g. "January 2017"). */
- _monthLabel: string;
- /** Grid of calendar cells representing the dates of the month. */
- _weeks: MatCalendarCell[][];
- /** The number of blank cells in the first row before the 1st of the month. */
- _firstWeekOffset: number;
- /**
- * The date of the month that the currently selected Date falls on.
- * Null if the currently selected Date is in another month.
- */
- _selectedDate: number | null;
- /** The date of the month that today falls on. Null if today is in another month. */
- _todayDate: number | null;
- /** The names of the weekdays. */
- _weekdays: {
- long: string;
- narrow: string;
- }[];
- constructor(_changeDetectorRef: ChangeDetectorRef, _dateFormats: MatDateFormats, _dateAdapter: DateAdapter<D>, _dir?: Directionality | undefined);
- ngAfterContentInit(): void;
- /** Handles when a new date is selected. */
- _dateSelected(date: number): void;
- /** Handles keydown events on the calendar body when calendar is in month view. */
- _handleCalendarBodyKeydown(event: KeyboardEvent): void;
- /** Initializes this month view. */
- _init(): void;
- /** Focuses the active cell after the microtask queue is empty. */
- _focusActiveCell(): void;
- /** Initializes the weekdays. */
- private _initWeekdays;
- /** Creates MatCalendarCells for the dates in this month. */
- private _createWeekCells;
- /** Date filter for the month */
- private _shouldEnableDate;
- /**
- * Gets the date in this month that the given Date falls on.
- * Returns null if the given Date is in another month.
- */
- private _getDateInCurrentMonth;
- /** Checks whether the 2 dates are non-null and fall within the same month of the same year. */
- private _hasSameMonthAndYear;
- /**
- * @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;
- }
|