59 lines
No EOL
1.4 KiB
TypeScript
59 lines
No EOL
1.4 KiB
TypeScript
import { Component, ElementRef, OnInit,
|
|
ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core'
|
|
|
|
import { Subscription } from 'rxjs'
|
|
|
|
import { FeatureFinderService } from '../feature-finder.service'
|
|
|
|
|
|
@Component({
|
|
selector: 'app-direction',
|
|
templateUrl: './direction.component.html',
|
|
styleUrls: ['./direction.component.scss'],
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
})
|
|
export class TreetrailDirectionComponent implements OnInit {
|
|
direction: number
|
|
clickSubscription: Subscription
|
|
distance: number
|
|
orientationClass: string = 'unknown'
|
|
|
|
constructor(
|
|
public elementRef: ElementRef,
|
|
public featureFinderService: FeatureFinderService,
|
|
private cdr: ChangeDetectorRef,
|
|
) {
|
|
}
|
|
|
|
ngOnInit() {
|
|
this.featureFinderService.direction$.subscribe(
|
|
dir => {
|
|
this.direction = dir
|
|
this.cdr.markForCheck()
|
|
}
|
|
)
|
|
|
|
this.featureFinderService.distance$.subscribe(
|
|
dist => {
|
|
this.distance = Math.round(dist)
|
|
this.cdr.markForCheck()
|
|
}
|
|
)
|
|
|
|
this.featureFinderService.direction$.subscribe(
|
|
_ => this.cdr.markForCheck()
|
|
)
|
|
|
|
this.featureFinderService.orientation$.subscribe(
|
|
orientation => {
|
|
if (typeof(orientation) != 'undefined') {
|
|
this.orientationClass = 'absolute'
|
|
}
|
|
else {
|
|
this.orientationClass = 'unknown'
|
|
}
|
|
this.cdr.markForCheck()
|
|
}
|
|
)
|
|
}
|
|
} |