UNPKG

@nepwork/dashboards

Version:

Dashboards for emergencies and monitoring

215 lines 8.43 kB
/* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ var NbTreeGridCellDirective_1, NbTreeGridHeaderCellDirective_1, NbTreeGridFooterCellDirective_1; import { __decorate, __metadata, __param } from "tslib"; import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Inject, PLATFORM_ID, } from '@angular/core'; import { isPlatformBrowser } from '@angular/common'; import { DomSanitizer } from '@angular/platform-browser'; import { filter, takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; import { NbLayoutDirectionService } from '../../services/direction.service'; import { NB_WINDOW } from '../../theme.options'; import { NbCellDirective, NbFooterCellDirective, NbHeaderCellDirective } from '../cdk/table/cell'; import { NbCdkCell, NbCdkFooterCell, NbCdkHeaderCell } from '../cdk/table/type-mappings'; import { NB_TREE_GRID } from './tree-grid-injection-tokens'; import { NbTreeGridColumnDefDirective } from './tree-grid-column-def.directive'; import { NB_DEFAULT_ROW_LEVEL } from './data-source/tree-grid.model'; import { NbColumnsService } from './tree-grid-columns.service'; let NbTreeGridCellDirective = NbTreeGridCellDirective_1 = class NbTreeGridCellDirective extends NbCellDirective { constructor(columnDef, elementRef, tree, platformId, window, sanitizer, directionService, columnService, cd) { super(columnDef, elementRef); this.platformId = platformId; this.window = window; this.sanitizer = sanitizer; this.directionService = directionService; this.columnService = columnService; this.cd = cd; this.destroy$ = new Subject(); this.initialLeftPadding = ''; this.initialRightPadding = ''; this.tree = tree; this.columnDef = columnDef; this.elementRef = elementRef; } get columnWidth() { this.latestWidth = this.tree.getColumnWidth(); if (this.latestWidth) { return this.latestWidth; } return null; } get leftPadding() { if (this.directionService.isLtr()) { return this.getStartPadding(); } return null; } get rightPadding() { if (this.directionService.isRtl()) { return this.getStartPadding(); } return null; } ngOnInit() { if (isPlatformBrowser(this.platformId)) { const style = this.window.getComputedStyle(this.elementRef.nativeElement); this.initialLeftPadding = style.paddingLeft; this.initialRightPadding = style.paddingRight; } this.columnService.onColumnsChange() .pipe(filter(() => this.latestWidth !== this.tree.getColumnWidth()), takeUntil(this.destroy$)) .subscribe(() => this.cd.detectChanges()); } ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } toggleRow() { this.tree.toggleCellRow(this); } get initialStartPadding() { return this.directionService.isLtr() ? this.initialLeftPadding : this.initialRightPadding; } getStartPadding() { const rowLevel = this.tree.getCellLevel(this, this.columnDef.name); if (rowLevel === NB_DEFAULT_ROW_LEVEL) { return null; } const nestingLevel = rowLevel + 1; let padding = ''; if (this.tree.levelPadding) { padding = `calc(${this.tree.levelPadding} * ${nestingLevel})`; } else if (this.initialStartPadding) { padding = `calc(${this.initialStartPadding} * ${nestingLevel})`; } if (!padding) { return null; } return this.sanitizer.bypassSecurityTrustStyle(padding); } }; __decorate([ HostBinding('style.width'), __metadata("design:type", String), __metadata("design:paramtypes", []) ], NbTreeGridCellDirective.prototype, "columnWidth", null); __decorate([ HostBinding('style.padding-left'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], NbTreeGridCellDirective.prototype, "leftPadding", null); __decorate([ HostBinding('style.padding-right'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], NbTreeGridCellDirective.prototype, "rightPadding", null); NbTreeGridCellDirective = NbTreeGridCellDirective_1 = __decorate([ Directive({ selector: 'td[nbTreeGridCell]', host: { 'class': 'nb-tree-grid-cell', 'role': 'gridcell', }, providers: [{ provide: NbCdkCell, useExisting: NbTreeGridCellDirective_1 }], }), __param(2, Inject(NB_TREE_GRID)), __param(3, Inject(PLATFORM_ID)), __param(4, Inject(NB_WINDOW)), __metadata("design:paramtypes", [NbTreeGridColumnDefDirective, ElementRef, Object, Object, Object, DomSanitizer, NbLayoutDirectionService, NbColumnsService, ChangeDetectorRef]) ], NbTreeGridCellDirective); export { NbTreeGridCellDirective }; let NbTreeGridHeaderCellDirective = NbTreeGridHeaderCellDirective_1 = class NbTreeGridHeaderCellDirective extends NbHeaderCellDirective { constructor(columnDef, elementRef, tree, columnService, cd) { super(columnDef, elementRef); this.columnService = columnService; this.cd = cd; this.destroy$ = new Subject(); this.tree = tree; } get columnWidth() { this.latestWidth = this.tree.getColumnWidth(); return this.latestWidth || null; } ngOnInit() { this.columnService.onColumnsChange() .pipe(filter(() => this.latestWidth !== this.tree.getColumnWidth()), takeUntil(this.destroy$)) .subscribe(() => this.cd.detectChanges()); } ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } }; __decorate([ HostBinding('style.width'), __metadata("design:type", String), __metadata("design:paramtypes", []) ], NbTreeGridHeaderCellDirective.prototype, "columnWidth", null); NbTreeGridHeaderCellDirective = NbTreeGridHeaderCellDirective_1 = __decorate([ Directive({ selector: 'th[nbTreeGridHeaderCell]', host: { 'class': 'nb-tree-grid-header-cell', 'role': 'columnheader', }, providers: [{ provide: NbCdkHeaderCell, useExisting: NbTreeGridHeaderCellDirective_1 }], }), __param(2, Inject(NB_TREE_GRID)), __metadata("design:paramtypes", [NbTreeGridColumnDefDirective, ElementRef, Object, NbColumnsService, ChangeDetectorRef]) ], NbTreeGridHeaderCellDirective); export { NbTreeGridHeaderCellDirective }; let NbTreeGridFooterCellDirective = NbTreeGridFooterCellDirective_1 = class NbTreeGridFooterCellDirective extends NbFooterCellDirective { constructor(columnDef, elementRef, tree, columnService, cd) { super(columnDef, elementRef); this.columnService = columnService; this.cd = cd; this.destroy$ = new Subject(); this.tree = tree; } get columnWidth() { this.latestWidth = this.tree.getColumnWidth(); return this.latestWidth || null; } ngOnInit() { this.columnService.onColumnsChange() .pipe(filter(() => this.latestWidth !== this.tree.getColumnWidth()), takeUntil(this.destroy$)) .subscribe(() => this.cd.detectChanges()); } ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } }; __decorate([ HostBinding('style.width'), __metadata("design:type", String), __metadata("design:paramtypes", []) ], NbTreeGridFooterCellDirective.prototype, "columnWidth", null); NbTreeGridFooterCellDirective = NbTreeGridFooterCellDirective_1 = __decorate([ Directive({ selector: 'td[nbTreeGridFooterCell]', host: { 'class': 'nb-tree-grid-footer-cell', 'role': 'gridcell', }, providers: [{ provide: NbCdkFooterCell, useExisting: NbTreeGridFooterCellDirective_1 }], }), __param(2, Inject(NB_TREE_GRID)), __metadata("design:paramtypes", [NbTreeGridColumnDefDirective, ElementRef, Object, NbColumnsService, ChangeDetectorRef]) ], NbTreeGridFooterCellDirective); export { NbTreeGridFooterCellDirective }; //# sourceMappingURL=tree-grid-cell.component.js.map