@angular/google-maps 13.0.0-next.7 → 13.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/esm2020/google-map/google-map.mjs +445 -0
  2. package/esm2020/google-maps-module.mjs +86 -0
  3. package/esm2020/google-maps_public_index.mjs +5 -0
  4. package/esm2020/index.mjs +9 -0
  5. package/{esm2015/map-anchor-point.js → esm2020/map-anchor-point.mjs} +2 -2
  6. package/esm2020/map-base-layer.mjs +51 -0
  7. package/esm2020/map-bicycling-layer/map-bicycling-layer.mjs +48 -0
  8. package/esm2020/map-circle/map-circle.mjs +268 -0
  9. package/esm2020/map-directions-renderer/map-directions-renderer.mjs +138 -0
  10. package/esm2020/map-directions-renderer/map-directions-service.mjs +51 -0
  11. package/esm2020/map-event-manager.mjs +67 -0
  12. package/esm2020/map-geocoder/map-geocoder.mjs +47 -0
  13. package/esm2020/map-ground-overlay/map-ground-overlay.mjs +177 -0
  14. package/esm2020/map-heatmap-layer/map-heatmap-layer.mjs +135 -0
  15. package/esm2020/map-info-window/map-info-window.mjs +203 -0
  16. package/esm2020/map-kml-layer/map-kml-layer.mjs +170 -0
  17. package/esm2020/map-marker/map-marker.mjs +427 -0
  18. package/esm2020/map-marker-clusterer/map-marker-clusterer.mjs +407 -0
  19. package/esm2020/map-marker-clusterer/marker-clusterer-types.mjs +9 -0
  20. package/esm2020/map-polygon/map-polygon.mjs +216 -0
  21. package/esm2020/map-polyline/map-polyline.mjs +207 -0
  22. package/esm2020/map-rectangle/map-rectangle.mjs +229 -0
  23. package/esm2020/map-traffic-layer/map-traffic-layer.mjs +93 -0
  24. package/esm2020/map-transit-layer/map-transit-layer.mjs +48 -0
  25. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  26. package/fesm2015/{google-maps.js → google-maps.mjs} +590 -518
  27. package/fesm2015/google-maps.mjs.map +1 -0
  28. package/fesm2020/google-maps.mjs +3257 -0
  29. package/fesm2020/google-maps.mjs.map +1 -0
  30. package/google-map/google-map.d.ts +10 -7
  31. package/google-maps-module.d.ts +20 -7
  32. package/google-maps_public_index.d.ts +4 -0
  33. package/index.d.ts +5 -1
  34. package/map-anchor-point.d.ts +1 -1
  35. package/map-base-layer.d.ts +3 -0
  36. package/map-bicycling-layer/map-bicycling-layer.d.ts +4 -8
  37. package/map-circle/map-circle.d.ts +6 -3
  38. package/map-directions-renderer/map-directions-renderer.d.ts +6 -3
  39. package/map-directions-renderer/map-directions-service.d.ts +4 -1
  40. package/map-event-manager.d.ts +1 -1
  41. package/map-geocoder/map-geocoder.d.ts +4 -1
  42. package/map-ground-overlay/map-ground-overlay.d.ts +5 -2
  43. package/map-heatmap-layer/map-heatmap-layer.d.ts +4 -1
  44. package/map-info-window/map-info-window.d.ts +5 -2
  45. package/map-kml-layer/map-kml-layer.d.ts +6 -3
  46. package/map-marker/map-marker.d.ts +4 -1
  47. package/map-marker-clusterer/map-marker-clusterer.d.ts +5 -2
  48. package/map-marker-clusterer/marker-clusterer-types.d.ts +1 -1
  49. package/map-polygon/map-polygon.d.ts +4 -1
  50. package/map-polyline/map-polyline.d.ts +4 -1
  51. package/map-rectangle/map-rectangle.d.ts +5 -2
  52. package/map-traffic-layer/map-traffic-layer.d.ts +4 -1
  53. package/map-transit-layer/map-transit-layer.d.ts +4 -8
  54. package/package.json +23 -9
  55. package/bundles/google-maps.umd.js +0 -3757
  56. package/bundles/google-maps.umd.js.map +0 -1
  57. package/esm2015/google-map/google-map.js +0 -418
  58. package/esm2015/google-maps-module.js +0 -51
  59. package/esm2015/google-maps.externs.js +0 -6
  60. package/esm2015/index.js +0 -5
  61. package/esm2015/map-base-layer.js +0 -49
  62. package/esm2015/map-bicycling-layer/map-bicycling-layer.js +0 -43
  63. package/esm2015/map-circle/map-circle.js +0 -247
  64. package/esm2015/map-directions-renderer/map-directions-renderer.js +0 -131
  65. package/esm2015/map-directions-renderer/map-directions-service.js +0 -52
  66. package/esm2015/map-event-manager.js +0 -67
  67. package/esm2015/map-geocoder/map-geocoder.js +0 -47
  68. package/esm2015/map-ground-overlay/map-ground-overlay.js +0 -171
  69. package/esm2015/map-heatmap-layer/map-heatmap-layer.js +0 -130
  70. package/esm2015/map-info-window/map-info-window.js +0 -193
  71. package/esm2015/map-kml-layer/map-kml-layer.js +0 -160
  72. package/esm2015/map-marker/map-marker.js +0 -391
  73. package/esm2015/map-marker-clusterer/map-marker-clusterer.js +0 -360
  74. package/esm2015/map-marker-clusterer/marker-clusterer-types.js +0 -9
  75. package/esm2015/map-polygon/map-polygon.js +0 -198
  76. package/esm2015/map-polyline/map-polyline.js +0 -189
  77. package/esm2015/map-rectangle/map-rectangle.js +0 -210
  78. package/esm2015/map-traffic-layer/map-traffic-layer.js +0 -88
  79. package/esm2015/map-transit-layer/map-transit-layer.js +0 -43
  80. package/fesm2015/google-maps.js.map +0 -1
  81. package/index.metadata.json +0 -1
@@ -1,210 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
9
- /// <reference types="googlemaps" />
10
- import { Directive, Input, Output, NgZone } from '@angular/core';
11
- import { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';
12
- import { map, take, takeUntil } from 'rxjs/operators';
13
- import { GoogleMap } from '../google-map/google-map';
14
- import { MapEventManager } from '../map-event-manager';
15
- /**
16
- * Angular component that renders a Google Maps Rectangle via the Google Maps JavaScript API.
17
- *
18
- * See developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle
19
- */
20
- export class MapRectangle {
21
- constructor(_map, _ngZone) {
22
- this._map = _map;
23
- this._ngZone = _ngZone;
24
- this._eventManager = new MapEventManager(this._ngZone);
25
- this._options = new BehaviorSubject({});
26
- this._bounds = new BehaviorSubject(undefined);
27
- this._destroyed = new Subject();
28
- /**
29
- * See
30
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.boundsChanged
31
- */ this.boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');
32
- /**
33
- * See
34
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.click
35
- */
36
- this.rectangleClick = this._eventManager.getLazyEmitter('click');
37
- /**
38
- * See
39
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dblclick
40
- */
41
- this.rectangleDblclick = this._eventManager.getLazyEmitter('dblclick');
42
- /**
43
- * See
44
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.drag
45
- */
46
- this.rectangleDrag = this._eventManager.getLazyEmitter('drag');
47
- /**
48
- * See
49
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragend
50
- */
51
- this.rectangleDragend = this._eventManager.getLazyEmitter('dragend');
52
- /**
53
- * See
54
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragstart
55
- */
56
- this.rectangleDragstart = this._eventManager.getLazyEmitter('dragstart');
57
- /**
58
- * See
59
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousedown
60
- */
61
- this.rectangleMousedown = this._eventManager.getLazyEmitter('mousedown');
62
- /**
63
- * See
64
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousemove
65
- */
66
- this.rectangleMousemove = this._eventManager.getLazyEmitter('mousemove');
67
- /**
68
- * See
69
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseout
70
- */
71
- this.rectangleMouseout = this._eventManager.getLazyEmitter('mouseout');
72
- /**
73
- * See
74
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseover
75
- */
76
- this.rectangleMouseover = this._eventManager.getLazyEmitter('mouseover');
77
- /**
78
- * See
79
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseup
80
- */
81
- this.rectangleMouseup = this._eventManager.getLazyEmitter('mouseup');
82
- /**
83
- * See
84
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.rightclick
85
- */
86
- this.rectangleRightclick = this._eventManager.getLazyEmitter('rightclick');
87
- }
88
- set options(options) {
89
- this._options.next(options || {});
90
- }
91
- set bounds(bounds) {
92
- this._bounds.next(bounds);
93
- }
94
- ngOnInit() {
95
- if (this._map._isBrowser) {
96
- this._combineOptions().pipe(take(1)).subscribe(options => {
97
- // Create the object outside the zone so its events don't trigger change detection.
98
- // We'll bring it back in inside the `MapEventManager` only for the events that the
99
- // user has subscribed to.
100
- this._ngZone.runOutsideAngular(() => {
101
- this.rectangle = new google.maps.Rectangle(options);
102
- });
103
- this._assertInitialized();
104
- this.rectangle.setMap(this._map.googleMap);
105
- this._eventManager.setTarget(this.rectangle);
106
- });
107
- this._watchForOptionsChanges();
108
- this._watchForBoundsChanges();
109
- }
110
- }
111
- ngOnDestroy() {
112
- this._eventManager.destroy();
113
- this._destroyed.next();
114
- this._destroyed.complete();
115
- if (this.rectangle) {
116
- this.rectangle.setMap(null);
117
- }
118
- }
119
- /**
120
- * See
121
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getBounds
122
- */
123
- getBounds() {
124
- this._assertInitialized();
125
- return this.rectangle.getBounds();
126
- }
127
- /**
128
- * See
129
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getDraggable
130
- */
131
- getDraggable() {
132
- this._assertInitialized();
133
- return this.rectangle.getDraggable();
134
- }
135
- /**
136
- * See
137
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getEditable
138
- */
139
- getEditable() {
140
- this._assertInitialized();
141
- return this.rectangle.getEditable();
142
- }
143
- /**
144
- * See
145
- * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getVisible
146
- */
147
- getVisible() {
148
- this._assertInitialized();
149
- return this.rectangle.getVisible();
150
- }
151
- _combineOptions() {
152
- return combineLatest([this._options, this._bounds]).pipe(map(([options, bounds]) => {
153
- const combinedOptions = Object.assign(Object.assign({}, options), { bounds: bounds || options.bounds });
154
- return combinedOptions;
155
- }));
156
- }
157
- _watchForOptionsChanges() {
158
- this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {
159
- this._assertInitialized();
160
- this.rectangle.setOptions(options);
161
- });
162
- }
163
- _watchForBoundsChanges() {
164
- this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {
165
- if (bounds) {
166
- this._assertInitialized();
167
- this.rectangle.setBounds(bounds);
168
- }
169
- });
170
- }
171
- _assertInitialized() {
172
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
173
- if (!this._map.googleMap) {
174
- throw Error('Cannot access Google Map information before the API has been initialized. ' +
175
- 'Please wait for the API to load before trying to interact with it.');
176
- }
177
- if (!this.rectangle) {
178
- throw Error('Cannot interact with a Google Map Rectangle before it has been initialized. ' +
179
- 'Please wait for the Rectangle to load before trying to interact with it.');
180
- }
181
- }
182
- }
183
- }
184
- MapRectangle.decorators = [
185
- { type: Directive, args: [{
186
- selector: 'map-rectangle',
187
- exportAs: 'mapRectangle',
188
- },] }
189
- ];
190
- MapRectangle.ctorParameters = () => [
191
- { type: GoogleMap },
192
- { type: NgZone }
193
- ];
194
- MapRectangle.propDecorators = {
195
- options: [{ type: Input }],
196
- bounds: [{ type: Input }],
197
- boundsChanged: [{ type: Output }],
198
- rectangleClick: [{ type: Output }],
199
- rectangleDblclick: [{ type: Output }],
200
- rectangleDrag: [{ type: Output }],
201
- rectangleDragend: [{ type: Output }],
202
- rectangleDragstart: [{ type: Output }],
203
- rectangleMousedown: [{ type: Output }],
204
- rectangleMousemove: [{ type: Output }],
205
- rectangleMouseout: [{ type: Output }],
206
- rectangleMouseover: [{ type: Output }],
207
- rectangleMouseup: [{ type: Output }],
208
- rectangleRightclick: [{ type: Output }]
209
- };
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXJlY3RhbmdsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9nb29nbGUtbWFwcy9tYXAtcmVjdGFuZ2xlL21hcC1yZWN0YW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgseUVBQXlFO0FBQ3pFLG9DQUFvQztBQUVwQyxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFckQ7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxZQUFZO0lBNkd2QixZQUE2QixJQUFlLEVBQW1CLE9BQWU7UUFBakQsU0FBSSxHQUFKLElBQUksQ0FBVztRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBNUd0RSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLFlBQU8sR0FDcEIsSUFBSSxlQUFlLENBQ2YsU0FBUyxDQUFDLENBQUM7UUFFRixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQW1CbEQ7OztXQUdHLENBQW9CLGtCQUFhLEdBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFPLGdCQUFnQixDQUFDLENBQUM7UUFFNUQ7OztXQUdHO1FBQ2dCLG1CQUFjLEdBQzdC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dGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLy8gV29ya2Fyb3VuZCBmb3I6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYXplbGJ1aWxkL3J1bGVzX25vZGVqcy9pc3N1ZXMvMTI2NVxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJnb29nbGVtYXBzXCIgLz5cblxuaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0dvb2dsZU1hcH0gZnJvbSAnLi4vZ29vZ2xlLW1hcC9nb29nbGUtbWFwJztcbmltcG9ydCB7TWFwRXZlbnRNYW5hZ2VyfSBmcm9tICcuLi9tYXAtZXZlbnQtbWFuYWdlcic7XG5cbi8qKlxuICogQW5ndWxhciBjb21wb25lbnQgdGhhdCByZW5kZXJzIGEgR29vZ2xlIE1hcHMgUmVjdGFuZ2xlIHZpYSB0aGUgR29vZ2xlIE1hcHMgSmF2YVNjcmlwdCBBUEkuXG4gKlxuICogU2VlIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbWFwLXJlY3RhbmdsZScsXG4gIGV4cG9ydEFzOiAnbWFwUmVjdGFuZ2xlJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwUmVjdGFuZ2xlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9ldmVudE1hbmFnZXIgPSBuZXcgTWFwRXZlbnRNYW5hZ2VyKHRoaXMuX25nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGdvb2dsZS5tYXBzLlJlY3RhbmdsZU9wdGlvbnM+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYm91bmRzID1cbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Z29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzfGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kc0xpdGVyYWx8dW5kZWZpbmVkPihcbiAgICAgICAgICB1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIGdvb2dsZS5tYXBzLlJlY3RhbmdsZSBvYmplY3QuXG4gICAqXG4gICAqIFNlZSBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlXG4gICAqL1xuICByZWN0YW5nbGU/OiBnb29nbGUubWFwcy5SZWN0YW5nbGU7XG5cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogZ29vZ2xlLm1hcHMuUmVjdGFuZ2xlT3B0aW9ucykge1xuICAgIHRoaXMuX29wdGlvbnMubmV4dChvcHRpb25zIHx8IHt9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBib3VuZHMoYm91bmRzOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHN8Z29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCkge1xuICAgIHRoaXMuX2JvdW5kcy5uZXh0KGJvdW5kcyk7XG4gIH1cblxuICAvKipcbiAgICogU2VlXG4gICAqIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGUuYm91bmRzQ2hhbmdlZFxuICAgKi8gQE91dHB1dCgpIHJlYWRvbmx5IGJvdW5kc0NoYW5nZWQ6IE9ic2VydmFibGU8dm9pZD4gPVxuICAgIHRoaXMuX2V2ZW50TWFuYWdlci5nZXRMYXp5RW1pdHRlcjx2b2lkPignYm91bmRzX2NoYW5nZWQnKTtcblxuICAvKipcbiAgICogU2VlXG4gICAqIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGUuY2xpY2tcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSByZWN0YW5nbGVDbGljazogT2JzZXJ2YWJsZTxnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50PiA9XG4gICAgICB0aGlzLl9ldmVudE1hbmFnZXIuZ2V0TGF6eUVtaXR0ZXI8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4oJ2NsaWNrJyk7XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLmRibGNsaWNrXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVjdGFuZ2xlRGJsY2xpY2s6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdkYmxjbGljaycpO1xuXG4gIC8qKlxuICAgKiBTZWVcbiAgICogZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wb2x5Z29uI1JlY3RhbmdsZS5kcmFnXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVjdGFuZ2xlRHJhZzogT2JzZXJ2YWJsZTxnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50PiA9XG4gICAgICB0aGlzLl9ldmVudE1hbmFnZXIuZ2V0TGF6eUVtaXR0ZXI8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4oJ2RyYWcnKTtcblxuICAvKipcbiAgICogU2VlXG4gICAqIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGUuZHJhZ2VuZFxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlY3RhbmdsZURyYWdlbmQ6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdkcmFnZW5kJyk7XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLmRyYWdzdGFydFxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlY3RhbmdsZURyYWdzdGFydDogT2JzZXJ2YWJsZTxnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50PiA9XG4gICAgICB0aGlzLl9ldmVudE1hbmFnZXIuZ2V0TGF6eUVtaXR0ZXI8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4oJ2RyYWdzdGFydCcpO1xuXG4gIC8qKlxuICAgKiBTZWVcbiAgICogZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wb2x5Z29uI1JlY3RhbmdsZS5tb3VzZWRvd25cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSByZWN0YW5nbGVNb3VzZWRvd246IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdtb3VzZWRvd24nKTtcblxuICAvKipcbiAgICogU2VlXG4gICAqIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGUubW91c2Vtb3ZlXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVjdGFuZ2xlTW91c2Vtb3ZlOiBPYnNlcnZhYmxlPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+ID1cbiAgICAgIHRoaXMuX2V2ZW50TWFuYWdlci5nZXRMYXp5RW1pdHRlcjxnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50PignbW91c2Vtb3ZlJyk7XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLm1vdXNlb3V0XG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVjdGFuZ2xlTW91c2VvdXQ6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdtb3VzZW91dCcpO1xuXG4gIC8qKlxuICAgKiBTZWVcbiAgICogZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wb2x5Z29uI1JlY3RhbmdsZS5tb3VzZW92ZXJcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSByZWN0YW5nbGVNb3VzZW92ZXI6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdtb3VzZW92ZXInKTtcblxuICAvKipcbiAgICogU2VlXG4gICAqIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcG9seWdvbiNSZWN0YW5nbGUubW91c2V1cFxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlY3RhbmdsZU1vdXNldXA6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudD4gPVxuICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmdldExhenlFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCdtb3VzZXVwJyk7XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLnJpZ2h0Y2xpY2tcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSByZWN0YW5nbGVSaWdodGNsaWNrOiBPYnNlcnZhYmxlPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+ID1cbiAgICAgIHRoaXMuX2V2ZW50TWFuYWdlci5nZXRMYXp5RW1pdHRlcjxnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50PigncmlnaHRjbGljaycpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX21hcDogR29vZ2xlTWFwLCBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fbWFwLl9pc0Jyb3dzZXIpIHtcbiAgICAgIHRoaXMuX2NvbWJpbmVPcHRpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XG4gICAgICAgIC8vIENyZWF0ZSB0aGUgb2JqZWN0IG91dHNpZGUgdGhlIHpvbmUgc28gaXRzIGV2ZW50cyBkb24ndCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgIC8vIFdlJ2xsIGJyaW5nIGl0IGJhY2sgaW4gaW5zaWRlIHRoZSBgTWFwRXZlbnRNYW5hZ2VyYCBvbmx5IGZvciB0aGUgZXZlbnRzIHRoYXQgdGhlXG4gICAgICAgIC8vIHVzZXIgaGFzIHN1YnNjcmliZWQgdG8uXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWN0YW5nbGUgPSBuZXcgZ29vZ2xlLm1hcHMuUmVjdGFuZ2xlKG9wdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUuc2V0TWFwKHRoaXMuX21hcC5nb29nbGVNYXAhKTtcbiAgICAgICAgdGhpcy5fZXZlbnRNYW5hZ2VyLnNldFRhcmdldCh0aGlzLnJlY3RhbmdsZSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fd2F0Y2hGb3JPcHRpb25zQ2hhbmdlcygpO1xuICAgICAgdGhpcy5fd2F0Y2hGb3JCb3VuZHNDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIGlmICh0aGlzLnJlY3RhbmdsZSkge1xuICAgICAgdGhpcy5yZWN0YW5nbGUuc2V0TWFwKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWVcbiAgICogZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wb2x5Z29uI1JlY3RhbmdsZS5nZXRCb3VuZHNcbiAgICovXG4gIGdldEJvdW5kcygpOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKCk7XG4gICAgcmV0dXJuIHRoaXMucmVjdGFuZ2xlLmdldEJvdW5kcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLmdldERyYWdnYWJsZVxuICAgKi9cbiAgZ2V0RHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKCk7XG4gICAgcmV0dXJuIHRoaXMucmVjdGFuZ2xlLmdldERyYWdnYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLmdldEVkaXRhYmxlXG4gICAqL1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgIHJldHVybiB0aGlzLnJlY3RhbmdsZS5nZXRFZGl0YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BvbHlnb24jUmVjdGFuZ2xlLmdldFZpc2libGVcbiAgICovXG4gIGdldFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5yZWN0YW5nbGUuZ2V0VmlzaWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tYmluZU9wdGlvbnMoKTogT2JzZXJ2YWJsZTxnb29nbGUubWFwcy5SZWN0YW5nbGVPcHRpb25zPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuX29wdGlvbnMsIHRoaXMuX2JvdW5kc10pLnBpcGUobWFwKChbb3B0aW9ucywgYm91bmRzXSkgPT4ge1xuICAgICAgY29uc3QgY29tYmluZWRPcHRpb25zOiBnb29nbGUubWFwcy5SZWN0YW5nbGVPcHRpb25zID0ge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBib3VuZHM6IGJvdW5kcyB8fCBvcHRpb25zLmJvdW5kcyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gY29tYmluZWRPcHRpb25zO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dhdGNoRm9yT3B0aW9uc0NoYW5nZXMoKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgICAgdGhpcy5yZWN0YW5nbGUuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3dhdGNoRm9yQm91bmRzQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9ib3VuZHMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKGJvdW5kcyA9PiB7XG4gICAgICBpZiAoYm91bmRzKSB7XG4gICAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLnNldEJvdW5kcyhib3VuZHMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXNzZXJ0SW5pdGlhbGl6ZWQoKTogYXNzZXJ0cyB0aGlzIGlzIHtyZWN0YW5nbGU6IGdvb2dsZS5tYXBzLlJlY3RhbmdsZX0ge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGlmICghdGhpcy5fbWFwLmdvb2dsZU1hcCkge1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICAgJ1BsZWFzZSB3YWl0IGZvciB0aGUgQVBJIHRvIGxvYWQgYmVmb3JlIHRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGl0LicpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnJlY3RhbmdsZSkge1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICdDYW5ub3QgaW50ZXJhY3Qgd2l0aCBhIEdvb2dsZSBNYXAgUmVjdGFuZ2xlIGJlZm9yZSBpdCBoYXMgYmVlbiBpbml0aWFsaXplZC4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHdhaXQgZm9yIHRoZSBSZWN0YW5nbGUgdG8gbG9hZCBiZWZvcmUgdHJ5aW5nIHRvIGludGVyYWN0IHdpdGggaXQuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,88 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
9
- /// <reference types="googlemaps" />
10
- import { Directive, Input, NgZone } from '@angular/core';
11
- import { BehaviorSubject, Subject } from 'rxjs';
12
- import { map, take, takeUntil } from 'rxjs/operators';
13
- import { GoogleMap } from '../google-map/google-map';
14
- /**
15
- * Angular component that renders a Google Maps Traffic Layer via the Google Maps JavaScript API.
16
- *
17
- * See developers.google.com/maps/documentation/javascript/reference/map#TrafficLayer
18
- */
19
- export class MapTrafficLayer {
20
- constructor(_map, _ngZone) {
21
- this._map = _map;
22
- this._ngZone = _ngZone;
23
- this._autoRefresh = new BehaviorSubject(true);
24
- this._destroyed = new Subject();
25
- }
26
- /**
27
- * Whether the traffic layer refreshes with updated information automatically.
28
- */
29
- set autoRefresh(autoRefresh) {
30
- this._autoRefresh.next(autoRefresh);
31
- }
32
- ngOnInit() {
33
- if (this._map._isBrowser) {
34
- this._combineOptions().pipe(take(1)).subscribe(options => {
35
- // Create the object outside the zone so its events don't trigger change detection.
36
- this._ngZone.runOutsideAngular(() => {
37
- this.trafficLayer = new google.maps.TrafficLayer(options);
38
- });
39
- this._assertInitialized();
40
- this.trafficLayer.setMap(this._map.googleMap);
41
- });
42
- this._watchForAutoRefreshChanges();
43
- }
44
- }
45
- ngOnDestroy() {
46
- this._destroyed.next();
47
- this._destroyed.complete();
48
- if (this.trafficLayer) {
49
- this.trafficLayer.setMap(null);
50
- }
51
- }
52
- _combineOptions() {
53
- return this._autoRefresh.pipe(map(autoRefresh => {
54
- const combinedOptions = { autoRefresh };
55
- return combinedOptions;
56
- }));
57
- }
58
- _watchForAutoRefreshChanges() {
59
- this._combineOptions().pipe(takeUntil(this._destroyed)).subscribe(options => {
60
- this._assertInitialized();
61
- this.trafficLayer.setOptions(options);
62
- });
63
- }
64
- _assertInitialized() {
65
- if (!this._map.googleMap) {
66
- throw Error('Cannot access Google Map information before the API has been initialized. ' +
67
- 'Please wait for the API to load before trying to interact with it.');
68
- }
69
- if (!this.trafficLayer) {
70
- throw Error('Cannot interact with a Google Map Traffic Layer before it has been initialized. ' +
71
- 'Please wait for the Traffic Layer to load before trying to interact with it.');
72
- }
73
- }
74
- }
75
- MapTrafficLayer.decorators = [
76
- { type: Directive, args: [{
77
- selector: 'map-traffic-layer',
78
- exportAs: 'mapTrafficLayer',
79
- },] }
80
- ];
81
- MapTrafficLayer.ctorParameters = () => [
82
- { type: GoogleMap },
83
- { type: NgZone }
84
- ];
85
- MapTrafficLayer.propDecorators = {
86
- autoRefresh: [{ type: Input }]
87
- };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXRyYWZmaWMtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ29vZ2xlLW1hcHMvbWFwLXRyYWZmaWMtbGF5ZXIvbWFwLXRyYWZmaWMtbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgseUVBQXlFO0FBQ3pFLG9DQUFvQztBQUVwQyxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRDs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFtQjFCLFlBQTZCLElBQWUsRUFBbUIsT0FBZTtRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFsQjdELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDbEQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFpQitCLENBQUM7SUFSbEY7O09BRUc7SUFDSCxJQUNJLFdBQVcsQ0FBQyxXQUFvQjtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBSUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZELG1GQUFtRjtnQkFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sZUFBZSxHQUFvQyxFQUFDLFdBQVcsRUFBQyxDQUFDO1lBQ3ZFLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxDQUNQLDRFQUE0RTtnQkFDNUUsb0VBQW9FLENBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxDQUNQLGtGQUFrRjtnQkFDbEYsOEVBQThFLENBQUMsQ0FBQztTQUNyRjtJQUNILENBQUM7OztZQXpFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7O1lBVk8sU0FBUztZQUpTLE1BQU07OzswQkE2QjdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLy8gV29ya2Fyb3VuZCBmb3I6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYXplbGJ1aWxkL3J1bGVzX25vZGVqcy9pc3N1ZXMvMTI2NVxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJnb29nbGVtYXBzXCIgLz5cblxuaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtHb29nbGVNYXB9IGZyb20gJy4uL2dvb2dsZS1tYXAvZ29vZ2xlLW1hcCc7XG5cbi8qKlxuICogQW5ndWxhciBjb21wb25lbnQgdGhhdCByZW5kZXJzIGEgR29vZ2xlIE1hcHMgVHJhZmZpYyBMYXllciB2aWEgdGhlIEdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJLlxuICpcbiAqIFNlZSBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL21hcCNUcmFmZmljTGF5ZXJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbWFwLXRyYWZmaWMtbGF5ZXInLFxuICBleHBvcnRBczogJ21hcFRyYWZmaWNMYXllcicsXG59KVxuZXhwb3J0IGNsYXNzIE1hcFRyYWZmaWNMYXllciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1JlZnJlc2ggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBnb29nbGUubWFwcy5UcmFmZmljTGF5ZXIgb2JqZWN0LlxuICAgKlxuICAgKiBTZWUgZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9tYXAjVHJhZmZpY0xheWVyXG4gICAqL1xuICB0cmFmZmljTGF5ZXI/OiBnb29nbGUubWFwcy5UcmFmZmljTGF5ZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRyYWZmaWMgbGF5ZXIgcmVmcmVzaGVzIHdpdGggdXBkYXRlZCBpbmZvcm1hdGlvbiBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGF1dG9SZWZyZXNoKGF1dG9SZWZyZXNoOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYXV0b1JlZnJlc2gubmV4dChhdXRvUmVmcmVzaCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9tYXA6IEdvb2dsZU1hcCwgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX21hcC5faXNCcm93c2VyKSB7XG4gICAgICB0aGlzLl9jb21iaW5lT3B0aW9ucygpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG9wdGlvbnMgPT4ge1xuICAgICAgICAvLyBDcmVhdGUgdGhlIG9iamVjdCBvdXRzaWRlIHRoZSB6b25lIHNvIGl0cyBldmVudHMgZG9uJ3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudHJhZmZpY0xheWVyID0gbmV3IGdvb2dsZS5tYXBzLlRyYWZmaWNMYXllcihvcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIHRoaXMudHJhZmZpY0xheWVyLnNldE1hcCh0aGlzLl9tYXAuZ29vZ2xlTWFwISk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fd2F0Y2hGb3JBdXRvUmVmcmVzaENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIGlmICh0aGlzLnRyYWZmaWNMYXllcikge1xuICAgICAgdGhpcy50cmFmZmljTGF5ZXIuc2V0TWFwKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbWJpbmVPcHRpb25zKCk6IE9ic2VydmFibGU8Z29vZ2xlLm1hcHMuVHJhZmZpY0xheWVyT3B0aW9ucz4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvUmVmcmVzaC5waXBlKG1hcChhdXRvUmVmcmVzaCA9PiB7XG4gICAgICBjb25zdCBjb21iaW5lZE9wdGlvbnM6IGdvb2dsZS5tYXBzLlRyYWZmaWNMYXllck9wdGlvbnMgPSB7YXV0b1JlZnJlc2h9O1xuICAgICAgcmV0dXJuIGNvbWJpbmVkT3B0aW9ucztcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIF93YXRjaEZvckF1dG9SZWZyZXNoQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9jb21iaW5lT3B0aW9ucygpLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZShvcHRpb25zID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICB0aGlzLnRyYWZmaWNMYXllci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXNzZXJ0SW5pdGlhbGl6ZWQoKTogYXNzZXJ0cyB0aGlzIGlzIHt0cmFmZmljTGF5ZXI6IGdvb2dsZS5tYXBzLlRyYWZmaWNMYXllcn0ge1xuICAgIGlmICghdGhpcy5fbWFwLmdvb2dsZU1hcCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBhY2Nlc3MgR29vZ2xlIE1hcCBpbmZvcm1hdGlvbiBiZWZvcmUgdGhlIEFQSSBoYXMgYmVlbiBpbml0aWFsaXplZC4gJyArXG4gICAgICAgICAgJ1BsZWFzZSB3YWl0IGZvciB0aGUgQVBJIHRvIGxvYWQgYmVmb3JlIHRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGl0LicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudHJhZmZpY0xheWVyKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAnQ2Fubm90IGludGVyYWN0IHdpdGggYSBHb29nbGUgTWFwIFRyYWZmaWMgTGF5ZXIgYmVmb3JlIGl0IGhhcyBiZWVuIGluaXRpYWxpemVkLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHdhaXQgZm9yIHRoZSBUcmFmZmljIExheWVyIHRvIGxvYWQgYmVmb3JlIHRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGl0LicpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,43 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
9
- /// <reference types="googlemaps" />
10
- import { Directive } from '@angular/core';
11
- import { MapBaseLayer } from '../map-base-layer';
12
- /**
13
- * Angular component that renders a Google Maps Transit Layer via the Google Maps JavaScript API.
14
- *
15
- * See developers.google.com/maps/documentation/javascript/reference/map#TransitLayer
16
- */
17
- export class MapTransitLayer extends MapBaseLayer {
18
- _initializeObject() {
19
- this.transitLayer = new google.maps.TransitLayer();
20
- }
21
- _setMap() {
22
- this._assertLayerInitialized();
23
- this.transitLayer.setMap(this._map.googleMap);
24
- }
25
- _unsetMap() {
26
- if (this.transitLayer) {
27
- this.transitLayer.setMap(null);
28
- }
29
- }
30
- _assertLayerInitialized() {
31
- if (!this.transitLayer) {
32
- throw Error('Cannot interact with a Google Map Transit Layer before it has been initialized. ' +
33
- 'Please wait for the Transit Layer to load before trying to interact with it.');
34
- }
35
- }
36
- }
37
- MapTransitLayer.decorators = [
38
- { type: Directive, args: [{
39
- selector: 'map-transit-layer',
40
- exportAs: 'mapTransitLayer',
41
- },] }
42
- ];
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXRyYW5zaXQtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ29vZ2xlLW1hcHMvbWFwLXRyYW5zaXQtbGF5ZXIvbWFwLXRyYW5zaXQtbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgseUVBQXlFO0FBQ3pFLG9DQUFvQztBQUVwQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQzs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQVE1QixpQkFBaUI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVrQixPQUFPO1FBQ3hCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVrQixTQUFTO1FBQzFCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsTUFBTSxLQUFLLENBQ1Asa0ZBQWtGO2dCQUNsRiw4RUFBOEUsQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUsaUJBQWlCO2FBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIFdvcmthcm91bmQgZm9yOiBodHRwczovL2dpdGh1Yi5jb20vYmF6ZWxidWlsZC9ydWxlc19ub2RlanMvaXNzdWVzLzEyNjVcbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiZ29vZ2xlbWFwc1wiIC8+XG5cbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNYXBCYXNlTGF5ZXJ9IGZyb20gJy4uL21hcC1iYXNlLWxheWVyJztcblxuLyoqXG4gKiBBbmd1bGFyIGNvbXBvbmVudCB0aGF0IHJlbmRlcnMgYSBHb29nbGUgTWFwcyBUcmFuc2l0IExheWVyIHZpYSB0aGUgR29vZ2xlIE1hcHMgSmF2YVNjcmlwdCBBUEkuXG4gKlxuICogU2VlIGRldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvbWFwI1RyYW5zaXRMYXllclxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdtYXAtdHJhbnNpdC1sYXllcicsXG4gIGV4cG9ydEFzOiAnbWFwVHJhbnNpdExheWVyJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVHJhbnNpdExheWVyIGV4dGVuZHMgTWFwQmFzZUxheWVyIHtcbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIGdvb2dsZS5tYXBzLlRyYW5zaXRMYXllciBvYmplY3QuXG4gICAqXG4gICAqIFNlZSBkZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL21hcCNUcmFuc2l0TGF5ZXJcbiAgICovXG4gIHRyYW5zaXRMYXllcj86IGdvb2dsZS5tYXBzLlRyYW5zaXRMYXllcjtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2luaXRpYWxpemVPYmplY3QoKSB7XG4gICAgdGhpcy50cmFuc2l0TGF5ZXIgPSBuZXcgZ29vZ2xlLm1hcHMuVHJhbnNpdExheWVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3NldE1hcCgpIHtcbiAgICB0aGlzLl9hc3NlcnRMYXllckluaXRpYWxpemVkKCk7XG4gICAgdGhpcy50cmFuc2l0TGF5ZXIuc2V0TWFwKHRoaXMuX21hcC5nb29nbGVNYXAhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfdW5zZXRNYXAoKSB7XG4gICAgaWYgKHRoaXMudHJhbnNpdExheWVyKSB7XG4gICAgICB0aGlzLnRyYW5zaXRMYXllci5zZXRNYXAobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXNzZXJ0TGF5ZXJJbml0aWFsaXplZCgpOiBhc3NlcnRzIHRoaXMgaXMge3RyYW5zaXRMYXllcjogZ29vZ2xlLm1hcHMuVHJhbnNpdExheWVyfSB7XG4gICAgaWYgKCF0aGlzLnRyYW5zaXRMYXllcikge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBpbnRlcmFjdCB3aXRoIGEgR29vZ2xlIE1hcCBUcmFuc2l0IExheWVyIGJlZm9yZSBpdCBoYXMgYmVlbiBpbml0aWFsaXplZC4gJyArXG4gICAgICAgICAgJ1BsZWFzZSB3YWl0IGZvciB0aGUgVHJhbnNpdCBMYXllciB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==