var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
import { Attribute, ChangeDetectorRef, ElementRef, Inject, IterableDiffers, NgModule } from '@angular/core';
import { CdkTable, CdkTableModule } from '@angular/cdk/table';
import { ElBidiModule } from '../bidi/bidi.module';
import { ElDirectionality } from '../bidi/bidi-service';
import { ElPlatformModule } from '../platform/platform.module';
import { ElPlatform } from '../platform/platform-service';
import { EL_DOCUMENT } from '../../../theme.options';
import { ElCellDefDirective, ElCellDirective, ElColumnDefDirective, ElFooterCellDefDirective, ElFooterCellDirective, ElHeaderCellDefDirective, ElHeaderCellDirective, } from './cell';
import { ElCellOutletDirective, ElDataRowOutletDirective, ElFooterRowOutletDirective, ElHeaderRowOutletDirective, ElFooterRowComponent, ElFooterRowDefDirective, ElHeaderRowComponent, ElHeaderRowDefDirective, ElRowComponent, ElRowDefDirective, } from './row';
export var EL_TABLE_TEMPLATE = "\n  <ng-container elHeaderRowOutlet></ng-container>\n  <ng-container elRowOutlet></ng-container>\n  <ng-container elFooterRowOutlet></ng-container>";
var ElTable = /** @class */ (function (_super) {
    __extends(ElTable, _super);
    function ElTable(differs, changeDetectorRef, elementRef, role, dir, document, platform) {
        return _super.call(this, differs, changeDetectorRef, elementRef, role, dir, document, platform) || this;
    }
    ElTable = __decorate([
        __param(3, Attribute('role')),
        __param(5, Inject(EL_DOCUMENT)),
        __metadata("design:paramtypes", [IterableDiffers,
            ChangeDetectorRef,
            ElementRef, String, ElDirectionality, Object, ElPlatform])
    ], ElTable);
    return ElTable;
}(CdkTable));
export { ElTable };
var COMPONENTS = [
    ElTable,
    // Template defs
    ElHeaderCellDefDirective,
    ElHeaderRowDefDirective,
    ElColumnDefDirective,
    ElCellDefDirective,
    ElRowDefDirective,
    ElFooterCellDefDirective,
    ElFooterRowDefDirective,
    // Outlets
    ElDataRowOutletDirective,
    ElHeaderRowOutletDirective,
    ElFooterRowOutletDirective,
    ElCellOutletDirective,
    // Cell directives
    ElHeaderCellDirective,
    ElCellDirective,
    ElFooterCellDirective,
    // Row directives
    ElHeaderRowComponent,
    ElRowComponent,
    ElFooterRowComponent,
];
var ElTableModule = /** @class */ (function (_super) {
    __extends(ElTableModule, _super);
    function ElTableModule() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElTableModule = __decorate([
        NgModule({
            imports: [ElBidiModule, ElPlatformModule],
            declarations: COMPONENTS.slice(),
            exports: COMPONENTS.slice(),
        })
    ], ElTableModule);
    return ElTableModule;
}(CdkTableModule));
export { ElTableModule };
//# sourceMappingURL=table.module.js.map