text: /**
   * @fileoverview added by tsickle
   * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
   */
  /**
   * @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 { TemplatePortal } from '@angular/cdk/portal';
  import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';
  import { mixinDisabled } from '@angular/material/core';
  import { Subject } from 'rxjs';
  import { MatTabContent } from './tab-content';
  import { MatTabLabel } from './tab-label';
  // Boilerplate for applying mixins to MatTab.
  /**
   * \@docs-private
   */
  export class MatTabBase {
  }
  /** @type {?} */
  export const _MatTabMixinBase = mixinDisabled(MatTabBase);
  export class MatTab extends _MatTabMixinBase {
      /**
       * @param {?} _viewContainerRef
       */
      constructor(_viewContainerRef) {
          super();
          this._viewContainerRef = _viewContainerRef;
          /**
           * Plain text label for the tab, used when there is no template label.
           */
          this.textLabel = '';
          /**
           * Portal that will be the hosted content of the tab
           */
          this._contentPortal = null;
          /**
           * Emits whenever the internal state of the tab changes.
           */
          this._stateChanges = new Subject();
          /**
           * The relatively indexed position where 0 represents the center, negative is left, and positive
           * represents the right.
           */
          this.position = null;
          /**
           * The initial relatively index origin of the tab if it was created and selected after there
           * was already a selected tab. Provides context of what position the tab should originate from.
           */
          this.origin = null;
          /**
           * Whether the tab is currently active.
           */
          this.isActive = false;
      }
      /**
       * \@docs-private
       * @return {?}
       */
      get content() {
          return this._contentPortal;
      }
      /**
       * @param {?} changes
       * @return {?}
       */
      ngOnChanges(changes) {
          if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
              this._stateChanges.next();
          }
      }
      /**
       * @return {?}
       */
      ngOnDestroy() {
          this._stateChanges.complete();
      }
      /**
       * @return {?}
       */
      ngOnInit() {
          this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
      }
  }
  MatTab.decorators = [
      { type: Component, args: [{selector: 'mat-tab',
                  template: "<ng-template><ng-content></ng-content></ng-template>",
                  inputs: ['disabled'],
                  changeDetection: ChangeDetectionStrategy.OnPush,
                  encapsulation: ViewEncapsulation.None,
                  exportAs: 'matTab',
              },] },
  ];
  /** @nocollapse */
  MatTab.ctorParameters = () => [
      { type: ViewContainerRef }
  ];
  MatTab.propDecorators = {
      templateLabel: [{ type: ContentChild, args: [MatTabLabel,] }],
      _explicitContent: [{ type: ContentChild, args: [MatTabContent, { read: TemplateRef },] }],
      _implicitContent: [{ type: ViewChild, args: [TemplateRef,] }],
      textLabel: [{ type: Input, args: ['label',] }],
      ariaLabel: [{ type: Input, args: ['aria-label',] }],
      ariaLabelledby: [{ type: Input, args: ['aria-labelledby',] }]
  };
  if (false) {
      /**
       * Content for the tab label given by `<ng-template mat-tab-label>`.
       * @type {?}
       */
      MatTab.prototype.templateLabel;
      /**
       * Template provided in the tab content that will be used if present, used to enable lazy-loading
       * @type {?}
       */
      MatTab.prototype._explicitContent;
      /**
       * Template inside the MatTab view that contains an `<ng-content>`.
       * @type {?}
       */
      MatTab.prototype._implicitContent;
      /**
       * Plain text label for the tab, used when there is no template label.
       * @type {?}
       */
      MatTab.prototype.textLabel;
      /**
       * Aria label for the tab.
       * @type {?}
       */
      MatTab.prototype.ariaLabel;
      /**
       * Reference to the element that the tab is labelled by.
       * Will be cleared if `aria-label` is set at the same time.
       * @type {?}
       */
      MatTab.prototype.ariaLabelledby;
      /**
       * Portal that will be the hosted content of the tab
       * @type {?}
       * @private
       */
      MatTab.prototype._contentPortal;
      /**
       * Emits whenever the internal state of the tab changes.
       * @type {?}
       */
      MatTab.prototype._stateChanges;
      /**
       * The relatively indexed position where 0 represents the center, negative is left, and positive
       * represents the right.
       * @type {?}
       */
      MatTab.prototype.position;
      /**
       * The initial relatively index origin of the tab if it was created and selected after there
       * was already a selected tab. Provides context of what position the tab should originate from.
       * @type {?}
       */
      MatTab.prototype.origin;
      /**
       * Whether the tab is currently active.
       * @type {?}
       */
      MatTab.prototype.isActive;
      /**
       * @type {?}
       * @private
       */
      MatTab.prototype._viewContainerRef;
  }
  //# sourceMappingURL=tab.js.map