import { Component, HostBinding, OnDestroy } from '@angular/core'; import { NbThemeService, NbMediaBreakpoint, NbMediaBreakpointsService } from '@nebular/theme'; @Component({ selector: 'ngx-rooms', styleUrls: ['./rooms.component.scss'], template: ` `, }) export class RoomsComponent implements OnDestroy { @HostBinding('class.expanded') private expanded: boolean; private selected: number; breakpoint: NbMediaBreakpoint; breakpoints: any; themeSubscription: any; constructor(private themeService: NbThemeService, private breakpointService: NbMediaBreakpointsService) { this.breakpoints = this.breakpointService.getBreakpointsMap(); this.themeSubscription = this.themeService.onMediaQueryChange() .subscribe(([oldValue, newValue]) => { this.breakpoint = newValue; }); } select(roomNumber) { if (this.isSelected(roomNumber)) { this.expand(); } else { this.collapse(); } this.selected = roomNumber; } expand() { this.expanded = true; } collapse() { this.expanded = false; } isCollapsed() { return !this.expanded; } private isSelected(roomNumber): boolean { return this.selected === roomNumber; } ngOnDestroy() { this.themeSubscription.unsubscribe(); } }