angular/projects/ng-devtools/src/lib/devtools-tabs/devtools-tabs.component.ts

60 lines
1.9 KiB
TypeScript
Raw Normal View History

2020-01-27 18:40:18 +00:00
import { Component, Input, ViewChild } from '@angular/core';
import { Events, MessageBus } from 'protocol';
import { MatTabGroup } from '@angular/material/tabs';
import { DirectiveExplorerComponent } from './directive-explorer/directive-explorer.component';
import { ApplicationEnvironment } from '../application-environment';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { TabUpdate } from './tab-update';
import { ThemeService } from '../theme-service';
2020-01-27 18:40:18 +00:00
@Component({
selector: 'ng-devtools-tabs',
templateUrl: './devtools-tabs.component.html',
styleUrls: ['./devtools-tabs.component.scss'],
2020-01-27 18:40:18 +00:00
})
export class DevToolsTabsComponent {
@Input() angularVersion: string | undefined = undefined;
2020-01-27 18:40:18 +00:00
@ViewChild(MatTabGroup) tabGroup: MatTabGroup;
@ViewChild(DirectiveExplorerComponent) directiveExplorer: DirectiveExplorerComponent;
2020-01-27 18:40:18 +00:00
constructor(
public tabUpdate: TabUpdate,
public themeService: ThemeService,
private _messageBus: MessageBus<Events>,
private _applicationEnvironment: ApplicationEnvironment
) {}
get latestSHA(): string {
return this._applicationEnvironment.environment.process.env.LATEST_SHA;
}
2020-01-27 18:40:18 +00:00
inspectorRunning = false;
toggleInspector(): void {
this.toggleInspectorState();
this.emitInspectorEvent();
}
emitInspectorEvent(): void {
2020-01-27 18:40:18 +00:00
if (this.inspectorRunning) {
this._messageBus.emit('inspectorStart');
2020-01-27 18:40:18 +00:00
this.tabGroup.selectedIndex = 0;
} else {
this._messageBus.emit('inspectorEnd');
this._messageBus.emit('removeHighlightOverlay');
2020-01-27 18:40:18 +00:00
}
}
toggleInspectorState(): void {
this.inspectorRunning = !this.inspectorRunning;
}
refresh(): void {
this.directiveExplorer.refresh();
2020-01-27 18:40:18 +00:00
}
toggleTimingAPI(change: MatSlideToggleChange): void {
change.checked ? this._messageBus.emit('enableTimingAPI') : this._messageBus.emit('disableTimingAPI');
}
2020-01-27 18:40:18 +00:00
}