/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { Component, ViewChild, Input, Output, EventEmitter, HostListener, HostBinding } from '@angular/core';
import { IgxCalendarComponent } from '../calendar';
import { InteractionMode } from '../core/enums';
import { IgxDatePickerActionsDirective } from './date-picker.directives';
/**
 * @hidden
 */
var IgxCalendarContainerComponent = /** @class */ (function () {
    function IgxCalendarContainerComponent() {
        this.mode = InteractionMode.Dialog;
        this.vertical = false;
        this.onClose = new EventEmitter();
        this.onTodaySelection = new EventEmitter();
        this.styleClass = 'igx-date-picker';
    }
    Object.defineProperty(IgxCalendarContainerComponent.prototype, "dropdownCSS", {
        get: /**
         * @return {?}
         */
        function () {
            return this.mode === InteractionMode.DropDown;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxCalendarContainerComponent.prototype, "verticalCSS", {
        get: /**
         * @return {?}
         */
        function () {
            return this.vertical && this.mode === InteractionMode.Dialog;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param {?} event
     * @return {?}
     */
    IgxCalendarContainerComponent.prototype.onEscape = /**
     * @param {?} event
     * @return {?}
     */
    function (event) {
        event.preventDefault();
        this.onClose.emit();
    };
    Object.defineProperty(IgxCalendarContainerComponent.prototype, "isReadonly", {
        /**
         * Returns whether the date-picker is in readonly dialog mode.
         *
         * @hidden
        */
        get: /**
         * Returns whether the date-picker is in readonly dialog mode.
         *
         * @hidden
         * @return {?}
         */
        function () {
            return this.mode === InteractionMode.Dialog;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Emits close event for the calendar.
     */
    /**
     * Emits close event for the calendar.
     * @return {?}
     */
    IgxCalendarContainerComponent.prototype.closeCalendar = /**
     * Emits close event for the calendar.
     * @return {?}
     */
    function () {
        this.onClose.emit();
    };
    /**
    * Emits today selection event for the calendar.
    */
    /**
     * Emits today selection event for the calendar.
     * @return {?}
     */
    IgxCalendarContainerComponent.prototype.triggerTodaySelection = /**
     * Emits today selection event for the calendar.
     * @return {?}
     */
    function () {
        this.onTodaySelection.emit();
    };
    IgxCalendarContainerComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-calendar-container',
                    template: "<ng-template #defaultDatePickerActions>\n    <div *ngIf=\"cancelButtonLabel || todayButtonLabel\" class=\"igx-date-picker__buttons\">\n        <button #closeButton *ngIf=\"cancelButtonLabel\" igxButton=\"flat\" igxRipple (click)=\"closeCalendar()\">\n            {{ cancelButtonLabel }}\n        </button>\n        <button #todayButton *ngIf=\"todayButtonLabel\" igxButton=\"flat\" igxRipple (click)=\"triggerTodaySelection()\">\n            {{ todayButtonLabel }}\n        </button>\n    </div>\n</ng-template>\n<igx-calendar #calendar></igx-calendar>\n<ng-container *ngTemplateOutlet=\"datePickerActions ? datePickerActions.template : defaultDatePickerActions\"></ng-container>\n",
                    styles: [':host {display: block;}']
                }] }
    ];
    IgxCalendarContainerComponent.propDecorators = {
        calendar: [{ type: ViewChild, args: ['calendar',] }],
        mode: [{ type: Input }],
        vertical: [{ type: Input }],
        cancelButtonLabel: [{ type: Input }],
        todayButtonLabel: [{ type: Input }],
        datePickerActions: [{ type: Input }],
        onClose: [{ type: Output }],
        onTodaySelection: [{ type: Output }],
        styleClass: [{ type: HostBinding, args: ['class.igx-date-picker',] }],
        dropdownCSS: [{ type: HostBinding, args: ['class.igx-date-picker--dropdown',] }],
        verticalCSS: [{ type: HostBinding, args: ['class.igx-date-picker--vertical',] }],
        onEscape: [{ type: HostListener, args: ['keydown.esc', ['$event'],] }, { type: HostListener, args: ['keydown.alt.arrowup', ['$event'],] }]
    };
    return IgxCalendarContainerComponent;
}());
export { IgxCalendarContainerComponent };
if (false) {
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.calendar;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.mode;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.vertical;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.cancelButtonLabel;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.todayButtonLabel;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.datePickerActions;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.onClose;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.onTodaySelection;
    /** @type {?} */
    IgxCalendarContainerComponent.prototype.styleClass;
}
//# sourceMappingURL=data:application/json;base64, 