From be2ce3930aa4f52befba94d7944ee440c12f1b5d Mon Sep 17 00:00:00 2001 From: Ralf Hauptmann Date: Wed, 30 May 2018 20:02:48 +1000 Subject: [PATCH 1/2] add output to direction render on failure --- src/directives/directions-renderer.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/directives/directions-renderer.ts b/src/directives/directions-renderer.ts index 6b47cca..847f437 100644 --- a/src/directives/directions-renderer.ts +++ b/src/directives/directions-renderer.ts @@ -1,4 +1,4 @@ -import { Input, Directive, SimpleChanges, OnChanges, OnDestroy } from '@angular/core'; +import { Input, Directive, SimpleChanges, OnChanges, OnDestroy, Output, EventEmitter } from '@angular/core'; import { BaseMapDirective } from './base-map-directive'; import { NguiMapComponent } from '../components/ngui-map.component'; @@ -19,6 +19,7 @@ const OUTPUTS = ['directions_changed']; export class DirectionsRenderer extends BaseMapDirective implements OnChanges, OnDestroy { // tslint:disable-next-line @Input('directions-request') directionsRequest: google.maps.DirectionsRequest; + @Output('directionsFailed') directionsFailed: EventEmitter = new EventEmitter(); directionsService: google.maps.DirectionsService; directionsRenderer: google.maps.DirectionsRenderer; @@ -78,6 +79,7 @@ export class DirectionsRenderer extends BaseMapDirective implements OnChanges, O if (status === google.maps.DirectionsStatus.OK) { this.directionsRenderer.setDirections(response); } else { + this.directionsFailed.emit(status); console.error('Directions request failed due to ' + status); } } From ff0bb37e72c0e3a82e6758269852bf8c2e1cc6ce Mon Sep 17 00:00:00 2001 From: Ralf Hauptmann Date: Sat, 21 Jul 2018 20:25:41 +1000 Subject: [PATCH 2/2] feat(direction renderer): emit directions result --- src/directives/directions-renderer.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/directives/directions-renderer.ts b/src/directives/directions-renderer.ts index 847f437..a09ce19 100644 --- a/src/directives/directions-renderer.ts +++ b/src/directives/directions-renderer.ts @@ -9,7 +9,7 @@ const INPUTS = [ 'polylineOptions', 'preserveViewport', 'routeIndex', 'suppressBicyclingLayer', 'suppressInfoWindows', 'suppressMarkers', 'suppressPolylines' ]; -const OUTPUTS = ['directions_changed']; +const OUTPUTS = ['directions_changed', 'directions_result']; @Directive({ selector: 'ngui-map > directions-renderer', @@ -20,6 +20,7 @@ export class DirectionsRenderer extends BaseMapDirective implements OnChanges, O // tslint:disable-next-line @Input('directions-request') directionsRequest: google.maps.DirectionsRequest; @Output('directionsFailed') directionsFailed: EventEmitter = new EventEmitter(); + @Output('directions_result') directionsResult: EventEmitter = new EventEmitter(); directionsService: google.maps.DirectionsService; directionsRenderer: google.maps.DirectionsRenderer; @@ -45,7 +46,7 @@ export class DirectionsRenderer extends BaseMapDirective implements OnChanges, O this.directionsRenderer.setMap(this.nguiMapComponent.map); - // set google events listeners and emidirectionsRenderer to this outputs listeners + // set google events listeners and emit directionsRenderer to this outputs listeners this.showDirections(this.directionsRequest); this.nguiMap.setObjectEvents(this.outputs, this, 'directionsRenderer'); @@ -54,7 +55,6 @@ export class DirectionsRenderer extends BaseMapDirective implements OnChanges, O this.initialized$.emit(this.directionsRenderer); } - ngOnChanges(changes: SimpleChanges) { let newOptions = {}; for (let key in changes) { @@ -78,6 +78,7 @@ export class DirectionsRenderer extends BaseMapDirective implements OnChanges, O if (status === google.maps.DirectionsStatus.OK) { this.directionsRenderer.setDirections(response); + this.directionsResult.emit(response); } else { this.directionsFailed.emit(status); console.error('Directions request failed due to ' + status);