import { ChangeDetectionStrategy , Component , Input } from '@angular/core' ; import { GeoserveService } from '@core/geoserve.service' ; import { BehaviorSubject } from 'rxjs' ; param input @ Component ( { changeDetection : ChangeDetectionStrategy . OnPush , selector : 'shared-fe-region' , styleUrls : [ './fe-region.component.scss' ] , templateUrl : './fe-region.component.html' } ) export class FeRegionComponent { _latitude : number ; _loading = false ; _longitude : number ; region = new BehaviorSubject < any > ( null ) ; constructor ( public geoserveService ) { } param longitude @ Input ( ) set longitude ( longitude ) { this . _longitude = longitude ; this . fetchFe ( this . _latitude , this . _longitude ) ; } param latitude @ Input ( ) set latitude ( latitude ) { this . _latitude = latitude ; this . fetchFe ( this . _latitude , this . _longitude ) ; } /**
     * Getter for the component latitude
     */ get latitude ( ) : number { return this . _latitude ; } /**
     * Getter for the component longitude
     */ get longitude ( ) : number { return this . _longitude ; } param latitude param longitude fetchFe ( latitude , longitude ) { if ( ! ( latitude || latitude === 0 ) || ! ( longitude || longitude === 0 ) ) { this . region . next ( null ) ; return ; } this . _loading = true ; this . geoserveService . fe ( latitude , longitude ) . subscribe ( response => { this . _loading = false ; this . region . next ( response . fe . features [ 0 ] ) ; } ) ; } /**
     * Returns whether or not the page is rendering
     */ isLoading ( ) { return this . _loading ; } }