/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes} checked by tsc
 */
import { CommonModule } from '@angular/common';
import { Component, ContentChild, ContentChildren, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, NgModule, Output, QueryList, TemplateRef, ViewChildren } from '@angular/core';
import { IgxBadgeModule } from '../badge/badge.component';
import { IgxIconModule } from '../icon/index';
/**
 * @record
 */
export function ISelectTabEventArgs() { }
function ISelectTabEventArgs_tsickle_Closure_declarations() {
    /** @type {?} */
    ISelectTabEventArgs.prototype.tab;
    /** @type {?} */
    ISelectTabEventArgs.prototype.panel;
}
var /** @type {?} */ NEXT_ID = 0;
var IgxTabTemplateDirective = /** @class */ (function () {
    function IgxTabTemplateDirective(template) {
        this.template = template;
    }
    IgxTabTemplateDirective.decorators = [
        { type: Directive, args: [{
                    selector: '[igxTab]'
                },] },
    ];
    /** @nocollapse */
    IgxTabTemplateDirective.ctorParameters = function () { return [
        { type: TemplateRef, },
    ]; };
    return IgxTabTemplateDirective;
}());
export { IgxTabTemplateDirective };
function IgxTabTemplateDirective_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IgxTabTemplateDirective.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IgxTabTemplateDirective.ctorParameters;
    /** @type {?} */
    IgxTabTemplateDirective.prototype.template;
}
/**
 * **Ignite UI for Angular Tab Bar** -
 * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tabbar.html)
 *
 * The Ignite UI Tab Bar enables the user to navigate among a number of content panels displayed in a single view.
 *
 * Example:
 * ```html
 * <igx-bottom-nav>
 *   <igx-tab-panel label="Tab 1">Tab 1 Content</igx-tab-panel>
 *   <igx-tab-panel label="Tab 2">Tab 2 Content</igx-tab-panel>
 *   <igx-tab-panel label="Tab 3">Tab 3 Content</igx-tab-panel>
 * </igx-bottom-nav>
 * ```
 */
var IgxBottomNavComponent = /** @class */ (function () {
    function IgxBottomNavComponent(_element) {
        this._element = _element;
        /**
         * Sets/gets the `id` of the tab bar.
         * If not set, the `id` of the first tab bar component will be `"igx-bottom-nav-0"`.
         * ```html
         * <igx-bottom-nav id = "my-first-tab-bar"></igx-bottom-nav>
         * ```
         * ```typescript
         * let tabBarId =  this.tabBar.id;
         * ```
         * \@memberof IgxBottomNavComponent
         */
        this.id = "igx-bottom-nav-" + NEXT_ID++;
        /**
         * Emits an event when a new tab is selected.
         * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.
         * ```html
         * <igx-bottom-nav (onTableSelected) = "onTabSelected($event)"><igx-bottom-nav>
         * ```
         * \@memberof IgxBottomNavComponent
         */
        this.onTabSelected = new EventEmitter();
        /**
         * Emits an event when a tab is deselected.
         * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.
         * ```html
         * <igx-bottom-nav (onTabDeselected) = "onTabDeselected($event)"><igx-bottom-nav>
         * ```
         * \@memberof IgxBottomNavComponent
         */
        this.onTabDeselected = new EventEmitter();
        /**
         * Gets the `index` of selected tab/panel in the respective collection.
         * ```typescript
         * let index =  this.tabBar.selectedIndex;
         * ```
         * \@memberof IgxBottomNavComponent
         */
        this.selectedIndex = -1;
        /**
         * @hidden
         */
        this._itemStyle = 'igx-bottom-nav';
    }
    Object.defineProperty(IgxBottomNavComponent.prototype, "itemStyle", {
        get: /**
         * Gets the `itemStyle` of the tab bar.
         * ```typescript
         * let itemStyle =  this.tabBar.itemStyle;
         * ```
         * \@memberof IgxBottomNavComponent
         * @return {?}
         */
        function () {
            return this._itemStyle;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxBottomNavComponent.prototype, "selectedTab", {
        /**
         * Gets the selected tab in the tab bar.
         * ```typescript
         * let tab =  this.tabBar.selectedTab;
         * ```
         * @memberof IgxBottomNavComponent
         */
        get: /**
         * Gets the selected tab in the tab bar.
         * ```typescript
         * let tab =  this.tabBar.selectedTab;
         * ```
         * \@memberof IgxBottomNavComponent
         * @return {?}
         */
        function () {
            if (this.tabs && this.selectedIndex !== undefined) {
                return this.tabs.toArray()[this.selectedIndex];
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @hidden
     * @return {?}
     */
    IgxBottomNavComponent.prototype.ngAfterViewInit = /**
     * @hidden
     * @return {?}
     */
    function () {
        var _this = this;
        // initial selection
        setTimeout(function () {
            if (_this.selectedIndex === -1) {
                var /** @type {?} */ selectablePanels = _this.panels.filter(function (p) { return !p.disabled; });
                var /** @type {?} */ panel = selectablePanels[0];
                if (panel) {
                    panel.select();
                }
            }
        }, 0);
    };
    /**
     * @hidden
     * @param {?} args
     * @return {?}
     */
    IgxBottomNavComponent.prototype._selectedPanelHandler = /**
     * @hidden
     * @param {?} args
     * @return {?}
     */
    function (args) {
        var _this = this;
        this.selectedIndex = args.panel.index;
        this.panels.forEach(function (p) {
            if (p.index !== _this.selectedIndex) {
                _this._deselectPanel(p);
            }
        });
    };
    /**
     * @hidden
     * @param {?} panel
     * @return {?}
     */
    IgxBottomNavComponent.prototype._deselectPanel = /**
     * @hidden
     * @param {?} panel
     * @return {?}
     */
    function (panel) {
        // Cannot deselect the selected tab - this will mean that there will be not selected tab left
        if (panel.disabled || this.selectedTab.index === panel.index) {
            return;
        }
        panel.isSelected = false;
        this.onTabDeselected.emit({ tab: this.tabs[panel.index], panel: panel });
    };
    IgxBottomNavComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-bottom-nav',
                    template: "<div>\n    <ng-content></ng-content>\n</div>\n<div #tablist class=\"{{itemStyle}}__menu {{itemStyle}}__menu--bottom\" role=\"tablist\" aria-orientation=\"horizontal\">\n    <igx-tab *ngFor=\"let panel of panels\" [id]=\"'igx-tab-' + panel.index\" [attr.aria-label]=\"panel.label\" [attr.aria-disabled]=\"panel.disabled\"\n        [attr.aria-selected]=\"panel.isSelected\" [attr.aria-controls]=\"'igx-tab-panel-'+ panel.index\" [ngClass]=\"{\n                 'igx-bottom-nav__menu-item': !panel.isSelected && !panel.disabled,\n                 'igx-bottom-nav__menu-item--selected': panel.isSelected,\n                 'igx-bottom-nav__menu-item--disabled': panel.disabled\n             }\" [relatedPanel]=\"panel\" (click)=\"panel.select()\" role=\"tab\">\n    </igx-tab>\n</div>\n"
                },] },
    ];
    /** @nocollapse */
    IgxBottomNavComponent.ctorParameters = function () { return [
        { type: ElementRef, },
    ]; };
    IgxBottomNavComponent.propDecorators = {
        "tabs": [{ type: ViewChildren, args: [forwardRef(function () { return IgxTabComponent; }),] },],
        "panels": [{ type: ContentChildren, args: [forwardRef(function () { return IgxTabPanelComponent; }),] },],
        "id": [{ type: HostBinding, args: ['attr.id',] }, { type: Input },],
        "onTabSelected": [{ type: Output },],
        "onTabDeselected": [{ type: Output },],
        "_selectedPanelHandler": [{ type: HostListener, args: ['onTabSelected', ['$event'],] },],
    };
    return IgxBottomNavComponent;
}());
export { IgxBottomNavComponent };
function IgxBottomNavComponent_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IgxBottomNavComponent.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IgxBottomNavComponent.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    IgxBottomNavComponent.propDecorators;
    /**
     * Gets the `IgxTabComponent` elements in the tab bar component.
     * ```typescript
     * let tabs: QueryList<IgxTabComponent> =  this.tabBar.tabs;
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.tabs;
    /**
     * Gets the `IgxTabPanelComponent` elements in the tab bar component.
     * ```typescript
     * let tabPanels: QueryList<IgxTabPanelComponent> = this.tabBar.panels;
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.panels;
    /**
     * Sets/gets the `id` of the tab bar.
     * If not set, the `id` of the first tab bar component will be `"igx-bottom-nav-0"`.
     * ```html
     * <igx-bottom-nav id = "my-first-tab-bar"></igx-bottom-nav>
     * ```
     * ```typescript
     * let tabBarId =  this.tabBar.id;
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.id;
    /**
     * Emits an event when a new tab is selected.
     * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.
     * ```html
     * <igx-bottom-nav (onTableSelected) = "onTabSelected($event)"><igx-bottom-nav>
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.onTabSelected;
    /**
     * Emits an event when a tab is deselected.
     * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.
     * ```html
     * <igx-bottom-nav (onTabDeselected) = "onTabDeselected($event)"><igx-bottom-nav>
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.onTabDeselected;
    /**
     * Gets the `index` of selected tab/panel in the respective collection.
     * ```typescript
     * let index =  this.tabBar.selectedIndex;
     * ```
     * \@memberof IgxBottomNavComponent
     * @type {?}
     */
    IgxBottomNavComponent.prototype.selectedIndex;
    /**
     * @hidden
     * @type {?}
     */
    IgxBottomNavComponent.prototype._itemStyle;
    /** @type {?} */
    IgxBottomNavComponent.prototype._element;
}
var IgxTabPanelComponent = /** @class */ (function () {
    function IgxTabPanelComponent(_tabBar, _element) {
        this._tabBar = _tabBar;
        this._element = _element;
        /**
         * @hidden
         */
        this._itemStyle = 'igx-tab-panel';
        /**
         * Gets the role of the tab panel.
         * ```typescript
         * let tabPanelRole = this.tabPanel.role;
         * ```
         * \@memberof IgxTabPanelComponent
         */
        this.role = 'tabpanel';
        /**
         * Sets/gets whether a tab panel is selected.
         * ```typescript
         * this.tabPanel.isSelected = true;
         * ```
         * ```typescript
         * let isSelected =  this.tabPanelIsSelected;
         * ```
         * \@memberof IgxTabPanelComponent
         */
        this.isSelected = false;
    }
    Object.defineProperty(IgxTabPanelComponent.prototype, "styleClass", {
        get: /**
         * Gets whether a tab panel will have `igx-bottom-nav__panel` class.
         * ```typescript
         * let styleClass = this.tabPanel.styleClass;
         * ```
         * \@memberof IgxTabPanelComponent
         * @return {?}
         */
        function () {
            return (!this.isSelected);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabPanelComponent.prototype, "itemStyle", {
        get: /**
         * Gets the `itemStyle` of the tab panel.
         * ```typescript
         * let itemStyle = this.tabPanel.itemStyle;
         * ```
         * \@memberof IgxTabPanelComponent
         * @return {?}
         */
        function () {
            return this._itemStyle;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabPanelComponent.prototype, "relatedTab", {
        /**
         * Gets the tab associated with the panel.
         * ```typescript
         * let tab = this.tabPanel.relatedTab;
         * ```
         * @memberof IgxTabPanelComponent
         */
        get: /**
         * Gets the tab associated with the panel.
         * ```typescript
         * let tab = this.tabPanel.relatedTab;
         * ```
         * \@memberof IgxTabPanelComponent
         * @return {?}
         */
        function () {
            if (this._tabBar.tabs) {
                return this._tabBar.tabs.toArray()[this.index];
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabPanelComponent.prototype, "index", {
        /**
         * Gets the index of a panel in the panels collection.
         * ```typescript
         * let panelIndex =  this.tabPanel.index
         * ```
         * @memberof IgxTabPanelComponent
         */
        get: /**
         * Gets the index of a panel in the panels collection.
         * ```typescript
         * let panelIndex =  this.tabPanel.index
         * ```
         * \@memberof IgxTabPanelComponent
         * @return {?}
         */
        function () {
            if (this._tabBar.panels) {
                return this._tabBar.panels.toArray().indexOf(this);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabPanelComponent.prototype, "customTabTemplate", {
        /**
         * Gets the tab template.
         * ```typescript
         * let tabTemplate = this.tabPanel.customTabTemplate
         * ```
         * @memberof IgxTabPanelComponent
         */
        get: /**
         * Gets the tab template.
         * ```typescript
         * let tabTemplate = this.tabPanel.customTabTemplate
         * ```
         * \@memberof IgxTabPanelComponent
         * @return {?}
         */
        function () {
            return this._tabTemplate;
        },
        /**
         * Sets the tab template.
         * ```typescript
         * this.tabPanel.customTabTemplate(tabTemplate);
         * ```
         * @memberof IgxTabPanelComponent
         */
        set: /**
         * Sets the tab template.
         * ```typescript
         * this.tabPanel.customTabTemplate(tabTemplate);
         * ```
         * \@memberof IgxTabPanelComponent
         * @param {?} template
         * @return {?}
         */
        function (template) {
            this._tabTemplate = template;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @hidden
     * @return {?}
     */
    IgxTabPanelComponent.prototype.ngAfterContentInit = /**
     * @hidden
     * @return {?}
     */
    function () {
        if (this.tabTemplate) {
            this._tabTemplate = this.tabTemplate.template;
        }
    };
    /**
     * @hidden
     * @return {?}
     */
    IgxTabPanelComponent.prototype.ngAfterViewChecked = /**
     * @hidden
     * @return {?}
     */
    function () {
        this._element.nativeElement.setAttribute('aria-labelledby', "igx-tab-" + this.index);
        this._element.nativeElement.setAttribute('id', "igx-bottom-nav__panel-" + this.index);
    };
    /**
     * Selects the current tab and the tab panel.
     * ```typescript
     * this.tabPanel.select();
     * ```
     * \@memberof IgxTabPanelComponent
     * @return {?}
     */
    IgxTabPanelComponent.prototype.select = /**
     * Selects the current tab and the tab panel.
     * ```typescript
     * this.tabPanel.select();
     * ```
     * \@memberof IgxTabPanelComponent
     * @return {?}
     */
    function () {
        if (this.disabled || this._tabBar.selectedIndex === this.index) {
            return;
        }
        this.isSelected = true;
        this._tabBar.onTabSelected.emit({ tab: this._tabBar.tabs.toArray()[this.index], panel: this });
    };
    IgxTabPanelComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-tab-panel',
                    template: "<ng-content></ng-content>\n"
                },] },
    ];
    /** @nocollapse */
    IgxTabPanelComponent.ctorParameters = function () { return [
        { type: IgxBottomNavComponent, },
        { type: ElementRef, },
    ]; };
    IgxTabPanelComponent.propDecorators = {
        "label": [{ type: Input },],
        "icon": [{ type: Input },],
        "disabled": [{ type: Input },],
        "role": [{ type: HostBinding, args: ['attr.role',] },],
        "styleClass": [{ type: HostBinding, args: ['class.igx-bottom-nav__panel',] },],
        "isSelected": [{ type: HostBinding, args: ['class.igx-bottom-nav__panel--selected',] },],
        "tabTemplate": [{ type: ContentChild, args: [IgxTabTemplateDirective, { read: IgxTabTemplateDirective },] },],
    };
    return IgxTabPanelComponent;
}());
export { IgxTabPanelComponent };
function IgxTabPanelComponent_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IgxTabPanelComponent.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IgxTabPanelComponent.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    IgxTabPanelComponent.propDecorators;
    /**
     * @hidden
     * @type {?}
     */
    IgxTabPanelComponent.prototype._itemStyle;
    /**
     * Sets/gets the `label` of the tab panel.
     * ```html
     * <igx-tab-panel [label] = "'Tab panel label'"><igx-tab-panel>
     * ```
     * ```typescript
     * let tabPanelLabel = this.tabPanel.label;
     * ```
     * \@memberof IgxTabPanelComponent
     * @type {?}
     */
    IgxTabPanelComponent.prototype.label;
    /**
     * Sets/gets  the `icon` of the tab panel.
     * ```html
     * <igx-tab-panel [icon] = "panel_icon"><igx-tab-panel>
     * ```
     * ```typescript
     * let tabPanelIcon =  this.tabPanel.icon;
     * ```
     * \@memberof IgxTabPanelComponent
     * @type {?}
     */
    IgxTabPanelComponent.prototype.icon;
    /**
     * Sets/gets whether the tab panel is disabled.
     * ```html
     * <igx-tab-panel [disabled] = "true"><igx-tab-panel>
     * ```
     * ```typescript
     * let isDisabled = this.tabPanel.disabled;
     * ```
     * \@memberof IgxTabPanelComponent
     * @type {?}
     */
    IgxTabPanelComponent.prototype.disabled;
    /**
     * Gets the role of the tab panel.
     * ```typescript
     * let tabPanelRole = this.tabPanel.role;
     * ```
     * \@memberof IgxTabPanelComponent
     * @type {?}
     */
    IgxTabPanelComponent.prototype.role;
    /**
     * Sets/gets whether a tab panel is selected.
     * ```typescript
     * this.tabPanel.isSelected = true;
     * ```
     * ```typescript
     * let isSelected =  this.tabPanelIsSelected;
     * ```
     * \@memberof IgxTabPanelComponent
     * @type {?}
     */
    IgxTabPanelComponent.prototype.isSelected;
    /**
     * @hidden
     * @type {?}
     */
    IgxTabPanelComponent.prototype._tabTemplate;
    /**
     * @hidden
     * @type {?}
     */
    IgxTabPanelComponent.prototype.tabTemplate;
    /** @type {?} */
    IgxTabPanelComponent.prototype._tabBar;
    /** @type {?} */
    IgxTabPanelComponent.prototype._element;
}
var IgxTabComponent = /** @class */ (function () {
    function IgxTabComponent(_tabBar, _element) {
        this._tabBar = _tabBar;
        this._element = _element;
        /**
         * Gets the `role` attribute.
         * ```typescript
         * let tabRole = this.tab.role;
         * ```
         * \@memberof IgxTabComponent
         */
        this.role = 'tab';
        /**
         * @hidden
         */
        this._changesCount = 0;
    }
    Object.defineProperty(IgxTabComponent.prototype, "changesCount", {
        /**
         * Gets the changes and updates accordingly applied to the tab.
         *
         * @memberof IgxTabComponent
         */
        get: /**
         * Gets the changes and updates accordingly applied to the tab.
         *
         * \@memberof IgxTabComponent
         * @return {?}
         */
        function () {
            return this._changesCount;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabComponent.prototype, "disabled", {
        /**
         * Gets whether the tab is disabled.
         * ```typescript
         * let isDisabled = this.tab.disabled;
         * ```
         * @memberof IgxTabComponent
         */
        get: /**
         * Gets whether the tab is disabled.
         * ```typescript
         * let isDisabled = this.tab.disabled;
         * ```
         * \@memberof IgxTabComponent
         * @return {?}
         */
        function () {
            var /** @type {?} */ panel = this.relatedPanel;
            if (panel) {
                return panel.disabled;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabComponent.prototype, "isSelected", {
        /**
         * Gets whether the tab is selected.
         * ```typescript
         * let isSelected  = this.tab.isSelected;
         * ```
         * @memberof IgxTabComponent
         */
        get: /**
         * Gets whether the tab is selected.
         * ```typescript
         * let isSelected  = this.tab.isSelected;
         * ```
         * \@memberof IgxTabComponent
         * @return {?}
         */
        function () {
            var /** @type {?} */ panel = this.relatedPanel;
            if (panel) {
                return panel.isSelected;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTabComponent.prototype, "index", {
        /**
         * Gets the `index` of the tab.
         * ```typescript
         * let tabIndex = this.tab.index;
         * ```
         * @memberof IgxTabComponent
         */
        get: /**
         * Gets the `index` of the tab.
         * ```typescript
         * let tabIndex = this.tab.index;
         * ```
         * \@memberof IgxTabComponent
         * @return {?}
         */
        function () {
            return this._tabBar.tabs.toArray().indexOf(this);
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Selects the current tab and the associated panel.
     * ```typescript
     * this.tab.select();
     * ```
     * \@memberof IgxTabComponent
     * @return {?}
     */
    IgxTabComponent.prototype.select = /**
     * Selects the current tab and the associated panel.
     * ```typescript
     * this.tab.select();
     * ```
     * \@memberof IgxTabComponent
     * @return {?}
     */
    function () {
        this.relatedPanel.select();
    };
    IgxTabComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-tab',
                    template: "<ng-template #defaultTabTemplate>\n    <div *ngIf=\"relatedPanel.icon\" class=\"tab-icon\">\n        <igx-icon fontSet=\"material\" [name]=\"relatedPanel.icon\"></igx-icon>\n        <igx-badge [value]=\"changesCount\" [hidden]=\"changesCount === 0\"></igx-badge>\n    </div>\n    <div *ngIf=\"relatedPanel.label\" ngClass=\"tab-label\">{{relatedPanel.label}}</div>\n</ng-template>\n<ng-container *ngTemplateOutlet=\"relatedPanel.customTabTemplate ? relatedPanel.customTabTemplate : defaultTabTemplate; context: { $implicit: relatedPanel }\">\n</ng-container>"
                },] },
    ];
    /** @nocollapse */
    IgxTabComponent.ctorParameters = function () { return [
        { type: IgxBottomNavComponent, },
        { type: ElementRef, },
    ]; };
    IgxTabComponent.propDecorators = {
        "role": [{ type: HostBinding, args: ['attr.role',] },],
        "relatedPanel": [{ type: Input },],
    };
    return IgxTabComponent;
}());
export { IgxTabComponent };
function IgxTabComponent_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IgxTabComponent.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IgxTabComponent.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    IgxTabComponent.propDecorators;
    /**
     * Gets the `role` attribute.
     * ```typescript
     * let tabRole = this.tab.role;
     * ```
     * \@memberof IgxTabComponent
     * @type {?}
     */
    IgxTabComponent.prototype.role;
    /**
     * Gets the panel associated with the tab.
     * ```typescript
     * let tabPanel =  this.tab.relatedPanel;
     * ```
     * \@memberof IgxTabComponent
     * @type {?}
     */
    IgxTabComponent.prototype.relatedPanel;
    /**
     * @hidden
     * @type {?}
     */
    IgxTabComponent.prototype._changesCount;
    /** @type {?} */
    IgxTabComponent.prototype._tabBar;
    /** @type {?} */
    IgxTabComponent.prototype._element;
}
/**
 * The IgxBottomNavModule provides the {\@link IgxBottomNavComponent},
 * the {\@link IgxTabPanelComponent} and the {\@link IgxTabComponent} inside your application.
 */
var IgxBottomNavModule = /** @class */ (function () {
    function IgxBottomNavModule() {
    }
    IgxBottomNavModule.decorators = [
        { type: NgModule, args: [{
                    declarations: [IgxBottomNavComponent, IgxTabPanelComponent, IgxTabComponent, IgxTabTemplateDirective],
                    exports: [IgxBottomNavComponent, IgxTabPanelComponent, IgxTabComponent, IgxTabTemplateDirective],
                    imports: [CommonModule, IgxBadgeModule, IgxIconModule]
                },] },
    ];
    return IgxBottomNavModule;
}());
export { IgxBottomNavModule };
function IgxBottomNavModule_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IgxBottomNavModule.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IgxBottomNavModule.ctorParameters;
}

//# sourceMappingURL=data:application/json;base64, 