{"version":3,"file":"default-node_modules_angular_google-maps_fesm2022_google-maps_mjs.js","mappings":"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","sources":["./node_modules/@angular/google-maps/fesm2022/google-maps.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { inject, ElementRef, NgZone, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, Directive, InjectionToken, ContentChildren, NgModule, Injectable } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, Observable, Subject, combineLatest, Subscription } from 'rxjs';\nimport { switchMap, take, map, takeUntil } from 'rxjs/operators';\n\n/** Manages event on a Google Maps object, ensuring that events are added only when necessary. */\nclass MapEventManager {\n _ngZone;\n /** Pending listeners that were added before the target was set. */\n _pending = [];\n _listeners = [];\n _targetStream = new BehaviorSubject(undefined);\n /** Clears all currently-registered event listeners. */\n _clearListeners() {\n for (const listener of this._listeners) {\n listener.remove();\n }\n this._listeners = [];\n }\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n }\n /** Gets an observable that adds an event listener to the map when a consumer subscribes to it. */\n getLazyEmitter(name) {\n return this._targetStream.pipe(switchMap(target => {\n const observable = new Observable(observer => {\n // If the target hasn't been initialized yet, cache the observer so it can be added later.\n if (!target) {\n this._pending.push({ observable, observer });\n return undefined;\n }\n const listener = target.addListener(name, (event) => {\n this._ngZone.run(() => observer.next(event));\n });\n // If there's an error when initializing the Maps API (e.g. a wrong API key), it will\n // return a dummy object that returns `undefined` from `addListener` (see #26514).\n if (!listener) {\n observer.complete();\n return undefined;\n }\n this._listeners.push(listener);\n return () => listener.remove();\n });\n return observable;\n }));\n }\n /** Sets the current target that the manager should bind events to. */\n setTarget(target) {\n const currentTarget = this._targetStream.value;\n if (target === currentTarget) {\n return;\n }\n // Clear the listeners from the pre-existing target.\n if (currentTarget) {\n this._clearListeners();\n this._pending = [];\n }\n this._targetStream.next(target);\n // Add the listeners that were bound before the map was initialized.\n this._pending.forEach(subscriber => subscriber.observable.subscribe(subscriber.observer));\n this._pending = [];\n }\n /** Destroys the manager and clears the event listeners. */\n destroy() {\n this._clearListeners();\n this._pending = [];\n this._targetStream.complete();\n }\n}\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/** default options set to the Googleplex */\nconst DEFAULT_OPTIONS = {\n center: { lat: 37.421995, lng: -122.084092 },\n zoom: 17,\n // Note: the type conversion here isn't necessary for our CI, but it resolves a g3 failure.\n mapTypeId: 'roadmap',\n};\n/** Arbitrary default height for the map element */\nconst DEFAULT_HEIGHT = '500px';\n/** Arbitrary default width for the map element */\nconst DEFAULT_WIDTH = '500px';\n/**\n * Angular component that renders a Google Map via the Google Maps JavaScript\n * API.\n * @see https://developers.google.com/maps/documentation/javascript/reference/\n */\nclass GoogleMap {\n _elementRef = inject(ElementRef);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _mapEl;\n _existingAuthFailureCallback;\n /**\n * The underlying google.maps.Map object\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#Map\n */\n googleMap;\n /** Whether we're currently rendering inside a browser. */\n _isBrowser;\n /** Height of the map. Set this to `null` if you'd like to control the height through CSS. */\n height = DEFAULT_HEIGHT;\n /** Width of the map. Set this to `null` if you'd like to control the width through CSS. */\n width = DEFAULT_WIDTH;\n /**\n * The Map ID of the map. This parameter cannot be set or changed after a map is instantiated.\n * See: https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions.mapId\n */\n mapId;\n /**\n * Type of map that should be rendered. E.g. hybrid map, terrain map etc.\n * See: https://developers.google.com/maps/documentation/javascript/reference/map#MapTypeId\n */\n mapTypeId;\n set center(center) {\n this._center = center;\n }\n _center;\n set zoom(zoom) {\n this._zoom = zoom;\n }\n _zoom;\n set options(options) {\n this._options = options || DEFAULT_OPTIONS;\n }\n _options = DEFAULT_OPTIONS;\n /** Event emitted when the map is initialized. */\n mapInitialized = new EventEmitter();\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/events#auth-errors\n */\n authFailure = new EventEmitter();\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.bounds_changed\n */\n boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.center_changed\n */\n centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.click\n */\n mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dblclick\n */\n mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.drag\n */\n mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragend\n */\n mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragstart\n */\n mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.heading_changed\n */\n headingChanged = this._eventManager.getLazyEmitter('heading_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.idle\n */\n idle = this._eventManager.getLazyEmitter('idle');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.maptypeid_changed\n */\n maptypeidChanged = this._eventManager.getLazyEmitter('maptypeid_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mousemove\n */\n mapMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseout\n */\n mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseover\n */\n mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/map#Map.projection_changed\n */\n projectionChanged = this._eventManager.getLazyEmitter('projection_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.rightclick\n */\n mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilesloaded\n */\n tilesloaded = this._eventManager.getLazyEmitter('tilesloaded');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilt_changed\n */\n tiltChanged = this._eventManager.getLazyEmitter('tilt_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.zoom_changed\n */\n zoomChanged = this._eventManager.getLazyEmitter('zoom_changed');\n constructor() {\n const platformId = inject(PLATFORM_ID);\n this._isBrowser = isPlatformBrowser(platformId);\n if (this._isBrowser) {\n const googleMapsWindow = window;\n if (!googleMapsWindow.google && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Namespace google not found, cannot construct embedded google ' +\n 'map. Please install the Google Maps JavaScript API: ' +\n 'https://developers.google.com/maps/documentation/javascript/' +\n 'tutorial#Loading_the_Maps_API');\n }\n this._existingAuthFailureCallback = googleMapsWindow.gm_authFailure;\n googleMapsWindow.gm_authFailure = () => {\n if (this._existingAuthFailureCallback) {\n this._existingAuthFailureCallback();\n }\n this.authFailure.emit();\n };\n }\n }\n ngOnChanges(changes) {\n if (changes['height'] || changes['width']) {\n this._setSize();\n }\n const googleMap = this.googleMap;\n if (googleMap) {\n if (changes['options']) {\n googleMap.setOptions(this._combineOptions());\n }\n if (changes['center'] && this._center) {\n googleMap.setCenter(this._center);\n }\n // Note that the zoom can be zero.\n if (changes['zoom'] && this._zoom != null) {\n googleMap.setZoom(this._zoom);\n }\n if (changes['mapTypeId'] && this.mapTypeId) {\n googleMap.setMapTypeId(this.mapTypeId);\n }\n }\n }\n ngOnInit() {\n // It should be a noop during server-side rendering.\n if (this._isBrowser) {\n this._mapEl = this._elementRef.nativeElement.querySelector('.map-container');\n this._setSize();\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n if (google.maps.Map) {\n this._initialize(google.maps.Map);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n google.maps\n .importLibrary('maps')\n .then(lib => this._initialize(lib.Map));\n });\n }\n }\n }\n _initialize(mapConstructor) {\n this._ngZone.runOutsideAngular(() => {\n this.googleMap = new mapConstructor(this._mapEl, this._combineOptions());\n this._eventManager.setTarget(this.googleMap);\n this.mapInitialized.emit(this.googleMap);\n });\n }\n ngOnDestroy() {\n this.mapInitialized.complete();\n this._eventManager.destroy();\n if (this._isBrowser) {\n const googleMapsWindow = window;\n googleMapsWindow.gm_authFailure = this._existingAuthFailureCallback;\n }\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.fitBounds\n */\n fitBounds(bounds, padding) {\n this._assertInitialized();\n this.googleMap.fitBounds(bounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panBy\n */\n panBy(x, y) {\n this._assertInitialized();\n this.googleMap.panBy(x, y);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panTo\n */\n panTo(latLng) {\n this._assertInitialized();\n this.googleMap.panTo(latLng);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panToBounds\n */\n panToBounds(latLngBounds, padding) {\n this._assertInitialized();\n this.googleMap.panToBounds(latLngBounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.googleMap.getBounds() || null;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.googleMap.getCenter();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getClickableIcons\n */\n getClickableIcons() {\n this._assertInitialized();\n return this.googleMap.getClickableIcons();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getHeading\n */\n getHeading() {\n this._assertInitialized();\n return this.googleMap.getHeading();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getMapTypeId\n */\n getMapTypeId() {\n this._assertInitialized();\n return this.googleMap.getMapTypeId();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getProjection\n */\n getProjection() {\n this._assertInitialized();\n return this.googleMap.getProjection() || null;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getStreetView\n */\n getStreetView() {\n this._assertInitialized();\n return this.googleMap.getStreetView();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getTilt\n */\n getTilt() {\n this._assertInitialized();\n return this.googleMap.getTilt();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getZoom\n */\n getZoom() {\n this._assertInitialized();\n return this.googleMap.getZoom();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.controls\n */\n get controls() {\n this._assertInitialized();\n return this.googleMap.controls;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.data\n */\n get data() {\n this._assertInitialized();\n return this.googleMap.data;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mapTypes\n */\n get mapTypes() {\n this._assertInitialized();\n return this.googleMap.mapTypes;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.overlayMapTypes\n */\n get overlayMapTypes() {\n this._assertInitialized();\n return this.googleMap.overlayMapTypes;\n }\n /** Returns a promise that resolves when the map has been initialized. */\n _resolveMap() {\n return this.googleMap\n ? Promise.resolve(this.googleMap)\n : this.mapInitialized.pipe(take(1)).toPromise();\n }\n _setSize() {\n if (this._mapEl) {\n const styles = this._mapEl.style;\n styles.height =\n this.height === null ? '' : coerceCssPixelValue(this.height) || DEFAULT_HEIGHT;\n styles.width = this.width === null ? '' : coerceCssPixelValue(this.width) || DEFAULT_WIDTH;\n }\n }\n /** Combines the center and zoom and the other map options into a single object */\n _combineOptions() {\n const options = this._options || {};\n return {\n ...options,\n // It's important that we set **some** kind of `center` and `zoom`, otherwise\n // Google Maps will render a blank rectangle which looks broken.\n center: this._center || options.center || DEFAULT_OPTIONS.center,\n zoom: this._zoom ?? options.zoom ?? DEFAULT_OPTIONS.zoom,\n // Passing in an undefined `mapTypeId` seems to break tile loading\n // so make sure that we have some kind of default (see #22082).\n mapTypeId: this.mapTypeId || options.mapTypeId || DEFAULT_OPTIONS.mapTypeId,\n mapId: this.mapId || options.mapId,\n };\n }\n /** Asserts that the map has been initialized. */\n _assertInitialized() {\n if (!this.googleMap && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMap, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"19.0.0\", type: GoogleMap, isStandalone: true, selector: \"google-map\", inputs: { height: \"height\", width: \"width\", mapId: \"mapId\", mapTypeId: \"mapTypeId\", center: \"center\", zoom: \"zoom\", options: \"options\" }, outputs: { mapInitialized: \"mapInitialized\", authFailure: \"authFailure\", boundsChanged: \"boundsChanged\", centerChanged: \"centerChanged\", mapClick: \"mapClick\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", mapDragstart: \"mapDragstart\", headingChanged: \"headingChanged\", idle: \"idle\", maptypeidChanged: \"maptypeidChanged\", mapMousemove: \"mapMousemove\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", projectionChanged: \"projectionChanged\", mapRightclick: \"mapRightclick\", tilesloaded: \"tilesloaded\", tiltChanged: \"tiltChanged\", zoomChanged: \"zoomChanged\" }, exportAs: [\"googleMap\"], usesOnChanges: true, ngImport: i0, template: '
', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMap, decorators: [{\n type: Component,\n args: [{\n selector: 'google-map',\n exportAs: 'googleMap',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '
',\n encapsulation: ViewEncapsulation.None,\n }]\n }], ctorParameters: () => [], propDecorators: { height: [{\n type: Input\n }], width: [{\n type: Input\n }], mapId: [{\n type: Input\n }], mapTypeId: [{\n type: Input\n }], center: [{\n type: Input\n }], zoom: [{\n type: Input\n }], options: [{\n type: Input\n }], mapInitialized: [{\n type: Output\n }], authFailure: [{\n type: Output\n }], boundsChanged: [{\n type: Output\n }], centerChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], headingChanged: [{\n type: Output\n }], idle: [{\n type: Output\n }], maptypeidChanged: [{\n type: Output\n }], mapMousemove: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], projectionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], tilesloaded: [{\n type: Output\n }], tiltChanged: [{\n type: Output\n }], zoomChanged: [{\n type: Output\n }] } });\nconst cssUnitsPattern = /([A-Za-z%]+)$/;\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return cssUnitsPattern.test(value) ? value : `${value}px`;\n}\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\nclass MapBaseLayer {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._ngZone.runOutsideAngular(() => {\n this._initializeObject();\n });\n this._assertInitialized();\n this._setMap();\n }\n }\n ngOnDestroy() {\n this._unsetMap();\n }\n _assertInitialized() {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n _initializeObject() { }\n _setMap() { }\n _unsetMap() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapBaseLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapBaseLayer, isStandalone: true, selector: \"map-base-layer\", exportAs: [\"mapBaseLayer\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapBaseLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-base-layer',\n exportAs: 'mapBaseLayer',\n }]\n }], ctorParameters: () => [] });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Bicycling Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#BicyclingLayer\n */\nclass MapBicyclingLayer {\n _map = inject(GoogleMap);\n _zone = inject(NgZone);\n /**\n * The underlying google.maps.BicyclingLayer object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#BicyclingLayer\n */\n bicyclingLayer;\n /** Event emitted when the bicycling layer is initialized. */\n bicyclingLayerInitialized = new EventEmitter();\n ngOnInit() {\n if (this._map._isBrowser) {\n if (google.maps.BicyclingLayer && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.BicyclingLayer);\n }\n else {\n this._zone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.BicyclingLayer);\n });\n });\n }\n }\n }\n _initialize(map, layerConstructor) {\n this._zone.runOutsideAngular(() => {\n this.bicyclingLayer = new layerConstructor();\n this.bicyclingLayerInitialized.emit(this.bicyclingLayer);\n this._assertLayerInitialized();\n this.bicyclingLayer.setMap(map);\n });\n }\n ngOnDestroy() {\n this.bicyclingLayer?.setMap(null);\n }\n _assertLayerInitialized() {\n if (!this.bicyclingLayer) {\n throw Error('Cannot interact with a Google Map Bicycling Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapBicyclingLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapBicyclingLayer, isStandalone: true, selector: \"map-bicycling-layer\", outputs: { bicyclingLayerInitialized: \"bicyclingLayerInitialized\" }, exportAs: [\"mapBicyclingLayer\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapBicyclingLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-bicycling-layer',\n exportAs: 'mapBicyclingLayer',\n }]\n }], propDecorators: { bicyclingLayerInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Circle via the Google Maps JavaScript API.\n * @see developers.google.com/maps/documentation/javascript/reference/polygon#Circle\n */\nclass MapCircle {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _center = new BehaviorSubject(undefined);\n _radius = new BehaviorSubject(undefined);\n _destroyed = new Subject();\n /**\n * Underlying google.maps.Circle object.\n *\n * @see developers.google.com/maps/documentation/javascript/reference/polygon#Circle\n */\n circle; // initialized in ngOnInit\n set options(options) {\n this._options.next(options || {});\n }\n set center(center) {\n this._center.next(center);\n }\n set radius(radius) {\n this._radius.next(radius);\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.center_changed\n */\n centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.click\n */\n circleClick = this._eventManager.getLazyEmitter('click');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dblclick\n */\n circleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.drag\n */\n circleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragend\n */\n circleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragstart\n */\n circleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousedown\n */\n circleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousemove\n */\n circleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseout\n */\n circleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseover\n */\n circleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseup\n */\n circleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.radius_changed\n */\n radiusChanged = this._eventManager.getLazyEmitter('radius_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.rightclick\n */\n circleRightclick = this._eventManager.getLazyEmitter('rightclick');\n /** Event emitted when the circle is initialized. */\n circleInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (!this._map._isBrowser) {\n return;\n }\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.Circle && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.Circle, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.Circle, options);\n });\n });\n }\n });\n }\n _initialize(map, circleConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.circle = new circleConstructor(options);\n this._assertInitialized();\n this.circle.setMap(map);\n this._eventManager.setTarget(this.circle);\n this.circleInitialized.emit(this.circle);\n this._watchForOptionsChanges();\n this._watchForCenterChanges();\n this._watchForRadiusChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.circle?.setMap(null);\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.circle.getBounds();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.circle.getCenter();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.circle.getDraggable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.circle.getEditable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getRadius\n */\n getRadius() {\n this._assertInitialized();\n return this.circle.getRadius();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.circle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._center, this._radius]).pipe(map(([options, center, radius]) => {\n const combinedOptions = {\n ...options,\n center: center || options.center,\n radius: radius !== undefined ? radius : options.radius,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.circle.setOptions(options);\n });\n }\n _watchForCenterChanges() {\n this._center.pipe(takeUntil(this._destroyed)).subscribe(center => {\n if (center) {\n this._assertInitialized();\n this.circle.setCenter(center);\n }\n });\n }\n _watchForRadiusChanges() {\n this._radius.pipe(takeUntil(this._destroyed)).subscribe(radius => {\n if (radius !== undefined) {\n this._assertInitialized();\n this.circle.setRadius(radius);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.circle) {\n throw Error('Cannot interact with a Google Map Circle before it has been ' +\n 'initialized. Please wait for the Circle to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapCircle, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapCircle, isStandalone: true, selector: \"map-circle\", inputs: { options: \"options\", center: \"center\", radius: \"radius\" }, outputs: { centerChanged: \"centerChanged\", circleClick: \"circleClick\", circleDblclick: \"circleDblclick\", circleDrag: \"circleDrag\", circleDragend: \"circleDragend\", circleDragstart: \"circleDragstart\", circleMousedown: \"circleMousedown\", circleMousemove: \"circleMousemove\", circleMouseout: \"circleMouseout\", circleMouseover: \"circleMouseover\", circleMouseup: \"circleMouseup\", radiusChanged: \"radiusChanged\", circleRightclick: \"circleRightclick\", circleInitialized: \"circleInitialized\" }, exportAs: [\"mapCircle\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapCircle, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-circle',\n exportAs: 'mapCircle',\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], center: [{\n type: Input\n }], radius: [{\n type: Input\n }], centerChanged: [{\n type: Output\n }], circleClick: [{\n type: Output\n }], circleDblclick: [{\n type: Output\n }], circleDrag: [{\n type: Output\n }], circleDragend: [{\n type: Output\n }], circleDragstart: [{\n type: Output\n }], circleMousedown: [{\n type: Output\n }], circleMousemove: [{\n type: Output\n }], circleMouseout: [{\n type: Output\n }], circleMouseover: [{\n type: Output\n }], circleMouseup: [{\n type: Output\n }], radiusChanged: [{\n type: Output\n }], circleRightclick: [{\n type: Output\n }], circleInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Directions Renderer via the Google Maps\n * JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/directions#DirectionsRenderer\n */\nclass MapDirectionsRenderer {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRendererOptions.directions\n */\n set directions(directions) {\n this._directions = directions;\n }\n _directions;\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRendererOptions\n */\n set options(options) {\n this._options = options;\n }\n _options;\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.directions_changed\n */\n directionsChanged = this._eventManager.getLazyEmitter('directions_changed');\n /** Event emitted when the directions renderer is initialized. */\n directionsRendererInitialized = new EventEmitter();\n /** The underlying google.maps.DirectionsRenderer object. */\n directionsRenderer;\n constructor() { }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n if (google.maps.DirectionsRenderer && this._googleMap.googleMap) {\n this._initialize(this._googleMap.googleMap, google.maps.DirectionsRenderer);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._googleMap._resolveMap(), google.maps.importLibrary('routes')]).then(([map, lib]) => {\n this._initialize(map, lib.DirectionsRenderer);\n });\n });\n }\n }\n }\n _initialize(map, rendererConstructor) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.directionsRenderer = new rendererConstructor(this._combineOptions());\n this._assertInitialized();\n this.directionsRenderer.setMap(map);\n this._eventManager.setTarget(this.directionsRenderer);\n this.directionsRendererInitialized.emit(this.directionsRenderer);\n });\n }\n ngOnChanges(changes) {\n if (this.directionsRenderer) {\n if (changes['options']) {\n this.directionsRenderer.setOptions(this._combineOptions());\n }\n if (changes['directions'] && this._directions !== undefined) {\n this.directionsRenderer.setDirections(this._directions);\n }\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this.directionsRenderer?.setMap(null);\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getDirections\n */\n getDirections() {\n this._assertInitialized();\n return this.directionsRenderer.getDirections();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getPanel\n */\n getPanel() {\n this._assertInitialized();\n return this.directionsRenderer.getPanel();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getRouteIndex\n */\n getRouteIndex() {\n this._assertInitialized();\n return this.directionsRenderer.getRouteIndex();\n }\n _combineOptions() {\n const options = this._options || {};\n return {\n ...options,\n directions: this._directions || options.directions,\n map: this._googleMap.googleMap,\n };\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.directionsRenderer) {\n throw Error('Cannot interact with a Google Map Directions Renderer before it has been ' +\n 'initialized. Please wait for the Directions Renderer to load before trying ' +\n 'to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapDirectionsRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapDirectionsRenderer, isStandalone: true, selector: \"map-directions-renderer\", inputs: { directions: \"directions\", options: \"options\" }, outputs: { directionsChanged: \"directionsChanged\", directionsRendererInitialized: \"directionsRendererInitialized\" }, exportAs: [\"mapDirectionsRenderer\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapDirectionsRenderer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-directions-renderer',\n exportAs: 'mapDirectionsRenderer',\n }]\n }], ctorParameters: () => [], propDecorators: { directions: [{\n type: Input\n }], options: [{\n type: Input\n }], directionsChanged: [{\n type: Output\n }], directionsRendererInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Ground Overlay via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay\n */\nclass MapGroundOverlay {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _opacity = new BehaviorSubject(1);\n _url = new BehaviorSubject('');\n _bounds = new BehaviorSubject(undefined);\n _destroyed = new Subject();\n _hasWatchers;\n /**\n * The underlying google.maps.GroundOverlay object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay\n */\n groundOverlay;\n /** URL of the image that will be shown in the overlay. */\n set url(url) {\n this._url.next(url);\n }\n /** Bounds for the overlay. */\n get bounds() {\n return this._bounds.value;\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n /** Whether the overlay is clickable */\n clickable = false;\n /** Opacity of the overlay. */\n set opacity(opacity) {\n this._opacity.next(opacity);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay.click\n */\n mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.dblclick\n */\n mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /** Event emitted when the ground overlay is initialized. */\n groundOverlayInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n // The ground overlay setup is slightly different from the other Google Maps objects in that\n // we have to recreate the `GroundOverlay` object whenever the bounds change, because\n // Google Maps doesn't provide an API to update the bounds of an existing overlay.\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (this.groundOverlay) {\n this.groundOverlay.setMap(null);\n this.groundOverlay = undefined;\n }\n if (!bounds) {\n return;\n }\n if (google.maps.GroundOverlay && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.GroundOverlay, bounds);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.GroundOverlay, bounds);\n });\n });\n }\n });\n }\n }\n _initialize(map, overlayConstructor, bounds) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.groundOverlay = new overlayConstructor(this._url.getValue(), bounds, {\n clickable: this.clickable,\n opacity: this._opacity.value,\n });\n this._assertInitialized();\n this.groundOverlay.setMap(map);\n this._eventManager.setTarget(this.groundOverlay);\n this.groundOverlayInitialized.emit(this.groundOverlay);\n // We only need to set up the watchers once.\n if (!this._hasWatchers) {\n this._hasWatchers = true;\n this._watchForOpacityChanges();\n this._watchForUrlChanges();\n }\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.groundOverlay?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.groundOverlay.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.groundOverlay.getOpacity();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.groundOverlay.getUrl();\n }\n _watchForOpacityChanges() {\n this._opacity.pipe(takeUntil(this._destroyed)).subscribe(opacity => {\n if (opacity != null) {\n this.groundOverlay?.setOpacity(opacity);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n const overlay = this.groundOverlay;\n if (overlay) {\n overlay.set('url', url);\n // Google Maps only redraws the overlay if we re-set the map.\n overlay.setMap(null);\n overlay.setMap(this._map.googleMap);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.groundOverlay) {\n throw Error('Cannot interact with a Google Map GroundOverlay before it has been initialized. ' +\n 'Please wait for the GroundOverlay to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapGroundOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapGroundOverlay, isStandalone: true, selector: \"map-ground-overlay\", inputs: { url: \"url\", bounds: \"bounds\", clickable: \"clickable\", opacity: \"opacity\" }, outputs: { mapClick: \"mapClick\", mapDblclick: \"mapDblclick\", groundOverlayInitialized: \"groundOverlayInitialized\" }, exportAs: [\"mapGroundOverlay\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapGroundOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-ground-overlay',\n exportAs: 'mapGroundOverlay',\n }]\n }], ctorParameters: () => [], propDecorators: { url: [{\n type: Input\n }], bounds: [{\n type: Input\n }], clickable: [{\n type: Input\n }], opacity: [{\n type: Input\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], groundOverlayInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps info window via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/info-window\n */\nclass MapInfoWindow {\n _googleMap = inject(GoogleMap);\n _elementRef = inject(ElementRef);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _position = new BehaviorSubject(undefined);\n _destroy = new Subject();\n /**\n * Underlying google.maps.InfoWindow\n *\n * See developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow\n */\n infoWindow;\n set options(options) {\n this._options.next(options || {});\n }\n set position(position) {\n this._position.next(position);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.closeclick\n */\n closeclick = this._eventManager.getLazyEmitter('closeclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.content_changed\n */\n contentChanged = this._eventManager.getLazyEmitter('content_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.domready\n */\n domready = this._eventManager.getLazyEmitter('domready');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.position_changed\n */\n positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.zindex_changed\n */\n zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n /** Event emitted when the info window is initialized. */\n infoWindowInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.InfoWindow) {\n this._initialize(google.maps.InfoWindow, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n google.maps.importLibrary('maps').then(lib => {\n this._initialize(lib.InfoWindow, options);\n });\n });\n }\n });\n }\n }\n _initialize(infoWindowConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.infoWindow = new infoWindowConstructor(options);\n this._eventManager.setTarget(this.infoWindow);\n this.infoWindowInitialized.emit(this.infoWindow);\n this._watchForOptionsChanges();\n this._watchForPositionChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroy.next();\n this._destroy.complete();\n // If no info window has been created on the server, we do not try closing it.\n // On the server, an info window cannot be created and this would cause errors.\n if (this.infoWindow) {\n this.close();\n }\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.close\n */\n close() {\n this._assertInitialized();\n this.infoWindow.close();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getContent\n */\n getContent() {\n this._assertInitialized();\n return this.infoWindow.getContent() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.infoWindow.getPosition() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.infoWindow.getZIndex();\n }\n /**\n * Opens the MapInfoWindow using the provided AdvancedMarkerElement.\n * @deprecated Use the `open` method instead.\n * @breaking-change 20.0.0\n */\n openAdvancedMarkerElement(advancedMarkerElement, content) {\n this.open({\n getAnchor: () => advancedMarkerElement,\n }, undefined, content);\n }\n /**\n * Opens the MapInfoWindow using the provided anchor. If the anchor is not set,\n * then the position property of the options input is used instead.\n */\n open(anchor, shouldFocus, content) {\n this._assertInitialized();\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && anchor && !anchor.getAnchor) {\n throw new Error('Specified anchor does not implement the `getAnchor` method. ' +\n 'It cannot be used to open an info window.');\n }\n const anchorObject = anchor ? anchor.getAnchor() : undefined;\n // Prevent the info window from initializing when trying to reopen on the same anchor.\n // Note that when the window is opened for the first time, the anchor will always be\n // undefined. If that's the case, we have to allow it to open in order to handle the\n // case where the window doesn't have an anchor, but is placed at a particular position.\n if (this.infoWindow.get('anchor') !== anchorObject || !anchorObject) {\n this._elementRef.nativeElement.style.display = '';\n if (content) {\n this.infoWindow.setContent(content);\n }\n this.infoWindow.open({\n map: this._googleMap.googleMap,\n anchor: anchorObject,\n shouldFocus,\n });\n }\n }\n _combineOptions() {\n return combineLatest([this._options, this._position]).pipe(map(([options, position]) => {\n const combinedOptions = {\n ...options,\n position: position || options.position,\n content: this._elementRef.nativeElement,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroy)).subscribe(options => {\n this._assertInitialized();\n this.infoWindow.setOptions(options);\n });\n }\n _watchForPositionChanges() {\n this._position.pipe(takeUntil(this._destroy)).subscribe(position => {\n if (position) {\n this._assertInitialized();\n this.infoWindow.setPosition(position);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.infoWindow) {\n throw Error('Cannot interact with a Google Map Info Window before it has been ' +\n 'initialized. Please wait for the Info Window to load before trying to interact with ' +\n 'it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapInfoWindow, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapInfoWindow, isStandalone: true, selector: \"map-info-window\", inputs: { options: \"options\", position: \"position\" }, outputs: { closeclick: \"closeclick\", contentChanged: \"contentChanged\", domready: \"domready\", positionChanged: \"positionChanged\", zindexChanged: \"zindexChanged\", infoWindowInitialized: \"infoWindowInitialized\" }, host: { styleAttribute: \"display: none\" }, exportAs: [\"mapInfoWindow\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapInfoWindow, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-info-window',\n exportAs: 'mapInfoWindow',\n host: { 'style': 'display: none' },\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], position: [{\n type: Input\n }], closeclick: [{\n type: Output\n }], contentChanged: [{\n type: Output\n }], domready: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], infoWindowInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps KML Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer\n */\nclass MapKmlLayer {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _url = new BehaviorSubject('');\n _destroyed = new Subject();\n /**\n * The underlying google.maps.KmlLayer object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer\n */\n kmlLayer;\n set options(options) {\n this._options.next(options || {});\n }\n set url(url) {\n this._url.next(url);\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.click\n */\n kmlClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml\n * #KmlLayer.defaultviewport_changed\n */\n defaultviewportChanged = this._eventManager.getLazyEmitter('defaultviewport_changed');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.status_changed\n */\n statusChanged = this._eventManager.getLazyEmitter('status_changed');\n /** Event emitted when the KML layer is initialized. */\n kmlLayerInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.KmlLayer && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.KmlLayer, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.KmlLayer, options);\n });\n });\n }\n });\n }\n }\n _initialize(map, layerConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.kmlLayer = new layerConstructor(options);\n this._assertInitialized();\n this.kmlLayer.setMap(map);\n this._eventManager.setTarget(this.kmlLayer);\n this.kmlLayerInitialized.emit(this.kmlLayer);\n this._watchForOptionsChanges();\n this._watchForUrlChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.kmlLayer?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getDefaultViewport\n */\n getDefaultViewport() {\n this._assertInitialized();\n return this.kmlLayer.getDefaultViewport();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getMetadata\n */\n getMetadata() {\n this._assertInitialized();\n return this.kmlLayer.getMetadata();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getStatus\n */\n getStatus() {\n this._assertInitialized();\n return this.kmlLayer.getStatus();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.kmlLayer.getUrl();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.kmlLayer.getZIndex();\n }\n _combineOptions() {\n return combineLatest([this._options, this._url]).pipe(map(([options, url]) => {\n const combinedOptions = {\n ...options,\n url: url || options.url,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n if (this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setOptions(options);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n if (url && this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setUrl(url);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.kmlLayer) {\n throw Error('Cannot interact with a Google Map KmlLayer before it has been ' +\n 'initialized. Please wait for the KmlLayer to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapKmlLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapKmlLayer, isStandalone: true, selector: \"map-kml-layer\", inputs: { options: \"options\", url: \"url\" }, outputs: { kmlClick: \"kmlClick\", defaultviewportChanged: \"defaultviewportChanged\", statusChanged: \"statusChanged\", kmlLayerInitialized: \"kmlLayerInitialized\" }, exportAs: [\"mapKmlLayer\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapKmlLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-kml-layer',\n exportAs: 'mapKmlLayer',\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], url: [{\n type: Input\n }], kmlClick: [{\n type: Output\n }], defaultviewportChanged: [{\n type: Output\n }], statusChanged: [{\n type: Output\n }], kmlLayerInitialized: [{\n type: Output\n }] } });\n\n/** Token that marker directives can use to expose themselves to the clusterer. */\nconst MAP_MARKER = new InjectionToken('MAP_MARKER');\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Default options for the Google Maps marker component. Displays a marker\n * at the Googleplex.\n */\nconst DEFAULT_MARKER_OPTIONS$1 = {\n position: { lat: 37.421995, lng: -122.084092 },\n};\n/**\n * Angular component that renders a Google Maps marker via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/marker\n */\nclass MapMarker {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n /**\n * Title of the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.title\n */\n set title(title) {\n this._title = title;\n }\n _title;\n /**\n * Position of the marker. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.position\n */\n set position(position) {\n this._position = position;\n }\n _position;\n /**\n * Label for the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.label\n */\n set label(label) {\n this._label = label;\n }\n _label;\n /**\n * Whether the marker is clickable. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.clickable\n */\n set clickable(clickable) {\n this._clickable = clickable;\n }\n _clickable;\n /**\n * Options used to configure the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions\n */\n set options(options) {\n this._options = options;\n }\n _options;\n /**\n * Icon to be used for the marker.\n * See: https://developers.google.com/maps/documentation/javascript/reference/marker#Icon\n */\n set icon(icon) {\n this._icon = icon;\n }\n _icon;\n /**\n * Whether the marker is visible.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.visible\n */\n set visible(value) {\n this._visible = value;\n }\n _visible;\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.animation_changed\n */\n animationChanged = this._eventManager.getLazyEmitter('animation_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.click\n */\n mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.clickable_changed\n */\n clickableChanged = this._eventManager.getLazyEmitter('clickable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.cursor_changed\n */\n cursorChanged = this._eventManager.getLazyEmitter('cursor_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dblclick\n */\n mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.drag\n */\n mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragend\n */\n mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.draggable_changed\n */\n draggableChanged = this._eventManager.getLazyEmitter('draggable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragstart\n */\n mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.flat_changed\n */\n flatChanged = this._eventManager.getLazyEmitter('flat_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.icon_changed\n */\n iconChanged = this._eventManager.getLazyEmitter('icon_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mousedown\n */\n mapMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseout\n */\n mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseover\n */\n mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseup\n */\n mapMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.position_changed\n */\n positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.rightclick\n */\n mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.shape_changed\n */\n shapeChanged = this._eventManager.getLazyEmitter('shape_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.title_changed\n */\n titleChanged = this._eventManager.getLazyEmitter('title_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.visible_changed\n */\n visibleChanged = this._eventManager.getLazyEmitter('visible_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.zindex_changed\n */\n zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n /** Event emitted when the marker is initialized. */\n markerInitialized = new EventEmitter();\n /**\n * The underlying google.maps.Marker object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/marker#Marker\n */\n marker;\n constructor() { }\n ngOnInit() {\n if (!this._googleMap._isBrowser) {\n return;\n }\n if (google.maps.Marker && this._googleMap.googleMap) {\n this._initialize(this._googleMap.googleMap, google.maps.Marker);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._googleMap._resolveMap(), google.maps.importLibrary('marker')]).then(([map, lib]) => {\n this._initialize(map, lib.Marker);\n });\n });\n }\n }\n _initialize(map, markerConstructor) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.marker = new markerConstructor(this._combineOptions());\n this._assertInitialized();\n this.marker.setMap(map);\n this._eventManager.setTarget(this.marker);\n this.markerInitialized.next(this.marker);\n });\n }\n ngOnChanges(changes) {\n const { marker, _title, _position, _label, _clickable, _icon, _visible } = this;\n if (marker) {\n if (changes['options']) {\n marker.setOptions(this._combineOptions());\n }\n if (changes['title'] && _title !== undefined) {\n marker.setTitle(_title);\n }\n if (changes['position'] && _position) {\n marker.setPosition(_position);\n }\n if (changes['label'] && _label !== undefined) {\n marker.setLabel(_label);\n }\n if (changes['clickable'] && _clickable !== undefined) {\n marker.setClickable(_clickable);\n }\n if (changes['icon'] && _icon) {\n marker.setIcon(_icon);\n }\n if (changes['visible'] && _visible !== undefined) {\n marker.setVisible(_visible);\n }\n }\n }\n ngOnDestroy() {\n this.markerInitialized.complete();\n this._eventManager.destroy();\n this.marker?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getAnimation\n */\n getAnimation() {\n this._assertInitialized();\n return this.marker.getAnimation() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getClickable\n */\n getClickable() {\n this._assertInitialized();\n return this.marker.getClickable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getCursor\n */\n getCursor() {\n this._assertInitialized();\n return this.marker.getCursor() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return !!this.marker.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getIcon\n */\n getIcon() {\n this._assertInitialized();\n return this.marker.getIcon() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getLabel\n */\n getLabel() {\n this._assertInitialized();\n return this.marker.getLabel() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.marker.getOpacity() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.marker.getPosition() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getShape\n */\n getShape() {\n this._assertInitialized();\n return this.marker.getShape() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getTitle\n */\n getTitle() {\n this._assertInitialized();\n return this.marker.getTitle() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.marker.getVisible();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.marker.getZIndex() || null;\n }\n /** Gets the anchor point that can be used to attach other Google Maps objects. */\n getAnchor() {\n this._assertInitialized();\n return this.marker;\n }\n /** Returns a promise that resolves when the marker has been initialized. */\n _resolveMarker() {\n return this.marker\n ? Promise.resolve(this.marker)\n : this.markerInitialized.pipe(take(1)).toPromise();\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n const options = this._options || DEFAULT_MARKER_OPTIONS$1;\n return {\n ...options,\n title: this._title || options.title,\n position: this._position || options.position,\n label: this._label || options.label,\n clickable: this._clickable ?? options.clickable,\n map: this._googleMap.googleMap,\n icon: this._icon || options.icon,\n visible: this._visible ?? options.visible,\n };\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.marker) {\n throw Error('Cannot interact with a Google Map Marker before it has been ' +\n 'initialized. Please wait for the Marker to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapMarker, isStandalone: true, selector: \"map-marker\", inputs: { title: \"title\", position: \"position\", label: \"label\", clickable: \"clickable\", options: \"options\", icon: \"icon\", visible: \"visible\" }, outputs: { animationChanged: \"animationChanged\", mapClick: \"mapClick\", clickableChanged: \"clickableChanged\", cursorChanged: \"cursorChanged\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", draggableChanged: \"draggableChanged\", mapDragstart: \"mapDragstart\", flatChanged: \"flatChanged\", iconChanged: \"iconChanged\", mapMousedown: \"mapMousedown\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", mapMouseup: \"mapMouseup\", positionChanged: \"positionChanged\", mapRightclick: \"mapRightclick\", shapeChanged: \"shapeChanged\", titleChanged: \"titleChanged\", visibleChanged: \"visibleChanged\", zindexChanged: \"zindexChanged\", markerInitialized: \"markerInitialized\" }, providers: [\n {\n provide: MAP_MARKER,\n useExisting: MapMarker,\n },\n ], exportAs: [\"mapMarker\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapMarker, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-marker',\n exportAs: 'mapMarker',\n providers: [\n {\n provide: MAP_MARKER,\n useExisting: MapMarker,\n },\n ],\n }]\n }], ctorParameters: () => [], propDecorators: { title: [{\n type: Input\n }], position: [{\n type: Input\n }], label: [{\n type: Input\n }], clickable: [{\n type: Input\n }], options: [{\n type: Input\n }], icon: [{\n type: Input\n }], visible: [{\n type: Input\n }], animationChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], clickableChanged: [{\n type: Output\n }], cursorChanged: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], draggableChanged: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], flatChanged: [{\n type: Output\n }], iconChanged: [{\n type: Output\n }], mapMousedown: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], mapMouseup: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], shapeChanged: [{\n type: Output\n }], titleChanged: [{\n type: Output\n }], visibleChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], markerInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/** Default options for a clusterer. */\nconst DEFAULT_CLUSTERER_OPTIONS = {};\n/**\n * Angular component for implementing a Google Maps Marker Clusterer.\n * See https://developers.google.com/maps/documentation/javascript/marker-clustering\n *\n * @deprecated This component is using a deprecated clustering implementation. Use the\n * `map-marker-clusterer` component instead.\n * @breaking-change 21.0.0\n *\n */\nclass DeprecatedMapMarkerClusterer {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _currentMarkers = new Set();\n _eventManager = new MapEventManager(inject(NgZone));\n _destroy = new Subject();\n /** Whether the clusterer is allowed to be initialized. */\n _canInitialize = this._googleMap._isBrowser;\n ariaLabelFn = () => '';\n set averageCenter(averageCenter) {\n this._averageCenter = averageCenter;\n }\n _averageCenter;\n batchSize;\n set batchSizeIE(batchSizeIE) {\n this._batchSizeIE = batchSizeIE;\n }\n _batchSizeIE;\n set calculator(calculator) {\n this._calculator = calculator;\n }\n _calculator;\n set clusterClass(clusterClass) {\n this._clusterClass = clusterClass;\n }\n _clusterClass;\n set enableRetinaIcons(enableRetinaIcons) {\n this._enableRetinaIcons = enableRetinaIcons;\n }\n _enableRetinaIcons;\n set gridSize(gridSize) {\n this._gridSize = gridSize;\n }\n _gridSize;\n set ignoreHidden(ignoreHidden) {\n this._ignoreHidden = ignoreHidden;\n }\n _ignoreHidden;\n set imageExtension(imageExtension) {\n this._imageExtension = imageExtension;\n }\n _imageExtension;\n set imagePath(imagePath) {\n this._imagePath = imagePath;\n }\n _imagePath;\n set imageSizes(imageSizes) {\n this._imageSizes = imageSizes;\n }\n _imageSizes;\n set maxZoom(maxZoom) {\n this._maxZoom = maxZoom;\n }\n _maxZoom;\n set minimumClusterSize(minimumClusterSize) {\n this._minimumClusterSize = minimumClusterSize;\n }\n _minimumClusterSize;\n set styles(styles) {\n this._styles = styles;\n }\n _styles;\n set title(title) {\n this._title = title;\n }\n _title;\n set zIndex(zIndex) {\n this._zIndex = zIndex;\n }\n _zIndex;\n set zoomOnClick(zoomOnClick) {\n this._zoomOnClick = zoomOnClick;\n }\n _zoomOnClick;\n set options(options) {\n this._options = options;\n }\n _options;\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/\n * _google_markerclustererplus.html#clusteringbegin\n */\n clusteringbegin = this._eventManager.getLazyEmitter('clusteringbegin');\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/_google_markerclustererplus.html#clusteringend\n */\n clusteringend = this._eventManager.getLazyEmitter('clusteringend');\n /** Emits when a cluster has been clicked. */\n clusterClick = this._eventManager.getLazyEmitter('click');\n _markers;\n /**\n * The underlying MarkerClusterer object.\n *\n * See\n * googlemaps.github.io/v3-utility-library/classes/\n * _google_markerclustererplus.markerclusterer.html\n */\n markerClusterer;\n /** Event emitted when the clusterer is initialized. */\n markerClustererInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._canInitialize) {\n this._ngZone.runOutsideAngular(() => {\n this._googleMap._resolveMap().then(map => {\n if (typeof MarkerClusterer !== 'function' &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('MarkerClusterer class not found, cannot construct a marker cluster. ' +\n 'Please install the MarkerClustererPlus library: ' +\n 'https://github.com/googlemaps/js-markerclustererplus');\n }\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this.markerClusterer = this._ngZone.runOutsideAngular(() => {\n return new MarkerClusterer(map, [], this._combineOptions());\n });\n this._assertInitialized();\n this._eventManager.setTarget(this.markerClusterer);\n this.markerClustererInitialized.emit(this.markerClusterer);\n });\n });\n }\n }\n ngAfterContentInit() {\n if (this._canInitialize) {\n if (this.markerClusterer) {\n this._watchForMarkerChanges();\n }\n else {\n this.markerClustererInitialized\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(() => this._watchForMarkerChanges());\n }\n }\n }\n ngOnChanges(changes) {\n const { markerClusterer: clusterer, ariaLabelFn, _averageCenter, _batchSizeIE, _calculator, _styles, _clusterClass, _enableRetinaIcons, _gridSize, _ignoreHidden, _imageExtension, _imagePath, _imageSizes, _maxZoom, _minimumClusterSize, _title, _zIndex, _zoomOnClick, } = this;\n if (clusterer) {\n if (changes['options']) {\n clusterer.setOptions(this._combineOptions());\n }\n if (changes['ariaLabelFn']) {\n clusterer.ariaLabelFn = ariaLabelFn;\n }\n if (changes['averageCenter'] && _averageCenter !== undefined) {\n clusterer.setAverageCenter(_averageCenter);\n }\n if (changes['batchSizeIE'] && _batchSizeIE !== undefined) {\n clusterer.setBatchSizeIE(_batchSizeIE);\n }\n if (changes['calculator'] && !!_calculator) {\n clusterer.setCalculator(_calculator);\n }\n if (changes['clusterClass'] && _clusterClass !== undefined) {\n clusterer.setClusterClass(_clusterClass);\n }\n if (changes['enableRetinaIcons'] && _enableRetinaIcons !== undefined) {\n clusterer.setEnableRetinaIcons(_enableRetinaIcons);\n }\n if (changes['gridSize'] && _gridSize !== undefined) {\n clusterer.setGridSize(_gridSize);\n }\n if (changes['ignoreHidden'] && _ignoreHidden !== undefined) {\n clusterer.setIgnoreHidden(_ignoreHidden);\n }\n if (changes['imageExtension'] && _imageExtension !== undefined) {\n clusterer.setImageExtension(_imageExtension);\n }\n if (changes['imagePath'] && _imagePath !== undefined) {\n clusterer.setImagePath(_imagePath);\n }\n if (changes['imageSizes'] && _imageSizes) {\n clusterer.setImageSizes(_imageSizes);\n }\n if (changes['maxZoom'] && _maxZoom !== undefined) {\n clusterer.setMaxZoom(_maxZoom);\n }\n if (changes['minimumClusterSize'] && _minimumClusterSize !== undefined) {\n clusterer.setMinimumClusterSize(_minimumClusterSize);\n }\n if (changes['styles'] && _styles) {\n clusterer.setStyles(_styles);\n }\n if (changes['title'] && _title !== undefined) {\n clusterer.setTitle(_title);\n }\n if (changes['zIndex'] && _zIndex !== undefined) {\n clusterer.setZIndex(_zIndex);\n }\n if (changes['zoomOnClick'] && _zoomOnClick !== undefined) {\n clusterer.setZoomOnClick(_zoomOnClick);\n }\n }\n }\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n this._eventManager.destroy();\n this.markerClusterer?.setMap(null);\n }\n fitMapToMarkers(padding) {\n this._assertInitialized();\n this.markerClusterer.fitMapToMarkers(padding);\n }\n getAverageCenter() {\n this._assertInitialized();\n return this.markerClusterer.getAverageCenter();\n }\n getBatchSizeIE() {\n this._assertInitialized();\n return this.markerClusterer.getBatchSizeIE();\n }\n getCalculator() {\n this._assertInitialized();\n return this.markerClusterer.getCalculator();\n }\n getClusterClass() {\n this._assertInitialized();\n return this.markerClusterer.getClusterClass();\n }\n getClusters() {\n this._assertInitialized();\n return this.markerClusterer.getClusters();\n }\n getEnableRetinaIcons() {\n this._assertInitialized();\n return this.markerClusterer.getEnableRetinaIcons();\n }\n getGridSize() {\n this._assertInitialized();\n return this.markerClusterer.getGridSize();\n }\n getIgnoreHidden() {\n this._assertInitialized();\n return this.markerClusterer.getIgnoreHidden();\n }\n getImageExtension() {\n this._assertInitialized();\n return this.markerClusterer.getImageExtension();\n }\n getImagePath() {\n this._assertInitialized();\n return this.markerClusterer.getImagePath();\n }\n getImageSizes() {\n this._assertInitialized();\n return this.markerClusterer.getImageSizes();\n }\n getMaxZoom() {\n this._assertInitialized();\n return this.markerClusterer.getMaxZoom();\n }\n getMinimumClusterSize() {\n this._assertInitialized();\n return this.markerClusterer.getMinimumClusterSize();\n }\n getStyles() {\n this._assertInitialized();\n return this.markerClusterer.getStyles();\n }\n getTitle() {\n this._assertInitialized();\n return this.markerClusterer.getTitle();\n }\n getTotalClusters() {\n this._assertInitialized();\n return this.markerClusterer.getTotalClusters();\n }\n getTotalMarkers() {\n this._assertInitialized();\n return this.markerClusterer.getTotalMarkers();\n }\n getZIndex() {\n this._assertInitialized();\n return this.markerClusterer.getZIndex();\n }\n getZoomOnClick() {\n this._assertInitialized();\n return this.markerClusterer.getZoomOnClick();\n }\n _combineOptions() {\n const options = this._options || DEFAULT_CLUSTERER_OPTIONS;\n return {\n ...options,\n ariaLabelFn: this.ariaLabelFn ?? options.ariaLabelFn,\n averageCenter: this._averageCenter ?? options.averageCenter,\n batchSize: this.batchSize ?? options.batchSize,\n batchSizeIE: this._batchSizeIE ?? options.batchSizeIE,\n calculator: this._calculator ?? options.calculator,\n clusterClass: this._clusterClass ?? options.clusterClass,\n enableRetinaIcons: this._enableRetinaIcons ?? options.enableRetinaIcons,\n gridSize: this._gridSize ?? options.gridSize,\n ignoreHidden: this._ignoreHidden ?? options.ignoreHidden,\n imageExtension: this._imageExtension ?? options.imageExtension,\n imagePath: this._imagePath ?? options.imagePath,\n imageSizes: this._imageSizes ?? options.imageSizes,\n maxZoom: this._maxZoom ?? options.maxZoom,\n minimumClusterSize: this._minimumClusterSize ?? options.minimumClusterSize,\n styles: this._styles ?? options.styles,\n title: this._title ?? options.title,\n zIndex: this._zIndex ?? options.zIndex,\n zoomOnClick: this._zoomOnClick ?? options.zoomOnClick,\n };\n }\n _watchForMarkerChanges() {\n this._assertInitialized();\n this._ngZone.runOutsideAngular(() => {\n this._getInternalMarkers(this._markers).then(markers => {\n const initialMarkers = [];\n for (const marker of markers) {\n this._currentMarkers.add(marker);\n initialMarkers.push(marker);\n }\n this.markerClusterer.addMarkers(initialMarkers);\n });\n });\n this._markers.changes\n .pipe(takeUntil(this._destroy))\n .subscribe((markerComponents) => {\n this._assertInitialized();\n this._ngZone.runOutsideAngular(() => {\n this._getInternalMarkers(markerComponents).then(markers => {\n const newMarkers = new Set(markers);\n const markersToAdd = [];\n const markersToRemove = [];\n for (const marker of Array.from(newMarkers)) {\n if (!this._currentMarkers.has(marker)) {\n this._currentMarkers.add(marker);\n markersToAdd.push(marker);\n }\n }\n for (const marker of Array.from(this._currentMarkers)) {\n if (!newMarkers.has(marker)) {\n markersToRemove.push(marker);\n }\n }\n this.markerClusterer.addMarkers(markersToAdd, true);\n this.markerClusterer.removeMarkers(markersToRemove, true);\n this.markerClusterer.repaint();\n for (const marker of markersToRemove) {\n this._currentMarkers.delete(marker);\n }\n });\n });\n });\n }\n _getInternalMarkers(markers) {\n return Promise.all(markers.map(markerComponent => markerComponent._resolveMarker()));\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.markerClusterer) {\n throw Error('Cannot interact with a MarkerClusterer before it has been initialized. ' +\n 'Please wait for the MarkerClusterer to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: DeprecatedMapMarkerClusterer, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"19.0.0\", type: DeprecatedMapMarkerClusterer, isStandalone: true, selector: \"deprecated-map-marker-clusterer\", inputs: { ariaLabelFn: \"ariaLabelFn\", averageCenter: \"averageCenter\", batchSize: \"batchSize\", batchSizeIE: \"batchSizeIE\", calculator: \"calculator\", clusterClass: \"clusterClass\", enableRetinaIcons: \"enableRetinaIcons\", gridSize: \"gridSize\", ignoreHidden: \"ignoreHidden\", imageExtension: \"imageExtension\", imagePath: \"imagePath\", imageSizes: \"imageSizes\", maxZoom: \"maxZoom\", minimumClusterSize: \"minimumClusterSize\", styles: \"styles\", title: \"title\", zIndex: \"zIndex\", zoomOnClick: \"zoomOnClick\", options: \"options\" }, outputs: { clusteringbegin: \"clusteringbegin\", clusteringend: \"clusteringend\", clusterClick: \"clusterClick\", markerClustererInitialized: \"markerClustererInitialized\" }, queries: [{ propertyName: \"_markers\", predicate: MapMarker, descendants: true }], exportAs: [\"mapMarkerClusterer\"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: DeprecatedMapMarkerClusterer, decorators: [{\n type: Component,\n args: [{\n selector: 'deprecated-map-marker-clusterer',\n exportAs: 'mapMarkerClusterer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n encapsulation: ViewEncapsulation.None,\n }]\n }], ctorParameters: () => [], propDecorators: { ariaLabelFn: [{\n type: Input\n }], averageCenter: [{\n type: Input\n }], batchSize: [{\n type: Input\n }], batchSizeIE: [{\n type: Input\n }], calculator: [{\n type: Input\n }], clusterClass: [{\n type: Input\n }], enableRetinaIcons: [{\n type: Input\n }], gridSize: [{\n type: Input\n }], ignoreHidden: [{\n type: Input\n }], imageExtension: [{\n type: Input\n }], imagePath: [{\n type: Input\n }], imageSizes: [{\n type: Input\n }], maxZoom: [{\n type: Input\n }], minimumClusterSize: [{\n type: Input\n }], styles: [{\n type: Input\n }], title: [{\n type: Input\n }], zIndex: [{\n type: Input\n }], zoomOnClick: [{\n type: Input\n }], options: [{\n type: Input\n }], clusteringbegin: [{\n type: Output\n }], clusteringend: [{\n type: Output\n }], clusterClick: [{\n type: Output\n }], _markers: [{\n type: ContentChildren,\n args: [MapMarker, { descendants: true }]\n }], markerClustererInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Polygon via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon\n */\nclass MapPolygon {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _paths = new BehaviorSubject(undefined);\n _destroyed = new Subject();\n /**\n * The underlying google.maps.Polygon object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon\n */\n polygon;\n set options(options) {\n this._options.next(options || {});\n }\n set paths(paths) {\n this._paths.next(paths);\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.click\n */\n polygonClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dblclick\n */\n polygonDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.drag\n */\n polygonDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragend\n */\n polygonDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragstart\n */\n polygonDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousedown\n */\n polygonMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousemove\n */\n polygonMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseout\n */\n polygonMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseover\n */\n polygonMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseup\n */\n polygonMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.rightclick\n */\n polygonRightclick = this._eventManager.getLazyEmitter('rightclick');\n /** Event emitted when the polygon is initialized. */\n polygonInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.Polygon && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.Polygon, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.Polygon, options);\n });\n });\n }\n });\n }\n }\n _initialize(map, polygonConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.polygon = new polygonConstructor(options);\n this._assertInitialized();\n this.polygon.setMap(map);\n this._eventManager.setTarget(this.polygon);\n this.polygonInitialized.emit(this.polygon);\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.polygon?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polygon.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polygon.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polygon.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPaths\n */\n getPaths() {\n this._assertInitialized();\n return this.polygon.getPaths();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polygon.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._paths]).pipe(map(([options, paths]) => {\n const combinedOptions = {\n ...options,\n paths: paths || options.paths,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polygon.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._paths.pipe(takeUntil(this._destroyed)).subscribe(paths => {\n if (paths) {\n this._assertInitialized();\n this.polygon.setPaths(paths);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.polygon) {\n throw Error('Cannot interact with a Google Map Polygon before it has been ' +\n 'initialized. Please wait for the Polygon to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapPolygon, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapPolygon, isStandalone: true, selector: \"map-polygon\", inputs: { options: \"options\", paths: \"paths\" }, outputs: { polygonClick: \"polygonClick\", polygonDblclick: \"polygonDblclick\", polygonDrag: \"polygonDrag\", polygonDragend: \"polygonDragend\", polygonDragstart: \"polygonDragstart\", polygonMousedown: \"polygonMousedown\", polygonMousemove: \"polygonMousemove\", polygonMouseout: \"polygonMouseout\", polygonMouseover: \"polygonMouseover\", polygonMouseup: \"polygonMouseup\", polygonRightclick: \"polygonRightclick\", polygonInitialized: \"polygonInitialized\" }, exportAs: [\"mapPolygon\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapPolygon, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-polygon',\n exportAs: 'mapPolygon',\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], paths: [{\n type: Input\n }], polygonClick: [{\n type: Output\n }], polygonDblclick: [{\n type: Output\n }], polygonDrag: [{\n type: Output\n }], polygonDragend: [{\n type: Output\n }], polygonDragstart: [{\n type: Output\n }], polygonMousedown: [{\n type: Output\n }], polygonMousemove: [{\n type: Output\n }], polygonMouseout: [{\n type: Output\n }], polygonMouseover: [{\n type: Output\n }], polygonMouseup: [{\n type: Output\n }], polygonRightclick: [{\n type: Output\n }], polygonInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Polyline via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline\n */\nclass MapPolyline {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _path = new BehaviorSubject(undefined);\n _destroyed = new Subject();\n /**\n * The underlying google.maps.Polyline object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline\n */\n polyline;\n set options(options) {\n this._options.next(options || {});\n }\n set path(path) {\n this._path.next(path);\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.click\n */\n polylineClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dblclick\n */\n polylineDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.drag\n */\n polylineDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragend\n */\n polylineDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragstart\n */\n polylineDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousedown\n */\n polylineMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousemove\n */\n polylineMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseout\n */\n polylineMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseover\n */\n polylineMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseup\n */\n polylineMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.rightclick\n */\n polylineRightclick = this._eventManager.getLazyEmitter('rightclick');\n /** Event emitted when the polyline is initialized. */\n polylineInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.Polyline && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.Polyline, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.Polyline, options);\n });\n });\n }\n });\n }\n }\n _initialize(map, polylineConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.polyline = new polylineConstructor(options);\n this._assertInitialized();\n this.polyline.setMap(map);\n this._eventManager.setTarget(this.polyline);\n this.polylineInitialized.emit(this.polyline);\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.polyline?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polyline.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polyline.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polyline.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polyline.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._path]).pipe(map(([options, path]) => {\n const combinedOptions = {\n ...options,\n path: path || options.path,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polyline.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._path.pipe(takeUntil(this._destroyed)).subscribe(path => {\n if (path) {\n this._assertInitialized();\n this.polyline.setPath(path);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.polyline) {\n throw Error('Cannot interact with a Google Map Polyline before it has been ' +\n 'initialized. Please wait for the Polyline to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapPolyline, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapPolyline, isStandalone: true, selector: \"map-polyline\", inputs: { options: \"options\", path: \"path\" }, outputs: { polylineClick: \"polylineClick\", polylineDblclick: \"polylineDblclick\", polylineDrag: \"polylineDrag\", polylineDragend: \"polylineDragend\", polylineDragstart: \"polylineDragstart\", polylineMousedown: \"polylineMousedown\", polylineMousemove: \"polylineMousemove\", polylineMouseout: \"polylineMouseout\", polylineMouseover: \"polylineMouseover\", polylineMouseup: \"polylineMouseup\", polylineRightclick: \"polylineRightclick\", polylineInitialized: \"polylineInitialized\" }, exportAs: [\"mapPolyline\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapPolyline, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-polyline',\n exportAs: 'mapPolyline',\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], path: [{\n type: Input\n }], polylineClick: [{\n type: Output\n }], polylineDblclick: [{\n type: Output\n }], polylineDrag: [{\n type: Output\n }], polylineDragend: [{\n type: Output\n }], polylineDragstart: [{\n type: Output\n }], polylineMousedown: [{\n type: Output\n }], polylineMousemove: [{\n type: Output\n }], polylineMouseout: [{\n type: Output\n }], polylineMouseover: [{\n type: Output\n }], polylineMouseup: [{\n type: Output\n }], polylineRightclick: [{\n type: Output\n }], polylineInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Rectangle via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle\n */\nclass MapRectangle {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n _options = new BehaviorSubject({});\n _bounds = new BehaviorSubject(undefined);\n _destroyed = new Subject();\n /**\n * The underlying google.maps.Rectangle object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle\n */\n rectangle;\n set options(options) {\n this._options.next(options || {});\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.boundsChanged\n */ boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.click\n */\n rectangleClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dblclick\n */\n rectangleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.drag\n */\n rectangleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragend\n */\n rectangleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragstart\n */\n rectangleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousedown\n */\n rectangleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousemove\n */\n rectangleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseout\n */\n rectangleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseover\n */\n rectangleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseup\n */\n rectangleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.rightclick\n */\n rectangleRightclick = this._eventManager.getLazyEmitter('rightclick');\n /** Event emitted when the rectangle is initialized. */\n rectangleInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.Rectangle && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.Rectangle, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.Rectangle, options);\n });\n });\n }\n });\n }\n }\n _initialize(map, rectangleConstructor, options) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.rectangle = new rectangleConstructor(options);\n this._assertInitialized();\n this.rectangle.setMap(map);\n this._eventManager.setTarget(this.rectangle);\n this.rectangleInitialized.emit(this.rectangle);\n this._watchForOptionsChanges();\n this._watchForBoundsChanges();\n });\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.rectangle?.setMap(null);\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.rectangle.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.rectangle.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.rectangle.getEditable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.rectangle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._bounds]).pipe(map(([options, bounds]) => {\n const combinedOptions = {\n ...options,\n bounds: bounds || options.bounds,\n };\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.rectangle.setOptions(options);\n });\n }\n _watchForBoundsChanges() {\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (bounds) {\n this._assertInitialized();\n this.rectangle.setBounds(bounds);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.rectangle) {\n throw Error('Cannot interact with a Google Map Rectangle before it has been initialized. ' +\n 'Please wait for the Rectangle to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapRectangle, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapRectangle, isStandalone: true, selector: \"map-rectangle\", inputs: { options: \"options\", bounds: \"bounds\" }, outputs: { boundsChanged: \"boundsChanged\", rectangleClick: \"rectangleClick\", rectangleDblclick: \"rectangleDblclick\", rectangleDrag: \"rectangleDrag\", rectangleDragend: \"rectangleDragend\", rectangleDragstart: \"rectangleDragstart\", rectangleMousedown: \"rectangleMousedown\", rectangleMousemove: \"rectangleMousemove\", rectangleMouseout: \"rectangleMouseout\", rectangleMouseover: \"rectangleMouseover\", rectangleMouseup: \"rectangleMouseup\", rectangleRightclick: \"rectangleRightclick\", rectangleInitialized: \"rectangleInitialized\" }, exportAs: [\"mapRectangle\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapRectangle, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-rectangle',\n exportAs: 'mapRectangle',\n }]\n }], ctorParameters: () => [], propDecorators: { options: [{\n type: Input\n }], bounds: [{\n type: Input\n }], boundsChanged: [{\n type: Output\n }], rectangleClick: [{\n type: Output\n }], rectangleDblclick: [{\n type: Output\n }], rectangleDrag: [{\n type: Output\n }], rectangleDragend: [{\n type: Output\n }], rectangleDragstart: [{\n type: Output\n }], rectangleMousedown: [{\n type: Output\n }], rectangleMousemove: [{\n type: Output\n }], rectangleMouseout: [{\n type: Output\n }], rectangleMouseover: [{\n type: Output\n }], rectangleMouseup: [{\n type: Output\n }], rectangleRightclick: [{\n type: Output\n }], rectangleInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Traffic Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TrafficLayer\n */\nclass MapTrafficLayer {\n _map = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _autoRefresh = new BehaviorSubject(true);\n _destroyed = new Subject();\n /**\n * The underlying google.maps.TrafficLayer object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TrafficLayer\n */\n trafficLayer;\n /**\n * Whether the traffic layer refreshes with updated information automatically.\n */\n set autoRefresh(autoRefresh) {\n this._autoRefresh.next(autoRefresh);\n }\n /** Event emitted when the traffic layer is initialized. */\n trafficLayerInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions()\n .pipe(take(1))\n .subscribe(options => {\n if (google.maps.TrafficLayer && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.TrafficLayer, options);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.TrafficLayer, options);\n });\n });\n }\n });\n }\n }\n _initialize(map, layerConstructor, options) {\n this._ngZone.runOutsideAngular(() => {\n this.trafficLayer = new layerConstructor(options);\n this._assertInitialized();\n this.trafficLayer.setMap(map);\n this.trafficLayerInitialized.emit(this.trafficLayer);\n this._watchForAutoRefreshChanges();\n });\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this.trafficLayer?.setMap(null);\n }\n _combineOptions() {\n return this._autoRefresh.pipe(map(autoRefresh => {\n const combinedOptions = { autoRefresh };\n return combinedOptions;\n }));\n }\n _watchForAutoRefreshChanges() {\n this._combineOptions()\n .pipe(takeUntil(this._destroyed))\n .subscribe(options => {\n this._assertInitialized();\n this.trafficLayer.setOptions(options);\n });\n }\n _assertInitialized() {\n if (!this.trafficLayer) {\n throw Error('Cannot interact with a Google Map Traffic Layer before it has been initialized. ' +\n 'Please wait for the Traffic Layer to load before trying to interact with it.');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapTrafficLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapTrafficLayer, isStandalone: true, selector: \"map-traffic-layer\", inputs: { autoRefresh: \"autoRefresh\" }, outputs: { trafficLayerInitialized: \"trafficLayerInitialized\" }, exportAs: [\"mapTrafficLayer\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapTrafficLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-traffic-layer',\n exportAs: 'mapTrafficLayer',\n }]\n }], ctorParameters: () => [], propDecorators: { autoRefresh: [{\n type: Input\n }], trafficLayerInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component that renders a Google Maps Transit Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TransitLayer\n */\nclass MapTransitLayer {\n _map = inject(GoogleMap);\n _zone = inject(NgZone);\n /**\n * The underlying google.maps.TransitLayer object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TransitLayer\n */\n transitLayer;\n /** Event emitted when the transit layer is initialized. */\n transitLayerInitialized = new EventEmitter();\n ngOnInit() {\n if (this._map._isBrowser) {\n if (google.maps.TransitLayer && this._map.googleMap) {\n this._initialize(this._map.googleMap, google.maps.TransitLayer);\n }\n else {\n this._zone.runOutsideAngular(() => {\n Promise.all([this._map._resolveMap(), google.maps.importLibrary('maps')]).then(([map, lib]) => {\n this._initialize(map, lib.TransitLayer);\n });\n });\n }\n }\n }\n _initialize(map, layerConstructor) {\n this._zone.runOutsideAngular(() => {\n this.transitLayer = new layerConstructor();\n this.transitLayerInitialized.emit(this.transitLayer);\n this._assertLayerInitialized();\n this.transitLayer.setMap(map);\n });\n }\n ngOnDestroy() {\n this.transitLayer?.setMap(null);\n }\n _assertLayerInitialized() {\n if (!this.transitLayer) {\n throw Error('Cannot interact with a Google Map Transit Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapTransitLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapTransitLayer, isStandalone: true, selector: \"map-transit-layer\", outputs: { transitLayerInitialized: \"transitLayerInitialized\" }, exportAs: [\"mapTransitLayer\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapTransitLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-transit-layer',\n exportAs: 'mapTransitLayer',\n }]\n }], propDecorators: { transitLayerInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular directive that renders a Google Maps heatmap via the Google Maps JavaScript API.\n *\n * See: https://developers.google.com/maps/documentation/javascript/reference/visualization\n */\nclass MapHeatmapLayer {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n /**\n * Data shown on the heatmap.\n * See: https://developers.google.com/maps/documentation/javascript/reference/visualization\n */\n set data(data) {\n this._data = data;\n }\n _data;\n /**\n * Options used to configure the heatmap. See:\n * developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions\n */\n set options(options) {\n this._options = options;\n }\n _options;\n /**\n * The underlying google.maps.visualization.HeatmapLayer object.\n *\n * See: https://developers.google.com/maps/documentation/javascript/reference/visualization\n */\n heatmap;\n /** Event emitted when the heatmap is initialized. */\n heatmapInitialized = new EventEmitter();\n constructor() { }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n if (!window.google?.maps?.visualization &&\n !window.google?.maps.importLibrary &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Namespace `google.maps.visualization` not found, cannot construct heatmap. ' +\n 'Please install the Google Maps JavaScript API with the \"visualization\" library: ' +\n 'https://developers.google.com/maps/documentation/javascript/visualization');\n }\n if (google.maps.visualization?.HeatmapLayer && this._googleMap.googleMap) {\n this._initialize(this._googleMap.googleMap, google.maps.visualization.HeatmapLayer);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([\n this._googleMap._resolveMap(),\n google.maps.importLibrary('visualization'),\n ]).then(([map, lib]) => {\n this._initialize(map, lib.HeatmapLayer);\n });\n });\n }\n }\n }\n _initialize(map, heatmapConstructor) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.heatmap = new heatmapConstructor(this._combineOptions());\n this._assertInitialized();\n this.heatmap.setMap(map);\n this.heatmapInitialized.emit(this.heatmap);\n });\n }\n ngOnChanges(changes) {\n const { _data, heatmap } = this;\n if (heatmap) {\n if (changes['options']) {\n heatmap.setOptions(this._combineOptions());\n }\n if (changes['data'] && _data !== undefined) {\n heatmap.setData(this._normalizeData(_data));\n }\n }\n }\n ngOnDestroy() {\n this.heatmap?.setMap(null);\n }\n /**\n * Gets the data that is currently shown on the heatmap.\n * See: developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayer\n */\n getData() {\n this._assertInitialized();\n return this.heatmap.getData();\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n const options = this._options || {};\n return {\n ...options,\n data: this._normalizeData(this._data || options.data || []),\n map: this._googleMap.googleMap,\n };\n }\n /**\n * Most Google Maps APIs support both `LatLng` objects and `LatLngLiteral`. The latter is more\n * convenient to write out, because the Google Maps API doesn't have to have been loaded in order\n * to construct them. The `HeatmapLayer` appears to be an exception that only allows a `LatLng`\n * object, or it throws a runtime error. Since it's more convenient and we expect that Angular\n * users will load the API asynchronously, we allow them to pass in a `LatLngLiteral` and we\n * convert it to a `LatLng` object before passing it off to Google Maps.\n */\n _normalizeData(data) {\n const result = [];\n data.forEach(item => {\n result.push(isLatLngLiteral(item) ? new google.maps.LatLng(item.lat, item.lng) : item);\n });\n return result;\n }\n /** Asserts that the heatmap object has been initialized. */\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.heatmap) {\n throw Error('Cannot interact with a Google Map HeatmapLayer before it has been ' +\n 'initialized. Please wait for the heatmap to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapHeatmapLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapHeatmapLayer, isStandalone: true, selector: \"map-heatmap-layer\", inputs: { data: \"data\", options: \"options\" }, outputs: { heatmapInitialized: \"heatmapInitialized\" }, exportAs: [\"mapHeatmapLayer\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapHeatmapLayer, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-heatmap-layer',\n exportAs: 'mapHeatmapLayer',\n }]\n }], ctorParameters: () => [], propDecorators: { data: [{\n type: Input\n }], options: [{\n type: Input\n }], heatmapInitialized: [{\n type: Output\n }] } });\n/** Asserts that an object is a `LatLngLiteral`. */\nfunction isLatLngLiteral(value) {\n return value && typeof value.lat === 'number' && typeof value.lng === 'number';\n}\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Default options for the Google Maps marker component. Displays a marker\n * at the Googleplex.\n */\nconst DEFAULT_MARKER_OPTIONS = {\n position: { lat: 37.221995, lng: -122.184092 },\n};\n/**\n * Angular component that renders a Google Maps marker via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/marker\n */\nclass MapAdvancedMarker {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _eventManager = new MapEventManager(inject(NgZone));\n /**\n * Rollover text. If provided, an accessibility text (e.g. for use with screen readers) will be added to the AdvancedMarkerElement with the provided value.\n * See: https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.title\n */\n set title(title) {\n this._title = title;\n }\n _title;\n /**\n * Sets the AdvancedMarkerElement's position. An AdvancedMarkerElement may be constructed without a position, but will not be displayed until its position is provided - for example, by a user's actions or choices. An AdvancedMarkerElement's position can be provided by setting AdvancedMarkerElement.position if not provided at the construction.\n * Note: AdvancedMarkerElement with altitude is only supported on vector maps.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.position\n */\n set position(position) {\n this._position = position;\n }\n _position;\n /**\n * The DOM Element backing the visual of an AdvancedMarkerElement.\n * Note: AdvancedMarkerElement does not clone the passed-in DOM element. Once the DOM element is passed to an AdvancedMarkerElement, passing the same DOM element to another AdvancedMarkerElement will move the DOM element and cause the previous AdvancedMarkerElement to look empty.\n * See: https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.content\n */\n set content(content) {\n this._content = content;\n }\n _content;\n /**\n * If true, the AdvancedMarkerElement can be dragged.\n * Note: AdvancedMarkerElement with altitude is not draggable.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.gmpDraggable\n */\n set gmpDraggable(draggable) {\n this._draggable = draggable;\n }\n _draggable;\n /**\n * Options for constructing an AdvancedMarkerElement.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions\n */\n set options(options) {\n this._options = options;\n }\n _options;\n /**\n * AdvancedMarkerElements on the map are prioritized by zIndex, with higher values indicating higher display.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.zIndex\n */\n set zIndex(zIndex) {\n this._zIndex = zIndex;\n }\n _zIndex;\n /**\n * This event is fired when the AdvancedMarkerElement element is clicked.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElement.click\n */\n mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * This event is fired when the AdvancedMarkerElement is double-clicked.\n */\n mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * This event is fired when the mouse moves out of the AdvancedMarkerElement.\n */\n mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * This event is fired when the mouse moves over the AdvancedMarkerElement.\n */\n mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * This event is fired when the mouse button is released over the AdvancedMarkerElement.\n */\n mapMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * This event is fired when the AdvancedMarkerElement is right-clicked.\n */\n mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * This event is repeatedly fired while the user drags the AdvancedMarkerElement.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElement.drag\n */\n mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * This event is fired when the user stops dragging the AdvancedMarkerElement.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElement.dragend\n */\n mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * This event is fired when the user starts dragging the AdvancedMarkerElement.\n * https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElement.dragstart\n */\n mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /** Event emitted when the marker is initialized. */\n markerInitialized = new EventEmitter();\n /**\n * The underlying google.maps.marker.AdvancedMarkerElement object.\n *\n * See developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElement\n */\n advancedMarker;\n constructor() { }\n ngOnInit() {\n if (!this._googleMap._isBrowser) {\n return;\n }\n if (google.maps.marker?.AdvancedMarkerElement && this._googleMap.googleMap) {\n this._initialize(this._googleMap.googleMap, google.maps.marker.AdvancedMarkerElement);\n }\n else {\n this._ngZone.runOutsideAngular(() => {\n Promise.all([this._googleMap._resolveMap(), google.maps.importLibrary('marker')]).then(([map, lib]) => {\n this._initialize(map, lib.AdvancedMarkerElement);\n });\n });\n }\n }\n _initialize(map, advancedMarkerConstructor) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.advancedMarker = new advancedMarkerConstructor(this._combineOptions());\n this._assertInitialized();\n this.advancedMarker.map = map;\n this._eventManager.setTarget(this.advancedMarker);\n this.markerInitialized.next(this.advancedMarker);\n });\n }\n ngOnChanges(changes) {\n const { advancedMarker, _content, _position, _title, _draggable, _zIndex } = this;\n if (advancedMarker) {\n if (changes['title']) {\n advancedMarker.title = _title;\n }\n if (changes['gmpDraggable']) {\n advancedMarker.gmpDraggable = _draggable;\n }\n if (changes['content']) {\n advancedMarker.content = _content;\n }\n if (changes['position']) {\n advancedMarker.position = _position;\n }\n if (changes['zIndex']) {\n advancedMarker.zIndex = _zIndex;\n }\n }\n }\n ngOnDestroy() {\n this.markerInitialized.complete();\n this._eventManager.destroy();\n if (this.advancedMarker) {\n this.advancedMarker.map = null;\n }\n }\n getAnchor() {\n this._assertInitialized();\n return this.advancedMarker;\n }\n /** Returns a promise that resolves when the marker has been initialized. */\n _resolveMarker() {\n return this.advancedMarker\n ? Promise.resolve(this.advancedMarker)\n : this.markerInitialized.pipe(take(1)).toPromise();\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n const options = this._options || DEFAULT_MARKER_OPTIONS;\n return {\n ...options,\n title: this._title || options.title,\n position: this._position || options.position,\n content: this._content || options.content,\n zIndex: this._zIndex ?? options.zIndex,\n gmpDraggable: this._draggable ?? options.gmpDraggable,\n map: this._googleMap.googleMap,\n };\n }\n /** Asserts that the map has been initialized. */\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this.advancedMarker) {\n throw Error('Cannot interact with a Google Map Marker before it has been ' +\n 'initialized. Please wait for the Marker to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapAdvancedMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapAdvancedMarker, isStandalone: true, selector: \"map-advanced-marker\", inputs: { title: \"title\", position: \"position\", content: \"content\", gmpDraggable: \"gmpDraggable\", options: \"options\", zIndex: \"zIndex\" }, outputs: { mapClick: \"mapClick\", mapDblclick: \"mapDblclick\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", mapMouseup: \"mapMouseup\", mapRightclick: \"mapRightclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", mapDragstart: \"mapDragstart\", markerInitialized: \"markerInitialized\" }, providers: [\n {\n provide: MAP_MARKER,\n useExisting: MapAdvancedMarker,\n },\n ], exportAs: [\"mapAdvancedMarker\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapAdvancedMarker, decorators: [{\n type: Directive,\n args: [{\n selector: 'map-advanced-marker',\n exportAs: 'mapAdvancedMarker',\n providers: [\n {\n provide: MAP_MARKER,\n useExisting: MapAdvancedMarker,\n },\n ],\n }]\n }], ctorParameters: () => [], propDecorators: { title: [{\n type: Input\n }], position: [{\n type: Input\n }], content: [{\n type: Input\n }], gmpDraggable: [{\n type: Input\n }], options: [{\n type: Input\n }], zIndex: [{\n type: Input\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], mapMouseup: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], markerInitialized: [{\n type: Output\n }] } });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular component for implementing a Google Maps Marker Clusterer.\n *\n * See https://developers.google.com/maps/documentation/javascript/marker-clustering\n */\nclass MapMarkerClusterer {\n _googleMap = inject(GoogleMap);\n _ngZone = inject(NgZone);\n _currentMarkers = new Set();\n _closestMapEventManager = new MapEventManager(this._ngZone);\n _markersSubscription = Subscription.EMPTY;\n /** Whether the clusterer is allowed to be initialized. */\n _canInitialize = this._googleMap._isBrowser;\n /**\n * Used to customize how the marker cluster is rendered.\n * See https://googlemaps.github.io/js-markerclusterer/interfaces/Renderer.html.\n */\n renderer;\n /**\n * Algorithm used to cluster the markers.\n * See https://googlemaps.github.io/js-markerclusterer/interfaces/Algorithm.html.\n */\n algorithm;\n /** Emits when clustering has started. */\n clusteringbegin = this._closestMapEventManager.getLazyEmitter('clusteringbegin');\n /** Emits when clustering is done. */\n clusteringend = this._closestMapEventManager.getLazyEmitter('clusteringend');\n /** Emits when a cluster has been clicked. */\n clusterClick = new EventEmitter();\n /** Event emitted when the marker clusterer is initialized. */\n markerClustererInitialized = new EventEmitter();\n _markers;\n /** Underlying MarkerClusterer object used to interact with Google Maps. */\n markerClusterer;\n async ngOnInit() {\n if (this._canInitialize) {\n await this._createCluster();\n // The `clusteringbegin` and `clusteringend` events are\n // emitted on the map so that's why set it as the target.\n this._closestMapEventManager.setTarget(this._googleMap.googleMap);\n }\n }\n async ngOnChanges(changes) {\n const change = changes['renderer'] || changes['algorithm'];\n // Since the options are set in the constructor, we have to recreate the cluster if they change.\n if (this.markerClusterer && change && !change.isFirstChange()) {\n await this._createCluster();\n }\n }\n ngOnDestroy() {\n this._markersSubscription.unsubscribe();\n this._closestMapEventManager.destroy();\n this._destroyCluster();\n }\n async _createCluster() {\n if (!markerClusterer?.MarkerClusterer && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('MarkerClusterer class not found, cannot construct a marker cluster. ' +\n 'Please install the MarkerClusterer library: ' +\n 'https://github.com/googlemaps/js-markerclusterer');\n }\n const map = await this._googleMap._resolveMap();\n this._destroyCluster();\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.markerClusterer = new markerClusterer.MarkerClusterer({\n map,\n renderer: this.renderer,\n algorithm: this.algorithm,\n onClusterClick: (event, cluster, map) => {\n if (this.clusterClick.observers.length) {\n this._ngZone.run(() => this.clusterClick.emit(cluster));\n }\n else {\n markerClusterer.defaultOnClusterClickHandler(event, cluster, map);\n }\n },\n });\n this.markerClustererInitialized.emit(this.markerClusterer);\n });\n await this._watchForMarkerChanges();\n }\n async _watchForMarkerChanges() {\n this._assertInitialized();\n const initialMarkers = [];\n const markers = await this._getInternalMarkers(this._markers.toArray());\n for (const marker of markers) {\n this._currentMarkers.add(marker);\n initialMarkers.push(marker);\n }\n this.markerClusterer.addMarkers(initialMarkers);\n this._markersSubscription.unsubscribe();\n this._markersSubscription = this._markers.changes.subscribe(async (markerComponents) => {\n this._assertInitialized();\n const newMarkers = new Set(await this._getInternalMarkers(markerComponents));\n const markersToAdd = [];\n const markersToRemove = [];\n for (const marker of Array.from(newMarkers)) {\n if (!this._currentMarkers.has(marker)) {\n this._currentMarkers.add(marker);\n markersToAdd.push(marker);\n }\n }\n for (const marker of Array.from(this._currentMarkers)) {\n if (!newMarkers.has(marker)) {\n markersToRemove.push(marker);\n }\n }\n this.markerClusterer.addMarkers(markersToAdd, true);\n this.markerClusterer.removeMarkers(markersToRemove, true);\n this.markerClusterer.render();\n for (const marker of markersToRemove) {\n this._currentMarkers.delete(marker);\n }\n });\n }\n _destroyCluster() {\n // TODO(crisbeto): the naming here seems odd, but the `MarkerCluster` method isn't\n // exposed. All this method seems to do at the time of writing is to call into `reset`.\n // See: https://github.com/googlemaps/js-markerclusterer/blob/main/src/markerclusterer.ts#L205\n this.markerClusterer?.onRemove();\n this.markerClusterer = undefined;\n }\n _getInternalMarkers(markers) {\n return Promise.all(markers.map(marker => marker._resolveMarker()));\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.markerClusterer) {\n throw Error('Cannot interact with a MarkerClusterer before it has been initialized. ' +\n 'Please wait for the MarkerClusterer to load before trying to interact with it.');\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapMarkerClusterer, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"19.0.0\", type: MapMarkerClusterer, isStandalone: true, selector: \"map-marker-clusterer\", inputs: { renderer: \"renderer\", algorithm: \"algorithm\" }, outputs: { clusteringbegin: \"clusteringbegin\", clusteringend: \"clusteringend\", clusterClick: \"clusterClick\", markerClustererInitialized: \"markerClustererInitialized\" }, queries: [{ propertyName: \"_markers\", predicate: MAP_MARKER, descendants: true }], exportAs: [\"mapMarkerClusterer\"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapMarkerClusterer, decorators: [{\n type: Component,\n args: [{\n selector: 'map-marker-clusterer',\n exportAs: 'mapMarkerClusterer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n encapsulation: ViewEncapsulation.None,\n }]\n }], propDecorators: { renderer: [{\n type: Input\n }], algorithm: [{\n type: Input\n }], clusteringbegin: [{\n type: Output\n }], clusteringend: [{\n type: Output\n }], clusterClick: [{\n type: Output\n }], markerClustererInitialized: [{\n type: Output\n }], _markers: [{\n type: ContentChildren,\n args: [MAP_MARKER, { descendants: true }]\n }] } });\n\nconst COMPONENTS = [\n GoogleMap,\n MapBaseLayer,\n MapBicyclingLayer,\n MapCircle,\n MapDirectionsRenderer,\n MapGroundOverlay,\n MapHeatmapLayer,\n MapInfoWindow,\n MapKmlLayer,\n MapMarker,\n MapAdvancedMarker,\n DeprecatedMapMarkerClusterer,\n MapPolygon,\n MapPolyline,\n MapRectangle,\n MapTrafficLayer,\n MapTransitLayer,\n MapMarkerClusterer,\n];\nclass GoogleMapsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMapsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMapsModule, imports: [GoogleMap,\n MapBaseLayer,\n MapBicyclingLayer,\n MapCircle,\n MapDirectionsRenderer,\n MapGroundOverlay,\n MapHeatmapLayer,\n MapInfoWindow,\n MapKmlLayer,\n MapMarker,\n MapAdvancedMarker,\n DeprecatedMapMarkerClusterer,\n MapPolygon,\n MapPolyline,\n MapRectangle,\n MapTrafficLayer,\n MapTransitLayer,\n MapMarkerClusterer], exports: [GoogleMap,\n MapBaseLayer,\n MapBicyclingLayer,\n MapCircle,\n MapDirectionsRenderer,\n MapGroundOverlay,\n MapHeatmapLayer,\n MapInfoWindow,\n MapKmlLayer,\n MapMarker,\n MapAdvancedMarker,\n DeprecatedMapMarkerClusterer,\n MapPolygon,\n MapPolyline,\n MapRectangle,\n MapTrafficLayer,\n MapTransitLayer,\n MapMarkerClusterer] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMapsModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: GoogleMapsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: COMPONENTS,\n exports: COMPONENTS,\n }]\n }] });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular service that wraps the Google Maps DirectionsService from the Google Maps JavaScript\n * API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/directions#DirectionsService\n */\nclass MapDirectionsService {\n _ngZone = inject(NgZone);\n _directionsService;\n constructor() { }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsService.route\n */\n route(request) {\n return new Observable(observer => {\n this._getService().then(service => {\n service.route(request, (result, status) => {\n this._ngZone.run(() => {\n observer.next({ result: result || undefined, status });\n observer.complete();\n });\n });\n });\n });\n }\n _getService() {\n if (!this._directionsService) {\n if (google.maps.DirectionsService) {\n this._directionsService = new google.maps.DirectionsService();\n }\n else {\n return google.maps.importLibrary('routes').then(lib => {\n this._directionsService = new lib.DirectionsService();\n return this._directionsService;\n });\n }\n }\n return Promise.resolve(this._directionsService);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapDirectionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapDirectionsService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapDirectionsService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/**\n * Angular service that wraps the Google Maps Geocoder from the Google Maps JavaScript API.\n * See developers.google.com/maps/documentation/javascript/reference/geocoder#Geocoder\n */\nclass MapGeocoder {\n _ngZone = inject(NgZone);\n _geocoder;\n constructor() { }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/geocoder#Geocoder.geocode\n */\n geocode(request) {\n return new Observable(observer => {\n this._getGeocoder().then(geocoder => {\n geocoder.geocode(request, (results, status) => {\n this._ngZone.run(() => {\n observer.next({ results: results || [], status });\n observer.complete();\n });\n });\n });\n });\n }\n _getGeocoder() {\n if (!this._geocoder) {\n if (google.maps.Geocoder) {\n this._geocoder = new google.maps.Geocoder();\n }\n else {\n return google.maps.importLibrary('geocoding').then(lib => {\n this._geocoder = new lib.Geocoder();\n return this._geocoder;\n });\n }\n }\n return Promise.resolve(this._geocoder);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapGeocoder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapGeocoder, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: MapGeocoder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DeprecatedMapMarkerClusterer, GoogleMap, GoogleMapsModule, MapAdvancedMarker, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapDirectionsService, MapEventManager, MapGeocoder, MapGroundOverlay, MapHeatmapLayer, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer };\n"],"names":["i0","inject","ElementRef","NgZone","EventEmitter","PLATFORM_ID","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","Directive","InjectionToken","ContentChildren","NgModule","Injectable","isPlatformBrowser","BehaviorSubject","Observable","Subject","combineLatest","Subscription","switchMap","take","map","takeUntil","_c0","MapEventManager","_ngZone","_pending","_listeners","_targetStream","undefined","_clearListeners","listener","remove","constructor","getLazyEmitter","name","pipe","target","observable","observer","push","addListener","event","run","next","complete","setTarget","currentTarget","value","forEach","subscriber","subscribe","destroy","DEFAULT_OPTIONS","center","lat","lng","zoom","mapTypeId","DEFAULT_HEIGHT","DEFAULT_WIDTH","GoogleMap","_elementRef","_eventManager","_mapEl","_existingAuthFailureCallback","googleMap","_isBrowser","height","width","mapId","_center","_zoom","options","_options","mapInitialized","authFailure","boundsChanged","centerChanged","mapClick","mapDblclick","mapDrag","mapDragend","mapDragstart","headingChanged","idle","maptypeidChanged","mapMousemove","mapMouseout","mapMouseover","projectionChanged","mapRightclick","tilesloaded","tiltChanged","zoomChanged","platformId","googleMapsWindow","window","google","ngDevMode","Error","gm_authFailure","emit","ngOnChanges","changes","_setSize","setOptions","_combineOptions","setCenter","setZoom","setMapTypeId","ngOnInit","nativeElement","querySelector","maps","Map","_initialize","runOutsideAngular","importLibrary","then","lib","mapConstructor","ngOnDestroy","fitBounds","bounds","padding","_assertInitialized","panBy","x","y","panTo","latLng","panToBounds","latLngBounds","getBounds","getCenter","getClickableIcons","getHeading","getMapTypeId","getProjection","getStreetView","getTilt","getZoom","controls","data","mapTypes","overlayMapTypes","_resolveMap","Promise","resolve","toPromise","styles","style","coerceCssPixelValue","ɵfac","GoogleMap_Factory","__ngFactoryType__","ɵcmp","ɵɵdefineComponent","type","selectors","inputs","outputs","exportAs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","ngContentSelectors","decls","vars","consts","template","GoogleMap_Template","rf","ctx","ɵɵprojectionDef","ɵɵelement","ɵɵprojection","encapsulation","changeDetection","ɵsetClassMetadata","args","selector","OnPush","None","cssUnitsPattern","test","MapBaseLayer","_map","_initializeObject","_setMap","_unsetMap","MapBaseLayer_Factory","ɵdir","ɵɵdefineDirective","MapBicyclingLayer","_zone","bicyclingLayer","bicyclingLayerInitialized","BicyclingLayer","all","layerConstructor","_assertLayerInitialized","setMap","MapBicyclingLayer_Factory","MapCircle","_radius","_destroyed","circle","radius","circleClick","circleDblclick","circleDrag","circleDragend","circleDragstart","circleMousedown","circleMousemove","circleMouseout","circleMouseover","circleMouseup","radiusChanged","circleRightclick","circleInitialized","Circle","circleConstructor","_watchForOptionsChanges","_watchForCenterChanges","_watchForRadiusChanges","getDraggable","getEditable","getRadius","getVisible","combinedOptions","setRadius","MapCircle_Factory","MapDirectionsRenderer","_googleMap","directions","_directions","directionsChanged","directionsRendererInitialized","directionsRenderer","DirectionsRenderer","rendererConstructor","setDirections","getDirections","getPanel","getRouteIndex","MapDirectionsRenderer_Factory","MapGroundOverlay","_opacity","_url","_bounds","_hasWatchers","groundOverlay","url","clickable","opacity","groundOverlayInitialized","GroundOverlay","overlayConstructor","getValue","_watchForOpacityChanges","_watchForUrlChanges","getOpacity","getUrl","setOpacity","overlay","set","MapGroundOverlay_Factory","MapInfoWindow","_position","_destroy","infoWindow","position","closeclick","contentChanged","domready","positionChanged","zindexChanged","infoWindowInitialized","InfoWindow","infoWindowConstructor","_watchForPositionChanges","close","getContent","getPosition","getZIndex","openAdvancedMarkerElement","advancedMarkerElement","content","open","getAnchor","anchor","shouldFocus","anchorObject","get","display","setContent","setPosition","MapInfoWindow_Factory","hostAttrs","host","MapKmlLayer","kmlLayer","kmlClick","defaultviewportChanged","statusChanged","kmlLayerInitialized","KmlLayer","getDefaultViewport","getMetadata","getStatus","setUrl","MapKmlLayer_Factory","MAP_MARKER","DEFAULT_MARKER_OPTIONS$1","MapMarker","title","_title","label","_label","_clickable","icon","_icon","visible","_visible","animationChanged","clickableChanged","cursorChanged","draggableChanged","flatChanged","iconChanged","mapMousedown","mapMouseup","shapeChanged","titleChanged","visibleChanged","markerInitialized","marker","Marker","markerConstructor","setTitle","setLabel","setClickable","setIcon","setVisible","getAnimation","getClickable","getCursor","getIcon","getLabel","getShape","getTitle","_resolveMarker","MapMarker_Factory","ɵɵProvidersFeature","provide","useExisting","providers","DEFAULT_CLUSTERER_OPTIONS","DeprecatedMapMarkerClusterer","_currentMarkers","Set","_canInitialize","ariaLabelFn","averageCenter","_averageCenter","batchSize","batchSizeIE","_batchSizeIE","calculator","_calculator","clusterClass","_clusterClass","enableRetinaIcons","_enableRetinaIcons","gridSize","_gridSize","ignoreHidden","_ignoreHidden","imageExtension","_imageExtension","imagePath","_imagePath","imageSizes","_imageSizes","maxZoom","_maxZoom","minimumClusterSize","_minimumClusterSize","_styles","zIndex","_zIndex","zoomOnClick","_zoomOnClick","clusteringbegin","clusteringend","clusterClick","_markers","markerClusterer","markerClustererInitialized","MarkerClusterer","ngAfterContentInit","_watchForMarkerChanges","clusterer","setAverageCenter","setBatchSizeIE","setCalculator","setClusterClass","setEnableRetinaIcons","setGridSize","setIgnoreHidden","setImageExtension","setImagePath","setImageSizes","setMaxZoom","setMinimumClusterSize","setStyles","setZIndex","setZoomOnClick","fitMapToMarkers","getAverageCenter","getBatchSizeIE","getCalculator","getClusterClass","getClusters","getEnableRetinaIcons","getGridSize","getIgnoreHidden","getImageExtension","getImagePath","getImageSizes","getMaxZoom","getMinimumClusterSize","getStyles","getTotalClusters","getTotalMarkers","getZoomOnClick","_getInternalMarkers","markers","initialMarkers","add","addMarkers","markerComponents","newMarkers","markersToAdd","markersToRemove","Array","from","has","removeMarkers","repaint","delete","markerComponent","DeprecatedMapMarkerClusterer_Factory","contentQueries","DeprecatedMapMarkerClusterer_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","DeprecatedMapMarkerClusterer_Template","descendants","MapPolygon","_paths","polygon","paths","polygonClick","polygonDblclick","polygonDrag","polygonDragend","polygonDragstart","polygonMousedown","polygonMousemove","polygonMouseout","polygonMouseover","polygonMouseup","polygonRightclick","polygonInitialized","Polygon","polygonConstructor","_watchForPathChanges","getPath","getPaths","setPaths","MapPolygon_Factory","MapPolyline","_path","polyline","path","polylineClick","polylineDblclick","polylineDrag","polylineDragend","polylineDragstart","polylineMousedown","polylineMousemove","polylineMouseout","polylineMouseover","polylineMouseup","polylineRightclick","polylineInitialized","Polyline","polylineConstructor","setPath","MapPolyline_Factory","MapRectangle","rectangle","rectangleClick","rectangleDblclick","rectangleDrag","rectangleDragend","rectangleDragstart","rectangleMousedown","rectangleMousemove","rectangleMouseout","rectangleMouseover","rectangleMouseup","rectangleRightclick","rectangleInitialized","Rectangle","rectangleConstructor","_watchForBoundsChanges","setBounds","MapRectangle_Factory","MapTrafficLayer","_autoRefresh","trafficLayer","autoRefresh","trafficLayerInitialized","TrafficLayer","_watchForAutoRefreshChanges","MapTrafficLayer_Factory","MapTransitLayer","transitLayer","transitLayerInitialized","TransitLayer","MapTransitLayer_Factory","MapHeatmapLayer","_data","heatmap","heatmapInitialized","visualization","HeatmapLayer","heatmapConstructor","setData","_normalizeData","getData","result","item","isLatLngLiteral","LatLng","MapHeatmapLayer_Factory","DEFAULT_MARKER_OPTIONS","MapAdvancedMarker","_content","gmpDraggable","draggable","_draggable","advancedMarker","AdvancedMarkerElement","advancedMarkerConstructor","MapAdvancedMarker_Factory","MapMarkerClusterer","_closestMapEventManager","_markersSubscription","EMPTY","renderer","algorithm","_this","_asyncToGenerator","_createCluster","_this2","change","isFirstChange","unsubscribe","_destroyCluster","_this3","onClusterClick","cluster","observers","length","defaultOnClusterClickHandler","_this4","toArray","_ref","render","_x","apply","arguments","onRemove","MapMarkerClusterer_Factory","MapMarkerClusterer_ContentQueries","MapMarkerClusterer_Template","COMPONENTS","GoogleMapsModule","GoogleMapsModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","exports","MapDirectionsService","_directionsService","route","request","_getService","service","status","DirectionsService","MapDirectionsService_Factory","ɵprov","ɵɵdefineInjectable","token","factory","providedIn","MapGeocoder","_geocoder","geocode","_getGeocoder","geocoder","results","Geocoder","MapGeocoder_Factory"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]}