/*
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license infornbion.
 */
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 ElCellDefDirective_1, ElHeaderCellDefDirective_1, ElFooterCellDefDirective_1, ElColumnDefDirective_1;
import { Directive, ElementRef, InjectionToken, Input } from '@angular/core';
import { CdkCell, CdkCellDef, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkHeaderCell, CdkHeaderCellDef, } from '@angular/cdk/table';
/**
 * Cell definition for the el-table.
 * Captures the template of a column's data row cell as well as cell-specific properties.
 */
let ElCellDefDirective = ElCellDefDirective_1 = class ElCellDefDirective extends CdkCellDef {
};
ElCellDefDirective = ElCellDefDirective_1 = __decorate([
    Directive({
        selector: '[elCellDef]',
        providers: [{ provide: CdkCellDef, useExisting: ElCellDefDirective_1 }],
    })
], ElCellDefDirective);
export { ElCellDefDirective };
/**
 * Header cell definition for the el-table.
 * Captures the template of a column's header cell and as well as cell-specific properties.
 */
let ElHeaderCellDefDirective = ElHeaderCellDefDirective_1 = class ElHeaderCellDefDirective extends CdkHeaderCellDef {
};
ElHeaderCellDefDirective = ElHeaderCellDefDirective_1 = __decorate([
    Directive({
        selector: '[elHeaderCellDef]',
        providers: [{ provide: CdkHeaderCellDef, useExisting: ElHeaderCellDefDirective_1 }],
    })
], ElHeaderCellDefDirective);
export { ElHeaderCellDefDirective };
/**
 * Footer cell definition for the el-table.
 * Captures the template of a column's footer cell and as well as cell-specific properties.
 */
let ElFooterCellDefDirective = ElFooterCellDefDirective_1 = class ElFooterCellDefDirective extends CdkFooterCellDef {
};
ElFooterCellDefDirective = ElFooterCellDefDirective_1 = __decorate([
    Directive({
        selector: '[elFooterCellDef]',
        providers: [{ provide: CdkFooterCellDef, useExisting: ElFooterCellDefDirective_1 }],
    })
], ElFooterCellDefDirective);
export { ElFooterCellDefDirective };
export const EL_SORT_HEADER_COLUMN_DEF = new InjectionToken('EL_SORT_HEADER_COLUMN_DEF');
/**
 * Column definition for the el-table.
 * Defines a set of cells available for a table column.
 */
let ElColumnDefDirective = ElColumnDefDirective_1 = class ElColumnDefDirective extends CdkColumnDef {
};
__decorate([
    Input('elColumnDef'),
    __metadata("design:type", String)
], ElColumnDefDirective.prototype, "name", void 0);
__decorate([
    Input(),
    __metadata("design:type", Boolean)
], ElColumnDefDirective.prototype, "sticky", void 0);
__decorate([
    Input(),
    __metadata("design:type", Boolean)
], ElColumnDefDirective.prototype, "stickyEnd", void 0);
ElColumnDefDirective = ElColumnDefDirective_1 = __decorate([
    Directive({
        selector: '[elColumnDef]',
        providers: [
            { provide: CdkColumnDef, useExisting: ElColumnDefDirective_1 },
            { provide: EL_SORT_HEADER_COLUMN_DEF, useExisting: ElColumnDefDirective_1 },
        ],
    })
], ElColumnDefDirective);
export { ElColumnDefDirective };
/** Header cell template container that adds the right classes and role. */
let ElHeaderCellDirective = class ElHeaderCellDirective extends CdkHeaderCell {
    constructor(columnDef, elementRef) {
        super(columnDef, elementRef);
        elementRef.nativeElement.classList.add(`el-column-${columnDef.cssClassFriendlyName}`);
    }
};
ElHeaderCellDirective = __decorate([
    Directive({
        selector: 'el-header-cell, th[elHeaderCell]',
        host: {
            'class': 'el-header-cell',
            'role': 'columnheader',
        },
    }),
    __metadata("design:paramtypes", [ElColumnDefDirective,
        ElementRef])
], ElHeaderCellDirective);
export { ElHeaderCellDirective };
/** Footer cell template container that adds the right classes and role. */
let ElFooterCellDirective = class ElFooterCellDirective extends CdkFooterCell {
    constructor(columnDef, elementRef) {
        super(columnDef, elementRef);
        elementRef.nativeElement.classList.add(`el-column-${columnDef.cssClassFriendlyName}`);
    }
};
ElFooterCellDirective = __decorate([
    Directive({
        selector: 'el-footer-cell, td[elFooterCell]',
        host: {
            'class': 'el-footer-cell',
            'role': 'gridcell',
        },
    }),
    __metadata("design:paramtypes", [ElColumnDefDirective,
        ElementRef])
], ElFooterCellDirective);
export { ElFooterCellDirective };
/** Cell template container that adds the right classes and role. */
let ElCellDirective = class ElCellDirective extends CdkCell {
    constructor(columnDef, elementRef) {
        super(columnDef, elementRef);
        elementRef.nativeElement.classList.add(`el-column-${columnDef.cssClassFriendlyName}`);
    }
};
ElCellDirective = __decorate([
    Directive({
        selector: 'el-cell, td[elCell]',
        host: {
            'class': 'el-cell',
            'role': 'gridcell',
        },
    }),
    __metadata("design:paramtypes", [ElColumnDefDirective,
        ElementRef])
], ElCellDirective);
export { ElCellDirective };
//# sourceMappingURL=cell.js.map