/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { CommonModule } from '@angular/common';
import { Component, EventEmitter, HostBinding, Input, NgModule, Output, Directive, ContentChild } from '@angular/core';
import { IgxButtonModule } from '../directives/button/button.directive';
import { IgxIconModule } from '../icon/index';
/**
 * IgxActionIcon is a container for the action nav icon of the IgxNavbar.
 */
var IgxActionIconDirective = /** @class */ (function () {
    function IgxActionIconDirective() {
    }
    IgxActionIconDirective.decorators = [
        { type: Directive, args: [{
                    // tslint:disable-next-line:directive-selector
                    selector: 'igx-action-icon'
                },] }
    ];
    return IgxActionIconDirective;
}());
export { IgxActionIconDirective };
/** @type {?} */
var NEXT_ID = 0;
/**
 * **Ignite UI for Angular Navbar** -
 * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/navbar.html)
 *
 * The Ignite UI Navbar is most commonly used to provide an app header with a hamburger menu and navigation
 * state such as a "Go Back" button. It also supports other actions represented by icons.
 *
 * Example:
 * ```html
 * <igx-navbar title="Sample App" actionButtonIcon="menu">
 *   <igx-icon>search</igx-icon>
 *   <igx-icon>favorite</igx-icon>
 *   <igx-icon>more_vert</igx-icon>
 * </igx-navbar>
 * ```
 */
var IgxNavbarComponent = /** @class */ (function () {
    function IgxNavbarComponent() {
        this.isVisible = true;
        /**
         * An \@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.
         * ```html
         * <igx-navbar [id]="'igx-navbar-12'" title="Sample App" actionButtonIcon="menu">
         * ```
         */
        this.id = "igx-navbar-" + NEXT_ID++;
        /**
         * The event that will be thrown when the action is executed,
         * provides reference to the `IgxNavbar` component as argument
         * ```typescript
         * public actionExc(event){
         *    alert("Action Execute!");
         * }
         * //..
         * ```
         * ```html
         * <igx-navbar (onAction)="actionExc($event)" title="Sample App" actionButtonIcon="menu">
         * ```
         */
        this.onAction = new EventEmitter();
        /**
         * An \@Input property that sets the titleId of the `IgxNavbarComponent`. If not set it will be automatically generated.
         * ```html
         * <igx-navbar [titleId]="'igx-navbar-7'" title="Sample App" actionButtonIcon="menu">
         * ```
         */
        this.titleId = "igx-navbar-" + IgxNavbarComponent.NEXT_ID++;
    }
    Object.defineProperty(IgxNavbarComponent.prototype, "isActionButtonVisible", {
        /**
         *Returns whether the `IgxNavbarComponent` action button is visible, true/false.
         *```typescript
         *@ViewChild("MyChild")
         *public navBar: IgxNavbarComponent;
         *ngAfterViewInit(){
         *    let actionButtonVisibile = this.navBar.isActionButtonVisible;
         *}
         *```
         */
        get: /**
         * Returns whether the `IgxNavbarComponent` action button is visible, true/false.
         * ```typescript
         * \@ViewChild("MyChild")
         * public navBar: IgxNavbarComponent;
         * ngAfterViewInit(){
         *    let actionButtonVisibile = this.navBar.isActionButtonVisible;
         * }
         * ```
         * @return {?}
         */
        function () {
            if (this.actionIconTemplate || !this.actionButtonIcon) {
                return false;
            }
            return this.isVisible;
        },
        /**
         *Sets whether the action button of the `IgxNavbarComponent` is visible.
         *```html
         *<igx-navbar [title]="currentView" [isActionButtonVisible]="'false'"></igx-navbar>
         *```
         */
        set: /**
         * Sets whether the action button of the `IgxNavbarComponent` is visible.
         * ```html
         * <igx-navbar [title]="currentView" [isActionButtonVisible]="'false'"></igx-navbar>
         * ```
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this.isVisible = value;
        },
        enumerable: true,
        configurable: true
    });
    /**
     *@hidden
     */
    /**
     * @hidden
     * @return {?}
     */
    IgxNavbarComponent.prototype._triggerAction = /**
     * @hidden
     * @return {?}
     */
    function () {
        this.onAction.emit(this);
    };
    IgxNavbarComponent.NEXT_ID = 1;
    IgxNavbarComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-navbar',
                    template: "<nav class=\"igx-navbar\" role=\"navigation\" [attr.aria-labelledby]=\"titleId\">\n    <div class=\"igx-navbar__left\">\n        <igx-icon (click)=\"_triggerAction()\" fontSet=\"material\" *ngIf=\"isActionButtonVisible\">{{actionButtonIcon}}</igx-icon>\n        <ng-content select=\"igx-action-icon\"></ng-content>\n        <h1 class=\"igx-navbar__title\" [attr.id]=\"titleId\">{{ title }}</h1>\n    </div>\n    <div class=\"igx-navbar__right\">\n        <ng-content></ng-content>\n    </div>\n</nav>\n",
                    styles: ["\n        :host {\n            display: block;\n        }\n    "]
                }] }
    ];
    IgxNavbarComponent.propDecorators = {
        id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],
        isActionButtonVisible: [{ type: Input }],
        actionButtonIcon: [{ type: Input }],
        title: [{ type: Input }],
        onAction: [{ type: Output }],
        titleId: [{ type: Input }],
        actionIconTemplate: [{ type: ContentChild, args: [IgxActionIconDirective, { read: IgxActionIconDirective },] }]
    };
    return IgxNavbarComponent;
}());
export { IgxNavbarComponent };
if (false) {
    /**
     * @type {?}
     * @private
     */
    IgxNavbarComponent.NEXT_ID;
    /**
     * @type {?}
     * @private
     */
    IgxNavbarComponent.prototype.isVisible;
    /**
     * An \@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.
     * ```html
     * <igx-navbar [id]="'igx-navbar-12'" title="Sample App" actionButtonIcon="menu">
     * ```
     * @type {?}
     */
    IgxNavbarComponent.prototype.id;
    /**
     * An \@Input property that sets the icon of the `IgxNavbarComponent`.
     * ```html
     * <igx-navbar [title]="currentView" actionButtonIcon="arrow_back"></igx-navbar>
     * ```
     * @type {?}
     */
    IgxNavbarComponent.prototype.actionButtonIcon;
    /**
     * An \@Input property that sets the title of the `IgxNavbarComponent`.
     * ```html
     * <igx-navbar title="Sample App" actionButtonIcon="menu">
     * ```
     * @type {?}
     */
    IgxNavbarComponent.prototype.title;
    /**
     * The event that will be thrown when the action is executed,
     * provides reference to the `IgxNavbar` component as argument
     * ```typescript
     * public actionExc(event){
     *    alert("Action Execute!");
     * }
     * //..
     * ```
     * ```html
     * <igx-navbar (onAction)="actionExc($event)" title="Sample App" actionButtonIcon="menu">
     * ```
     * @type {?}
     */
    IgxNavbarComponent.prototype.onAction;
    /**
     * An \@Input property that sets the titleId of the `IgxNavbarComponent`. If not set it will be automatically generated.
     * ```html
     * <igx-navbar [titleId]="'igx-navbar-7'" title="Sample App" actionButtonIcon="menu">
     * ```
     * @type {?}
     */
    IgxNavbarComponent.prototype.titleId;
    /**
     * @hidden
     * @type {?}
     * @protected
     */
    IgxNavbarComponent.prototype.actionIconTemplate;
}
/**
 * @hidden
 */
var IgxNavbarModule = /** @class */ (function () {
    function IgxNavbarModule() {
    }
    IgxNavbarModule.decorators = [
        { type: NgModule, args: [{
                    declarations: [IgxNavbarComponent, IgxActionIconDirective],
                    exports: [IgxNavbarComponent, IgxActionIconDirective],
                    imports: [IgxButtonModule, IgxIconModule, CommonModule]
                },] }
    ];
    return IgxNavbarModule;
}());
export { IgxNavbarModule };
//# sourceMappingURL=data:application/json;base64, 