| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /**
- * @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 { ComponentType, Portal } from '@angular/cdk/portal';
- import { AfterContentInit, AfterViewChecked, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
- import { DateAdapter, MatDateFormats } from '@angular/material/core';
- import { Subject } from 'rxjs';
- import { MatCalendarCellCssClasses } from './calendar-body';
- import { MatDatepickerIntl } from './datepicker-intl';
- import { MatMonthView } from './month-view';
- import { MatMultiYearView } from './multi-year-view';
- import { MatYearView } from './year-view';
- /**
- * Possible views for the calendar.
- * @docs-private
- */
- export declare type MatCalendarView = 'month' | 'year' | 'multi-year';
- /** Default header for MatCalendar */
- export declare class MatCalendarHeader<D> {
- private _intl;
- calendar: MatCalendar<D>;
- private _dateAdapter;
- private _dateFormats;
- constructor(_intl: MatDatepickerIntl, calendar: MatCalendar<D>, _dateAdapter: DateAdapter<D>, _dateFormats: MatDateFormats, changeDetectorRef: ChangeDetectorRef);
- /** The label for the current calendar view. */
- readonly periodButtonText: string;
- readonly periodButtonLabel: string;
- /** The label for the previous button. */
- readonly prevButtonLabel: string;
- /** The label for the next button. */
- readonly nextButtonLabel: string;
- /** Handles user clicks on the period label. */
- currentPeriodClicked(): void;
- /** Handles user clicks on the previous button. */
- previousClicked(): void;
- /** Handles user clicks on the next button. */
- nextClicked(): void;
- /** Whether the previous period button is enabled. */
- previousEnabled(): boolean;
- /** Whether the next period button is enabled. */
- nextEnabled(): boolean;
- /** Whether the two dates represent the same view in the current view mode (month or year). */
- private _isSameView;
- }
- /**
- * A calendar that is used as part of the datepicker.
- * @docs-private
- */
- export declare class MatCalendar<D> implements AfterContentInit, AfterViewChecked, OnDestroy, OnChanges {
- private _dateAdapter;
- private _dateFormats;
- private _changeDetectorRef;
- /** An input indicating the type of the header component, if set. */
- headerComponent: ComponentType<any>;
- /** A portal containing the header component type for this calendar. */
- _calendarHeaderPortal: Portal<any>;
- private _intlChanges;
- /**
- * Used for scheduling that focus should be moved to the active cell on the next tick.
- * We need to schedule it, rather than do it immediately, because we have to wait
- * for Angular to re-evaluate the view children.
- */
- private _moveFocusOnNextTick;
- /** A date representing the period (month or year) to start the calendar in. */
- startAt: D | null;
- private _startAt;
- /** Whether the calendar should be started in month or year view. */
- startView: MatCalendarView;
- /** 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 the currently selected date changes. */
- readonly selectedChange: EventEmitter<D>;
- /**
- * Emits the year chosen in multiyear view.
- * This doesn't imply a change on the selected date.
- */
- readonly yearSelected: EventEmitter<D>;
- /**
- * Emits the month chosen in year view.
- * This doesn't imply a change on the selected date.
- */
- readonly monthSelected: EventEmitter<D>;
- /** Emits when any date is selected. */
- readonly _userSelection: EventEmitter<void>;
- /** Reference to the current month view component. */
- monthView: MatMonthView<D>;
- /** Reference to the current year view component. */
- yearView: MatYearView<D>;
- /** Reference to the current multi-year view component. */
- multiYearView: MatMultiYearView<D>;
- /**
- * The current active date. This determines which time period is shown and which date is
- * highlighted when using keyboard navigation.
- */
- activeDate: D;
- private _clampedActiveDate;
- /** Whether the calendar is in month view. */
- currentView: MatCalendarView;
- private _currentView;
- /**
- * Emits whenever there is a state change that the header may need to respond to.
- */
- stateChanges: Subject<void>;
- constructor(_intl: MatDatepickerIntl, _dateAdapter: DateAdapter<D>, _dateFormats: MatDateFormats, _changeDetectorRef: ChangeDetectorRef);
- ngAfterContentInit(): void;
- ngAfterViewChecked(): void;
- ngOnDestroy(): void;
- ngOnChanges(changes: SimpleChanges): void;
- focusActiveCell(): void;
- /** Updates today's date after an update of the active date */
- updateTodaysDate(): void;
- /** Handles date selection in the month view. */
- _dateSelected(date: D): void;
- /** Handles year selection in the multiyear view. */
- _yearSelectedInMultiYearView(normalizedYear: D): void;
- /** Handles month selection in the year view. */
- _monthSelectedInYearView(normalizedMonth: D): void;
- _userSelected(): void;
- /** Handles year/month selection in the multi-year/year views. */
- _goToDateInView(date: D, view: 'month' | 'year' | 'multi-year'): void;
- /**
- * @param obj The object to check.
- * @returns The given object if it is both a date instance and valid, otherwise null.
- */
- private _getValidDateOrNull;
- /** Returns the component instance that corresponds to the current calendar view. */
- private _getCurrentViewComponent;
- }
|