// © 2022 SolarWinds Worldwide, LLC. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to
//  deal in the Software without restriction, including without limitation the
//  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
//  sell copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.
import { Directionality } from "@angular/cdk/bidi";
import { _DisposeViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, } from "@angular/cdk/collections";
import { Platform } from "@angular/cdk/platform";
import { CdkVirtualForOf, ViewportRuler } from "@angular/cdk/scrolling";
import { _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, CDK_TABLE_TEMPLATE, CdkTable, STICKY_POSITIONING_LISTENER, } from "@angular/cdk/table";
import { DOCUMENT } from "@angular/common";
import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Inject, Input, IterableDiffers, Optional, Output, SkipSelf, ViewEncapsulation, } from "@angular/core";
import _isEqual from "lodash/isEqual";
import _keys from "lodash/keys";
import { TableStateHandlerService } from "./table-state-handler.service";
import * as i0 from "@angular/core";
import * as i1 from "@angular/cdk/bidi";
import * as i2 from "./table-state-handler.service";
import * as i3 from "@angular/cdk/platform";
import * as i4 from "@angular/cdk/scrolling";
import * as i5 from "@angular/cdk/table";
// <example-url>./../examples/index.html#/table</example-url>
/** @dynamic */
export class TableComponent extends CdkTable {
    get dataSource() {
        return super.dataSource;
    }
    set dataSource(value) {
        super.dataSource = value;
    }
    constructor(_differs, _changeDetectorRef, _elementRef, role, _dir, tableStateHandlerService, document, platform, viewRepeater, coalescedStyleScheduler, viewportRuler, stickyPositioningListener) {
        // The _ViewRepeater and _CoalescedStyleScheduler parameters were optional before Angular v12.
        // They're included here for compatibility with Angular v12 and later.
        super(_differs, _changeDetectorRef, _elementRef, role, _dir, document, platform, viewRepeater, coalescedStyleScheduler, viewportRuler, stickyPositioningListener);
        this._differs = _differs;
        this._changeDetectorRef = _changeDetectorRef;
        this._elementRef = _elementRef;
        this._dir = _dir;
        this.tableStateHandlerService = tableStateHandlerService;
        this.document = document;
        this.platform = platform;
        this.reorderable = false;
        this.sortable = false;
        this.resizable = false;
        this.selectable = false;
        this.columnsOrderChange = new EventEmitter();
        this.sortOrderChanged = new EventEmitter();
        this.selectionChange = new EventEmitter();
        this.layoutFixed = false;
    }
    getFilterComponents() {
        return !this.sortable
            ? {}
            : {
                sorter: {
                    componentInstance: {
                        // mark this filter to be monitored by our datasource for any changes in order reset other filters(eg: pagination)
                        // before any new search is performed
                        detectFilterChanges: true,
                        getFilters: () => ({
                            type: "sorter",
                            value: {
                                sortBy: this.sortBy,
                                direction: this.sortDirection,
                            },
                        }),
                    },
                },
            };
    }
    // using on changes hook for datasource because if we use pagination,
    // datasource changes when we change page and rows should know about this
    ngOnChanges(changes) {
        if (changes.resizable) {
            this.tableStateHandlerService.resizable =
                changes.resizable.currentValue;
            this.layoutFixed = changes.resizable.currentValue;
        }
        if (changes.reorderable) {
            this.tableStateHandlerService.reorderable =
                changes.reorderable.currentValue;
        }
        if (changes.sortable) {
            this.tableStateHandlerService.sortable =
                changes.sortable.currentValue;
        }
        if (changes.dataSource) {
            this.onDataSourceChange(changes.dataSource.currentValue);
        }
        if (changes.selectable) {
            this.tableStateHandlerService.selectable =
                changes.selectable.currentValue;
        }
        if (changes.selection && !changes.selection.isFirstChange()) {
            this.changeSelection(changes.selection.currentValue);
        }
        if (changes.sortedColumn && !changes.sortedColumn.isFirstChange()) {
            this.handleSortedColumn(changes.sortedColumn.currentValue);
        }
        if (changes.trackBy) {
            this.tableStateHandlerService.trackBy =
                changes.trackBy.currentValue;
        }
    }
    ngOnInit() {
        super.ngOnInit();
        const dataSet = this.dataSource;
        const firstRow = dataSet && dataSet[0];
        const columns = _keys(firstRow);
        this.tableStateHandlerService.tableColumns = columns;
        columns.forEach((column) => {
            const alignment = this.tableStateHandlerService.defineAlignment(firstRow[column]);
            this.tableStateHandlerService.setAlignment(column, alignment);
        });
        if (this.resizable) {
            const parentWidth = this._elementRef.nativeElement.parentElement.getBoundingClientRect()
                .width;
            this.layoutFixed = true;
            this.tableStateHandlerService.tableParentWidth = parentWidth;
        }
        if (this.sortable) {
            this.tableSortingSubscription =
                this.tableStateHandlerService.sortingState.subscribe((sortedColumn) => {
                    this.sortDirection = sortedColumn.direction;
                    this.sortBy = sortedColumn.sortBy;
                    // emit only if the data is really changed
                    if (!_isEqual(sortedColumn, this.sortedColumn)) {
                        this.sortOrderChanged.emit(sortedColumn);
                    }
                });
            if (this.sortedColumn) {
                this.handleSortedColumn(this.sortedColumn);
            }
        }
        if (this.reorderable) {
            this.tableColumnsSubscription =
                this.tableStateHandlerService.columnsState.subscribe((tableColumns) => {
                    this.columnsOrderChange.emit(tableColumns);
                });
        }
        if (this.selectable) {
            this.stickyChangedSubscription =
                this.tableStateHandlerService.stickyHeaderChangedSubject.subscribe(() => {
                    // calling cdk method to update sticky styles
                    this.updateStickyHeaderRowStyles();
                });
        }
    }
    ngAfterViewInit() {
        // moved this from ngOnInit since we might emit the selectionChange event
        // before our component is actually ready and it might cause problems
        // if we try to manually trigger change detection in a parent component
        if (this.selectable) {
            this.selectionChangedSubscription =
                this.tableStateHandlerService.selectionChanged.subscribe((selection) => {
                    this.selectionChange.emit(selection);
                });
            if (this.selection) {
                this.changeSelection(this.selection);
            }
        }
    }
    changeSelection(selectedItems) {
        this.tableStateHandlerService.selection = selectedItems;
        this.tableStateHandlerService.selectionChanged.next(this.tableStateHandlerService.selection);
    }
    handleSortedColumn(sortedColumn) {
        this.tableStateHandlerService.sortedColumn = sortedColumn;
        this.tableStateHandlerService.sortingState.next(sortedColumn);
    }
    onDataSourceChange(ds) {
        if (!ds) {
            this.dataSource = [];
        }
        const changedDataSource = ds ? ds : [];
        // if no totalItems specified, we assume that there is only one page
        this.tableStateHandlerService.totalItems =
            this.totalItems || changedDataSource.length;
        this.tableStateHandlerService.changeDataSource(changedDataSource);
    }
    ngOnDestroy() {
        if (this.tableSortingSubscription) {
            this.tableSortingSubscription.unsubscribe();
        }
        if (this.tableColumnsSubscription) {
            this.tableColumnsSubscription.unsubscribe();
        }
        if (this.selectionChangedSubscription) {
            this.selectionChangedSubscription.unsubscribe();
        }
        if (this.stickyChangedSubscription) {
            this.stickyChangedSubscription.unsubscribe();
        }
        super.ngOnDestroy();
    }
    ngAfterContentInit() {
        // @ts-ignore: Call parent method in case cdk adds it later
        super.ngAfterContentInit?.();
        // Note: Identifying if table is using virtual scroll.
        this.tableStateHandlerService.hasVirtualScroll = !!this.virtualFor;
    }
}
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: "role", attribute: true }, { token: i1.Directionality }, { token: i2.TableStateHandlerService }, { token: DOCUMENT }, { token: i3.Platform }, { token: _VIEW_REPEATER_STRATEGY }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i4.ViewportRuler }, { token: STICKY_POSITIONING_LISTENER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: TableComponent, selector: "nui-table, table[nui-table]", inputs: { reorderable: "reorderable", sortable: "sortable", resizable: "resizable", selectable: "selectable", totalItems: "totalItems", dataSource: "dataSource", selection: "selection", sortedColumn: "sortedColumn" }, outputs: { columnsOrderChange: "columnsOrderChange", sortOrderChanged: "sortOrderChanged", selectionChange: "selectionChange" }, host: { properties: { "class.nui-table__table-fixed": "this.layoutFixed" }, classAttribute: "nui-table__table" }, providers: [
        TableStateHandlerService,
        {
            provide: _VIEW_REPEATER_STRATEGY,
            useClass: _DisposeViewRepeaterStrategy,
        },
        {
            provide: _COALESCED_STYLE_SCHEDULER,
            useClass: _CoalescedStyleScheduler,
        },
    ], queries: [{ propertyName: "virtualFor", first: true, predicate: CdkVirtualForOf, descendants: true }], exportAs: ["nuiTable"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n  <ng-content select=\"caption\"></ng-content>\n  <ng-content select=\"colgroup, col\"></ng-content>\n  <ng-container headerRowOutlet></ng-container>\n  <ng-container rowOutlet></ng-container>\n  <ng-container noDataRowOutlet></ng-container>\n  <ng-container footerRowOutlet></ng-container>\n", isInline: true, styles: [".nui .nui-table__table{display:table;width:100%;font-size:13px;border-collapse:collapse}.nui .nui-table__table .align-right{text-align:right}.nui .nui-table__table .align-center{text-align:center}.nui .nui-table__table-fixed{table-layout:fixed;width:1px}.nui .nui-table__table-fixed .nui-table__table-header-cell,.nui .nui-table__table-fixed .nui-table__table-cell{max-width:none}@media print{.nui .nui-table__table{break-inside:avoid}}.nui .nui-table__container{overflow:auto}.nui .nui-table__table-header-cell{position:relative;display:table-cell;color:var(--nui-color-text-secondary,rgba(17, 17, 17, .6));font-weight:600;padding:0 10px;background:inherit;border:1px solid #d9d9d9;border:1px solid var(--nui-color-line-default, #d9d9d9);min-width:46px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;background-clip:padding-box}.nui .nui-table__table-header-cell--sortable{cursor:pointer}.nui .nui-table__table-header-cell--sortable:hover{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell--sortable--text-black{color:var(--nui-color-text-default,#111)}.nui .nui-table__table-header-cell--sortable--dark{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell--reorderable{cursor:move}.nui .nui-table__table-header-cell--reorderable:hover,.nui .nui-table__table-header-cell--reorderable--dark{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell.cdk-table-sticky{border:0}.nui .nui-table__table-header-cell.cdk-table-sticky:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:100%;border-top:1px solid #d9d9d9;border-top:1px solid var(--nui-color-line-default, #d9d9d9);border-bottom:1px solid #d9d9d9;border-bottom:1px solid var(--nui-color-line-default, #d9d9d9);border-left:1px solid #d9d9d9;border-left:1px solid var(--nui-color-line-default, #d9d9d9)}.nui .nui-table__table-header-cell.cdk-table-sticky:last-of-type:before{border-right:1px solid #d9d9d9;border-right:1px solid var(--nui-color-line-default, #d9d9d9)}.nui .nui-table__table-header-cell.cdk-table-sticky.nui-table__table-cell--left-edge-action:before{border-left:2px solid;border-left-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-header-cell.cdk-table-sticky.nui-table__table-cell--right-edge-action:before{border-right:2px solid;border-right-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-header-cell.virtual-sticky{transition-property:width;transition-duration:.2s}.nui .nui-table__table-header-cell--selectable{min-width:75px;width:75px;overflow:visible;padding:0 5px}.nui .nui-table__table-header-cell--selectable.no-options{min-width:auto;width:35px!important}.nui .nui-table__table-header-cell__selector{display:flex}.nui .nui-table__table-header-cell__selector.no-options{min-width:auto}.nui .nui-table__table-header-row{background-color:var(--nui-color-bg-table_header,#f0f0f0);display:table-row;height:40px}.nui .nui-table__table-header-row_height_default{height:40px}.nui .nui-table__table-header-row_height_compact{height:30px}.nui .nui-table__table-header-row_height_compact .nui-table__table-header-cell--selectable{padding:0 3px 0 7px}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-button{border:none;border-right:1px solid #d9d9d9;padding:0 4px}.nui .nui-table__table-header-row_height_compact .nui-selector__toggle{border:none;border-left:1px solid #d9d9d9}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-container{margin:0}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-container .nui-checkbox__label:hover{background:transparent}.nui .nui-table__table-header-row_height_tiny{height:24px}.nui .nui-table__table-header-row_height_tiny .nui-table__table-header-cell--selectable{padding:0 3px 0 7px}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-button{border:none;border-right:1px solid #d9d9d9;padding:0 4px}.nui .nui-table__table-header-row_height_tiny .nui-selector__toggle{border:none;border-left:1px solid #d9d9d9}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-container{margin:0}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-container .nui-checkbox__label:hover{background:transparent}.nui .nui-table__table-row{border-bottom:1px solid #d9d9d9;border-bottom:1px solid var(--nui-color-line-default, #d9d9d9);display:table-row}.nui .nui-table__table-row:hover{background-color:var(--nui-color-bg-transparent-hover,rgba(17, 17, 17, .05))}.nui .nui-table__table-row_height_default{height:40px}.nui .nui-table__table-row_height_compact{height:30px}.nui .nui-table__table-row_height_tiny{height:24px}.nui .nui-table__table-row td:first-of-type.nui-table__table-cell--drop-left{overflow-x:visible}.nui .nui-table__table-row--selected{background-color:var(--nui-color-selected,rgba(0, 196, 210, .1));color:var(--nui-color-text-default,#111)}.nui .nui-table__table-row--selected:hover{background-color:var(--nui-color-selected-hover,rgba(0, 196, 210, .2))}.nui .nui-table__table-row--clickable{cursor:pointer}.nui .nui-table__table-cell{display:table-cell;color:var(--nui-color-text-default,#111);padding:0 10px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nui .nui-table__table-cell--selectable{padding:0 0 0 10px}.nui .nui-table__table-cell--left-edge-action{border-left:2px solid;border-left-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-cell--right-edge-action{border-right:2px solid;border-right-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-cell__checkbox .nui-checkbox__label:hover{background-color:transparent}.nui .nui-table__icon-cell{min-width:40px;width:40px}.nui .nui-table__sorting-icon{vertical-align:middle}.nui .nui-table__resizer{width:5px;height:40px;right:0;top:0;position:absolute}.nui .nui-table__resizer:hover{cursor:col-resize}cdk-virtual-scroll-viewport .sticky-header-placeholder th{border-bottom:none!important}\n"], dependencies: [{ kind: "directive", type: i5.DataRowOutlet, selector: "[rowOutlet]" }, { kind: "directive", type: i5.HeaderRowOutlet, selector: "[headerRowOutlet]" }, { kind: "directive", type: i5.FooterRowOutlet, selector: "[footerRowOutlet]" }, { kind: "directive", type: i5.NoDataRowOutlet, selector: "[noDataRowOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, decorators: [{
            type: Component,
            args: [{ selector: "nui-table, table[nui-table]", template: CDK_TABLE_TEMPLATE, exportAs: "nuiTable", host: {
                        class: "nui-table__table",
                    }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
                        TableStateHandlerService,
                        {
                            provide: _VIEW_REPEATER_STRATEGY,
                            useClass: _DisposeViewRepeaterStrategy,
                        },
                        {
                            provide: _COALESCED_STYLE_SCHEDULER,
                            useClass: _CoalescedStyleScheduler,
                        },
                    ], encapsulation: ViewEncapsulation.None, styles: [".nui .nui-table__table{display:table;width:100%;font-size:13px;border-collapse:collapse}.nui .nui-table__table .align-right{text-align:right}.nui .nui-table__table .align-center{text-align:center}.nui .nui-table__table-fixed{table-layout:fixed;width:1px}.nui .nui-table__table-fixed .nui-table__table-header-cell,.nui .nui-table__table-fixed .nui-table__table-cell{max-width:none}@media print{.nui .nui-table__table{break-inside:avoid}}.nui .nui-table__container{overflow:auto}.nui .nui-table__table-header-cell{position:relative;display:table-cell;color:var(--nui-color-text-secondary,rgba(17, 17, 17, .6));font-weight:600;padding:0 10px;background:inherit;border:1px solid #d9d9d9;border:1px solid var(--nui-color-line-default, #d9d9d9);min-width:46px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;background-clip:padding-box}.nui .nui-table__table-header-cell--sortable{cursor:pointer}.nui .nui-table__table-header-cell--sortable:hover{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell--sortable--text-black{color:var(--nui-color-text-default,#111)}.nui .nui-table__table-header-cell--sortable--dark{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell--reorderable{cursor:move}.nui .nui-table__table-header-cell--reorderable:hover,.nui .nui-table__table-header-cell--reorderable--dark{background-color:var(--nui-color-bg-table_header-hover,#e3e3e3)}.nui .nui-table__table-header-cell.cdk-table-sticky{border:0}.nui .nui-table__table-header-cell.cdk-table-sticky:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:100%;border-top:1px solid #d9d9d9;border-top:1px solid var(--nui-color-line-default, #d9d9d9);border-bottom:1px solid #d9d9d9;border-bottom:1px solid var(--nui-color-line-default, #d9d9d9);border-left:1px solid #d9d9d9;border-left:1px solid var(--nui-color-line-default, #d9d9d9)}.nui .nui-table__table-header-cell.cdk-table-sticky:last-of-type:before{border-right:1px solid #d9d9d9;border-right:1px solid var(--nui-color-line-default, #d9d9d9)}.nui .nui-table__table-header-cell.cdk-table-sticky.nui-table__table-cell--left-edge-action:before{border-left:2px solid;border-left-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-header-cell.cdk-table-sticky.nui-table__table-cell--right-edge-action:before{border-right:2px solid;border-right-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-header-cell.virtual-sticky{transition-property:width;transition-duration:.2s}.nui .nui-table__table-header-cell--selectable{min-width:75px;width:75px;overflow:visible;padding:0 5px}.nui .nui-table__table-header-cell--selectable.no-options{min-width:auto;width:35px!important}.nui .nui-table__table-header-cell__selector{display:flex}.nui .nui-table__table-header-cell__selector.no-options{min-width:auto}.nui .nui-table__table-header-row{background-color:var(--nui-color-bg-table_header,#f0f0f0);display:table-row;height:40px}.nui .nui-table__table-header-row_height_default{height:40px}.nui .nui-table__table-header-row_height_compact{height:30px}.nui .nui-table__table-header-row_height_compact .nui-table__table-header-cell--selectable{padding:0 3px 0 7px}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-button{border:none;border-right:1px solid #d9d9d9;padding:0 4px}.nui .nui-table__table-header-row_height_compact .nui-selector__toggle{border:none;border-left:1px solid #d9d9d9}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-container{margin:0}.nui .nui-table__table-header-row_height_compact .nui-selector__checkbox-container .nui-checkbox__label:hover{background:transparent}.nui .nui-table__table-header-row_height_tiny{height:24px}.nui .nui-table__table-header-row_height_tiny .nui-table__table-header-cell--selectable{padding:0 3px 0 7px}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-button{border:none;border-right:1px solid #d9d9d9;padding:0 4px}.nui .nui-table__table-header-row_height_tiny .nui-selector__toggle{border:none;border-left:1px solid #d9d9d9}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-container{margin:0}.nui .nui-table__table-header-row_height_tiny .nui-selector__checkbox-container .nui-checkbox__label:hover{background:transparent}.nui .nui-table__table-row{border-bottom:1px solid #d9d9d9;border-bottom:1px solid var(--nui-color-line-default, #d9d9d9);display:table-row}.nui .nui-table__table-row:hover{background-color:var(--nui-color-bg-transparent-hover,rgba(17, 17, 17, .05))}.nui .nui-table__table-row_height_default{height:40px}.nui .nui-table__table-row_height_compact{height:30px}.nui .nui-table__table-row_height_tiny{height:24px}.nui .nui-table__table-row td:first-of-type.nui-table__table-cell--drop-left{overflow-x:visible}.nui .nui-table__table-row--selected{background-color:var(--nui-color-selected,rgba(0, 196, 210, .1));color:var(--nui-color-text-default,#111)}.nui .nui-table__table-row--selected:hover{background-color:var(--nui-color-selected-hover,rgba(0, 196, 210, .2))}.nui .nui-table__table-row--clickable{cursor:pointer}.nui .nui-table__table-cell{display:table-cell;color:var(--nui-color-text-default,#111);padding:0 10px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nui .nui-table__table-cell--selectable{padding:0 0 0 10px}.nui .nui-table__table-cell--left-edge-action{border-left:2px solid;border-left-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-cell--right-edge-action{border-right:2px solid;border-right-color:var(--nui-color-line-selected-contrast,#00c4d2)}.nui .nui-table__table-cell__checkbox .nui-checkbox__label:hover{background-color:transparent}.nui .nui-table__icon-cell{min-width:40px;width:40px}.nui .nui-table__sorting-icon{vertical-align:middle}.nui .nui-table__resizer{width:5px;height:40px;right:0;top:0;position:absolute}.nui .nui-table__resizer:hover{cursor:col-resize}cdk-virtual-scroll-viewport .sticky-header-placeholder th{border-bottom:none!important}\n"] }]
        }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
                    type: Attribute,
                    args: ["role"]
                }] }, { type: i1.Directionality }, { type: i2.TableStateHandlerService }, { type: Document, decorators: [{
                    type: Inject,
                    args: [DOCUMENT]
                }] }, { type: i3.Platform }, { type: undefined, decorators: [{
                    type: Inject,
                    args: [_VIEW_REPEATER_STRATEGY]
                }] }, { type: i5._CoalescedStyleScheduler, decorators: [{
                    type: Inject,
                    args: [_COALESCED_STYLE_SCHEDULER]
                }] }, { type: i4.ViewportRuler }, { type: undefined, decorators: [{
                    type: Optional
                }, {
                    type: SkipSelf
                }, {
                    type: Inject,
                    args: [STICKY_POSITIONING_LISTENER]
                }] }]; }, propDecorators: { reorderable: [{
                type: Input
            }], sortable: [{
                type: Input
            }], resizable: [{
                type: Input
            }], selectable: [{
                type: Input
            }], totalItems: [{
                type: Input
            }], dataSource: [{
                type: Input
            }], selection: [{
                type: Input
            }], sortedColumn: [{
                type: Input
            }], columnsOrderChange: [{
                type: Output
            }], sortOrderChanged: [{
                type: Output
            }], selectionChange: [{
                type: Output
            }], layoutFixed: [{
                type: HostBinding,
                args: ["class.nui-table__table-fixed"]
            }], virtualFor: [{
                type: ContentChild,
                args: [CdkVirtualForOf]
            }] } });
//# sourceMappingURL=data:application/json;base64, 