@ngx-google-maps-tk/drawing
Version:
Angular Google Maps (AGM) extension for google maps drawing library
1 lines • 14.9 kB
Source Map (JSON)
{"version":3,"file":"ngx-google-maps-tk-drawing.mjs","sources":["../../../packages/drawing/src/lib/directives/drawing-manager.ts","../../../packages/drawing/src/lib/directives/drawing-manager-trigger.ts","../../../packages/drawing/src/lib/drawing.module.ts","../../../packages/drawing/src/public-api.ts","../../../packages/drawing/src/ngx-google-maps-tk-drawing.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, isDevMode, NgZone, OnChanges, OnDestroy, Output, SimpleChanges } from '@angular/core';\nimport { fromEventPattern, Observable, Subscription } from 'rxjs';\n\n@Directive({\n selector: 'agm-drawing-manager',\n exportAs: 'agmDrawingManager',\n})\nexport class AgmDrawingManager implements OnChanges, OnDestroy{\n\n /**\n * The enabled/disabled state of the drawing control. Defaults to `true`.\n *\n */\n @Input() drawingControl: boolean;\n\n /**\n * The DrawingManager's drawing mode, which defines the type of overlay to be\n * added on the map. A drawing mode of null means that the user can interact\n * with the map as normal, and clicks do not draw anything.\n */\n @Input() drawingMode: google.maps.drawing.OverlayType | null;\n\n /**\n * The display options for the drawing control.\n *\n */\n @Input() drawingControlOptions: google.maps.drawing.DrawingControlOptions;\n\n /**\n * Options to apply to any new circles created with this DrawingManager.\n * The `center` and `radius` properties are ignored, and the `map` property of a\n * new circle is always set to the DrawingManager's map.\n *\n */\n @Input() circleOptions: google.maps.CircleOptions;\n\n /**\n * Options to apply to any new markers created with this DrawingManager.\n * The `position` property is ignored, and the `map` property of a new marker\n * is always set to the DrawingManager's map.\n *\n */\n @Input() markerOptions: google.maps.MarkerOptions;\n\n /**\n * Options to apply to any new polygons created with this DrawingManager.\n * The `paths` property is ignored, and the map property of a new polygon is\n * always set to the DrawingManager's map.\n *\n */\n @Input() polygonOptions: google.maps.PolygonOptions;\n\n /**\n * Options to apply to any new polylines created with this DrawingManager.\n * The `path` property is ignored, and the map property of a new polyline is\n * always set to the DrawingManager's map.\n *\n */\n @Input() polylineOptions: google.maps.PolylineOptions;\n\n /**\n * Options to apply to any new rectangles created with this DrawingManager.\n * The `bounds` property is ignored, and the map property of a new rectangle\n * is always set to the DrawingManager's map.\n *\n */\n @Input() rectangleOptions: google.maps.RectangleOptions;\n\n /**\n * This event is fired when the user has finished drawing a circle.\n */\n @Output() circleComplete = new EventEmitter<google.maps.Circle>();\n\n /**\n * This event is fired when the user has finished drawing a marker.\n */\n @Output() markerComplete = new EventEmitter<google.maps.Marker>();\n\n /**\n * This event is fired when the user has finished drawing an overlay of any\n * type.\n */\n @Output() overlayComplete = new EventEmitter<google.maps.drawing.OverlayCompleteEvent>();\n\n /**\n * This event is fired when the user has finished drawing a polygon.\n */\n @Output() polygonComplete = new EventEmitter<google.maps.Polygon>();\n\n /**\n * This event is fired when the user has finished drawing a polyline.\n */\n @Output() polylineComplete = new EventEmitter<google.maps.Polyline>();\n\n /**\n * This event is fired when the user has finished drawing a rectangle.\n */\n @Output() rectangleComplete = new EventEmitter<google.maps.Rectangle>();\n\n private eventSubscriptions: Subscription[] = [];\n\n private drawingManager: google.maps.drawing.DrawingManager;\n\n constructor(private _zone: NgZone) {\n }\n\n setMap(map: google.maps.Map) {\n if (!google.maps.drawing && isDevMode()) {\n console.error('Cannot use drawing manager if drawing library is not ' +\n 'loaded. To fix, add libraries: [\\'drawing\\'] to the ' +\n 'lazyMapsAPILoaderConfig you passed to AgmCoreModule.forRoot');\n return;\n }\n if (map && !this.drawingManager) {\n this.drawingManager = new google.maps.drawing.DrawingManager({\n map,\n circleOptions: this.circleOptions,\n markerOptions: this.markerOptions,\n polygonOptions: this.polygonOptions,\n polylineOptions: this.polylineOptions,\n rectangleOptions: this.rectangleOptions,\n drawingControl: this.drawingControl,\n drawingControlOptions: this.drawingControlOptions,\n drawingMode: this.drawingMode,\n });\n this.initEvents(this.drawingManager);\n } else if (!map && this.drawingManager) {\n this.drawingManager.setMap(null);\n }\n // else do nothing\n }\n\n initEvents(drawingManager: google.maps.drawing.DrawingManager) {\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.Circle>('circlecomplete', drawingManager)\n .subscribe(circle => this._zone.run(() => this.circleComplete.next(circle)))\n );\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.Marker>('markercomplete', drawingManager)\n .subscribe(marker => this._zone.run(() => this.markerComplete.next(marker)))\n );\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.Polygon>('polygoncomplete', drawingManager)\n .subscribe(polygon => this._zone.run(() => this.polygonComplete.next(polygon)))\n );\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.Polyline>('polylinecomplete', drawingManager)\n .subscribe(polyline => this._zone.run(() => this.polylineComplete.next(polyline)))\n );\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.drawing.OverlayCompleteEvent>('overlaycomplete', drawingManager)\n .subscribe(overlayevent => this._zone.run(() => this.overlayComplete.next(overlayevent)))\n );\n this.eventSubscriptions.push(\n this.createMvcObservable<google.maps.Rectangle>('rectanglecomplete', drawingManager)\n .subscribe(rectangle => this._zone.run(() => this.rectangleComplete.next(rectangle)))\n );\n }\n\n createMvcObservable<E>(eventName: string, mvcObject: google.maps.MVCObject): Observable<E> {\n return fromEventPattern(\n handler => mvcObject.addListener(eventName,\n (event?: E) => handler.apply(null, [event])),\n (_handler, evListener: google.maps.MapsEventListener) => evListener.remove()\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.drawingManager) {\n return;\n }\n\n const options = Object.entries(changes)\n .map(([prop, change]) => [prop, change.currentValue])\n .reduce((obj: any, [propName, propValue]) => {\n obj[propName] = propValue;\n return obj;\n }, {});\n this.drawingManager.setOptions(options);\n }\n\n ngOnDestroy(): void {\n this.eventSubscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n}\n","import { AgmMap } from '@ngx-google-maps-tk/core';\nimport { AfterViewInit, Directive, Host, Input, OnDestroy } from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { AgmDrawingManager } from './drawing-manager';\n\n@Directive({\n selector: 'agm-map[agmDrawingManager]',\n exportAs: 'matDrawingManagerTrigger',\n})\nexport class AgmDrawingManagerTrigger implements AfterViewInit, OnDestroy{\n\n /** The drawing manager to be attached to this trigger. */\n // tslint:disable-next-line: no-input-rename\n @Input('agmDrawingManager') drawingManager: AgmDrawingManager;\n\n constructor(@Host() private _agmMap: AgmMap) {\n }\n\n ngAfterViewInit(): void {\n this._agmMap.mapReady.pipe(first()).subscribe(map => this.drawingManager.setMap(map));\n }\n\n ngOnDestroy() {\n this._agmMap.mapReady.pipe(first()).subscribe(() => this.drawingManager.setMap(null));\n }\n}\n","import { AgmCoreModule } from '@ngx-google-maps-tk/core';\nimport { NgModule } from '@angular/core';\nimport { AgmDrawingManager } from './directives/drawing-manager';\nimport { AgmDrawingManagerTrigger } from './directives/drawing-manager-trigger';\n\n@NgModule({\n imports: [AgmCoreModule],\n declarations: [AgmDrawingManager, AgmDrawingManagerTrigger],\n exports: [AgmDrawingManager, AgmDrawingManagerTrigger],\n})\nexport class AgmDrawingModule {\n}\n","/*\n * Public API Surface of drawing\n */\n\nexport * from './lib/directives';\nexport * from './lib/drawing.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}