mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-05-02 08:42:50 +00:00
84 lines
1.5 KiB
TypeScript
84 lines
1.5 KiB
TypeScript
import { Component, ElementRef, Input, ChangeDetectorRef } from '@angular/core';
|
|
|
|
|
|
@Component({
|
|
selector: '[app-status]',
|
|
templateUrl: './status.component.html',
|
|
styleUrls: ['./status.component.scss'],
|
|
})
|
|
export class StatusComponent {
|
|
static STOPPED_STATUS_RECT_WIDTH = 10;
|
|
|
|
data = {
|
|
'status': '',
|
|
'path': null,
|
|
'direction': null,
|
|
'd': null
|
|
};
|
|
|
|
constructor(
|
|
protected element: ElementRef,
|
|
private ref: ChangeDetectorRef
|
|
) {}
|
|
|
|
@Input('app-status')
|
|
set status(value) {
|
|
this.data.status = value;
|
|
this.ref.markForCheck();
|
|
}
|
|
|
|
@Input('path')
|
|
set path(value) {
|
|
this.data.path = value;
|
|
this.ref.markForCheck();
|
|
}
|
|
|
|
@Input('direction')
|
|
set direction(value) {
|
|
this.data.direction = value;
|
|
this.ref.markForCheck();
|
|
}
|
|
|
|
@Input('d')
|
|
set d(value) {
|
|
if (this.data.d !== value) {
|
|
this.data.d = value;
|
|
this.ref.markForCheck();
|
|
}
|
|
}
|
|
|
|
get status() {
|
|
return this.data.status;
|
|
}
|
|
|
|
get direction() {
|
|
return this.data.direction;
|
|
}
|
|
|
|
get path() {
|
|
return this.data.path;
|
|
}
|
|
|
|
get sourceStatusPoint() {
|
|
if (!this.path) {
|
|
return null;
|
|
}
|
|
return this.path.nativeElement.getPointAtLength(45);
|
|
}
|
|
|
|
get targetStatusPoint() {
|
|
if (!this.path) {
|
|
return null;
|
|
}
|
|
return this.path.nativeElement.getPointAtLength(this.path.nativeElement.getTotalLength() - 45);
|
|
}
|
|
|
|
get point() {
|
|
if (this.direction === 'source') {
|
|
return this.sourceStatusPoint;
|
|
}
|
|
return this.targetStatusPoint;
|
|
}
|
|
|
|
}
|