/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import * as tslib_1 from "tslib";
import { Component, forwardRef, Input, ViewChildren, QueryList, HostBinding, ElementRef, ChangeDetectorRef } from '@angular/core';
import { IgxRowComponent } from '../row.component';
import { GridBaseAPIService } from '../api.service';
import { IgxSelectionAPIService } from '../../core/selection';
var IgxTreeGridRowComponent = /** @class */ (function (_super) {
    tslib_1.__extends(IgxTreeGridRowComponent, _super);
    function IgxTreeGridRowComponent(gridAPI, selection, element, cdr) {
        var _this = 
        // D.P. constructor duplication due to es6 compilation, might be obsolete in the future
        _super.call(this, gridAPI, selection, element, cdr) || this;
        _this.gridAPI = gridAPI;
        _this.element = element;
        _this.cdr = cdr;
        return _this;
    }
    Object.defineProperty(IgxTreeGridRowComponent.prototype, "treeRow", {
        /**
         * The `ITreeGridRecord` passed to the row component.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * const treeRow = row.treeRow;
         * ```
         */
        get: /**
         * The `ITreeGridRecord` passed to the row component.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * const treeRow = row.treeRow;
         * ```
         * @return {?}
         */
        function () {
            return this._treeRow;
        },
        set: /**
         * @param {?} value
         * @return {?}
         */
        function (value) {
            if (this._treeRow !== value) {
                this._treeRow = value;
                this.rowData = this._treeRow.data;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxTreeGridRowComponent.prototype, "expanded", {
        /**
         * Returns a value indicating whether the row component is expanded.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * const expanded = row.expanded;
         * ```
         */
        get: /**
         * Returns a value indicating whether the row component is expanded.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * const expanded = row.expanded;
         * ```
         * @return {?}
         */
        function () {
            return this._treeRow.expanded;
        },
        /**
         * Sets a value indicating whether the row component is expanded.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * row.expanded = true;
         * ```
         */
        set: /**
         * Sets a value indicating whether the row component is expanded.
         *
         * ```typescript
         * const row = this.grid.getRowByKey(1) as IgxTreeGridRowComponent;
         * row.expanded = true;
         * ```
         * @param {?} value
         * @return {?}
         */
        function (value) {
            ((/** @type {?} */ (this.gridAPI))).trigger_row_expansion_toggle(this.gridID, this._treeRow, value);
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @hidden
     */
    /**
     * @hidden
     * @protected
     * @return {?}
     */
    IgxTreeGridRowComponent.prototype.resolveClasses = /**
     * @hidden
     * @protected
     * @return {?}
     */
    function () {
        /** @type {?} */
        var classes = _super.prototype.resolveClasses.call(this);
        /** @type {?} */
        var filteredClass = this.treeRow.isFilteredOutParent ? 'igx-grid__tr--filtered' : '';
        return classes + " " + filteredClass;
    };
    IgxTreeGridRowComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-tree-grid-row',
                    template: "<ng-container *ngIf=\"rowSelectable\">\n    <div class=\"igx-grid__cbx-selection\">\n        <igx-checkbox [checked]=\"isSelected\" [disabled]=\"deleted\" (change)=\"onCheckboxClick($event)\" disableRipple=\"true\" [disableTransitions]=\"grid.disableTransitions\" [aria-label]=\"rowCheckboxAriaLabel\"></igx-checkbox>\n    </div>\n</ng-container>\n<ng-container *ngIf=\"pinnedColumns.length > 0\">\n    <ng-template ngFor let-col [ngForOf]=\"notGroups(pinnedColumns)\">\n        <ng-template #cellTemplate>\n            <igx-grid-cell [column]=\"col\" [row]=\"this\" [style.min-width.px]=\"col.width\" [style.flex-basis.px]=\"col.width\" [value]=\"rowData[col.field]\" [cellTemplate]=\"col.bodyTemplate\" #treeCell></igx-grid-cell>\n            </ng-template>\n        <ng-template #treeCellTemplate>\n            <igx-tree-grid-cell [column]=\"col\" [row]=\"this\" [style.min-width.px]=\"col.width\" [style.flex-basis.px]=\"col.width\" [value]=\"rowData[col.field]\" [cellTemplate]=\"col.bodyTemplate\" #treeCell></igx-tree-grid-cell>\n        </ng-template>\n        <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n    </ng-template>\n</ng-container>\n<ng-template igxGridFor let-col [igxGridForOf]=\"notGroups(unpinnedColumns)\" [igxForSizePropName]='\"calcWidth\"' [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n    <ng-template #cellTemplate>\n        <igx-grid-cell [column]=\"col\" [row]=\"this\" [style.min-width.px]=\"col.width\" [style.flex-basis.px]=\"col.width\" [value]=\"rowData[col.field]\" [cellTemplate]=\"col.bodyTemplate\" #treeCell></igx-grid-cell>\n    </ng-template>\n    <ng-template #treeCellTemplate>\n        <igx-tree-grid-cell [column]=\"col\" [row]=\"this\" [style.min-width.px]=\"col.width\" [style.flex-basis.px]=\"col.width\" [value]=\"rowData[col.field]\" [cellTemplate]=\"col.bodyTemplate\" #treeCell></igx-tree-grid-cell>\n    </ng-template>\n    <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n</ng-template>\n",
                    providers: [{ provide: IgxRowComponent, useExisting: forwardRef(function () { return IgxTreeGridRowComponent; }) }]
                }] }
    ];
    /** @nocollapse */
    IgxTreeGridRowComponent.ctorParameters = function () { return [
        { type: GridBaseAPIService },
        { type: IgxSelectionAPIService },
        { type: ElementRef },
        { type: ChangeDetectorRef }
    ]; };
    IgxTreeGridRowComponent.propDecorators = {
        cells: [{ type: ViewChildren, args: ['treeCell',] }],
        treeRow: [{ type: Input }],
        expanded: [{ type: HostBinding, args: ['attr.aria-expanded',] }]
    };
    return IgxTreeGridRowComponent;
}(IgxRowComponent));
export { IgxTreeGridRowComponent };
if (false) {
    /**
     * @type {?}
     * @private
     */
    IgxTreeGridRowComponent.prototype._treeRow;
    /**
     * The rendered cells in the row component.
     *
     * ```typescript
     * const row = this.grid.getRowByKey(1);
     * const cells = row.cells;
     * ```
     * @type {?}
     */
    IgxTreeGridRowComponent.prototype.cells;
    /** @type {?} */
    IgxTreeGridRowComponent.prototype.gridAPI;
    /** @type {?} */
    IgxTreeGridRowComponent.prototype.element;
    /** @type {?} */
    IgxTreeGridRowComponent.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64, 