@angular/google-maps 19.0.0-next.7 → 19.0.0-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, NgZone, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, Directive, ContentChildren, NgModule, Injectable } from '@angular/core';
2
+ import { inject, ElementRef, NgZone, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, Directive, InjectionToken, ContentChildren, NgModule, Injectable } from '@angular/core';
3
3
  import { isPlatformBrowser } from '@angular/common';
4
- import { BehaviorSubject, Observable, Subject, combineLatest } from 'rxjs';
4
+ import { BehaviorSubject, Observable, Subject, combineLatest, Subscription } from 'rxjs';
5
5
  import { switchMap, take, map, takeUntil } from 'rxjs/operators';
6
6
 
7
7
  /** Manages event on a Google Maps object, ensuring that events are added only when necessary. */
@@ -448,15 +448,14 @@ class GoogleMap {
448
448
  'Please wait for the API to load before trying to interact with it.');
449
449
  }
450
450
  }
451
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMap, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
452
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.3", 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: '<div class="map-container"></div><ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMap, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
452
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.10", 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: '<div class="map-container"></div><ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
453
453
  }
454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMap, decorators: [{
454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMap, decorators: [{
455
455
  type: Component,
456
456
  args: [{
457
457
  selector: 'google-map',
458
458
  exportAs: 'googleMap',
459
- standalone: true,
460
459
  changeDetection: ChangeDetectionStrategy.OnPush,
461
460
  template: '<div class="map-container"></div><ng-content />',
462
461
  encapsulation: ViewEncapsulation.None,
@@ -552,15 +551,14 @@ class MapBaseLayer {
552
551
  _initializeObject() { }
553
552
  _setMap() { }
554
553
  _unsetMap() { }
555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapBaseLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
556
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapBaseLayer, isStandalone: true, selector: "map-base-layer", exportAs: ["mapBaseLayer"], ngImport: i0 }); }
554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapBaseLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
555
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapBaseLayer, isStandalone: true, selector: "map-base-layer", exportAs: ["mapBaseLayer"], ngImport: i0 }); }
557
556
  }
558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapBaseLayer, decorators: [{
557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapBaseLayer, decorators: [{
559
558
  type: Directive,
560
559
  args: [{
561
560
  selector: 'map-base-layer',
562
561
  exportAs: 'mapBaseLayer',
563
- standalone: true,
564
562
  }]
565
563
  }], ctorParameters: () => [] });
566
564
 
@@ -608,15 +606,14 @@ class MapBicyclingLayer {
608
606
  'Please wait for the Transit Layer to load before trying to interact with it.');
609
607
  }
610
608
  }
611
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapBicyclingLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
612
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapBicyclingLayer, isStandalone: true, selector: "map-bicycling-layer", outputs: { bicyclingLayerInitialized: "bicyclingLayerInitialized" }, exportAs: ["mapBicyclingLayer"], ngImport: i0 }); }
609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapBicyclingLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
610
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapBicyclingLayer, isStandalone: true, selector: "map-bicycling-layer", outputs: { bicyclingLayerInitialized: "bicyclingLayerInitialized" }, exportAs: ["mapBicyclingLayer"], ngImport: i0 }); }
613
611
  }
614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapBicyclingLayer, decorators: [{
612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapBicyclingLayer, decorators: [{
615
613
  type: Directive,
616
614
  args: [{
617
615
  selector: 'map-bicycling-layer',
618
616
  exportAs: 'mapBicyclingLayer',
619
- standalone: true,
620
617
  }]
621
618
  }], propDecorators: { bicyclingLayerInitialized: [{
622
619
  type: Output
@@ -841,15 +838,14 @@ class MapCircle {
841
838
  }
842
839
  }
843
840
  }
844
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapCircle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
845
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
841
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapCircle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
842
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
846
843
  }
847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapCircle, decorators: [{
844
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapCircle, decorators: [{
848
845
  type: Directive,
849
846
  args: [{
850
847
  selector: 'map-circle',
851
848
  exportAs: 'mapCircle',
852
- standalone: true,
853
849
  }]
854
850
  }], ctorParameters: () => [], propDecorators: { options: [{
855
851
  type: Input
@@ -1002,15 +998,14 @@ class MapDirectionsRenderer {
1002
998
  }
1003
999
  }
1004
1000
  }
1005
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapDirectionsRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1006
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapDirectionsRenderer, isStandalone: true, selector: "map-directions-renderer", inputs: { directions: "directions", options: "options" }, outputs: { directionsChanged: "directionsChanged", directionsRendererInitialized: "directionsRendererInitialized" }, exportAs: ["mapDirectionsRenderer"], usesOnChanges: true, ngImport: i0 }); }
1001
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapDirectionsRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1002
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapDirectionsRenderer, isStandalone: true, selector: "map-directions-renderer", inputs: { directions: "directions", options: "options" }, outputs: { directionsChanged: "directionsChanged", directionsRendererInitialized: "directionsRendererInitialized" }, exportAs: ["mapDirectionsRenderer"], usesOnChanges: true, ngImport: i0 }); }
1007
1003
  }
1008
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapDirectionsRenderer, decorators: [{
1004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapDirectionsRenderer, decorators: [{
1009
1005
  type: Directive,
1010
1006
  args: [{
1011
1007
  selector: 'map-directions-renderer',
1012
1008
  exportAs: 'mapDirectionsRenderer',
1013
- standalone: true,
1014
1009
  }]
1015
1010
  }], ctorParameters: () => [], propDecorators: { directions: [{
1016
1011
  type: Input
@@ -1174,15 +1169,14 @@ class MapGroundOverlay {
1174
1169
  }
1175
1170
  }
1176
1171
  }
1177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapGroundOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1178
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
1172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapGroundOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1173
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
1179
1174
  }
1180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapGroundOverlay, decorators: [{
1175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapGroundOverlay, decorators: [{
1181
1176
  type: Directive,
1182
1177
  args: [{
1183
1178
  selector: 'map-ground-overlay',
1184
1179
  exportAs: 'mapGroundOverlay',
1185
- standalone: true,
1186
1180
  }]
1187
1181
  }], ctorParameters: () => [], propDecorators: { url: [{
1188
1182
  type: Input
@@ -1394,15 +1388,14 @@ class MapInfoWindow {
1394
1388
  }
1395
1389
  }
1396
1390
  }
1397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapInfoWindow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1398
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
1391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapInfoWindow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1392
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
1399
1393
  }
1400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapInfoWindow, decorators: [{
1394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapInfoWindow, decorators: [{
1401
1395
  type: Directive,
1402
1396
  args: [{
1403
1397
  selector: 'map-info-window',
1404
1398
  exportAs: 'mapInfoWindow',
1405
- standalone: true,
1406
1399
  host: { 'style': 'display: none' },
1407
1400
  }]
1408
1401
  }], ctorParameters: () => [], propDecorators: { options: [{
@@ -1567,15 +1560,14 @@ class MapKmlLayer {
1567
1560
  }
1568
1561
  }
1569
1562
  }
1570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapKmlLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1571
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
1563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapKmlLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1564
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
1572
1565
  }
1573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapKmlLayer, decorators: [{
1566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapKmlLayer, decorators: [{
1574
1567
  type: Directive,
1575
1568
  args: [{
1576
1569
  selector: 'map-kml-layer',
1577
1570
  exportAs: 'mapKmlLayer',
1578
- standalone: true,
1579
1571
  }]
1580
1572
  }], ctorParameters: () => [], propDecorators: { options: [{
1581
1573
  type: Input
@@ -1591,6 +1583,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3",
1591
1583
  type: Output
1592
1584
  }] } });
1593
1585
 
1586
+ /** Token that marker directives can use to expose themselves to the clusterer. */
1587
+ const MAP_MARKER = new InjectionToken('MAP_MARKER');
1588
+
1594
1589
  // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
1595
1590
  /**
1596
1591
  * Default options for the Google Maps marker component. Displays a marker
@@ -1953,15 +1948,25 @@ class MapMarker {
1953
1948
  }
1954
1949
  }
1955
1950
  }
1956
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1957
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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" }, exportAs: ["mapMarker"], usesOnChanges: true, ngImport: i0 }); }
1951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1952
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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: [
1953
+ {
1954
+ provide: MAP_MARKER,
1955
+ useExisting: MapMarker,
1956
+ },
1957
+ ], exportAs: ["mapMarker"], usesOnChanges: true, ngImport: i0 }); }
1958
1958
  }
1959
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapMarker, decorators: [{
1959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapMarker, decorators: [{
1960
1960
  type: Directive,
1961
1961
  args: [{
1962
1962
  selector: 'map-marker',
1963
1963
  exportAs: 'mapMarker',
1964
- standalone: true,
1964
+ providers: [
1965
+ {
1966
+ provide: MAP_MARKER,
1967
+ useExisting: MapMarker,
1968
+ },
1969
+ ],
1965
1970
  }]
1966
1971
  }], ctorParameters: () => [], propDecorators: { title: [{
1967
1972
  type: Input
@@ -2028,10 +2033,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3",
2028
2033
  const DEFAULT_CLUSTERER_OPTIONS = {};
2029
2034
  /**
2030
2035
  * Angular component for implementing a Google Maps Marker Clusterer.
2031
- *
2032
2036
  * See https://developers.google.com/maps/documentation/javascript/marker-clustering
2037
+ *
2038
+ * @deprecated This component is using a deprecated clustering implementation. Use the
2039
+ * `map-marker-clusterer` component instead.
2040
+ * @breaking-change 21.0.0
2041
+ *
2033
2042
  */
2034
- class MapMarkerClusterer {
2043
+ class DeprecatedMapMarkerClusterer {
2035
2044
  set averageCenter(averageCenter) {
2036
2045
  this._averageCenter = averageCenter;
2037
2046
  }
@@ -2365,16 +2374,15 @@ class MapMarkerClusterer {
2365
2374
  }
2366
2375
  }
2367
2376
  }
2368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapMarkerClusterer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2369
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapMarkerClusterer, isStandalone: true, selector: "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: '<ng-content/>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: DeprecatedMapMarkerClusterer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.10", 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: '<ng-content/>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2370
2379
  }
2371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapMarkerClusterer, decorators: [{
2380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: DeprecatedMapMarkerClusterer, decorators: [{
2372
2381
  type: Component,
2373
2382
  args: [{
2374
- selector: 'map-marker-clusterer',
2383
+ selector: 'deprecated-map-marker-clusterer',
2375
2384
  exportAs: 'mapMarkerClusterer',
2376
2385
  changeDetection: ChangeDetectionStrategy.OnPush,
2377
- standalone: true,
2378
2386
  template: '<ng-content/>',
2379
2387
  encapsulation: ViewEncapsulation.None,
2380
2388
  }]
@@ -2601,15 +2609,14 @@ class MapPolygon {
2601
2609
  }
2602
2610
  }
2603
2611
  }
2604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapPolygon, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2605
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
2612
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapPolygon, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2613
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
2606
2614
  }
2607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapPolygon, decorators: [{
2615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapPolygon, decorators: [{
2608
2616
  type: Directive,
2609
2617
  args: [{
2610
2618
  selector: 'map-polygon',
2611
2619
  exportAs: 'mapPolygon',
2612
- standalone: true,
2613
2620
  }]
2614
2621
  }], ctorParameters: () => [], propDecorators: { options: [{
2615
2622
  type: Input
@@ -2806,15 +2813,14 @@ class MapPolyline {
2806
2813
  }
2807
2814
  }
2808
2815
  }
2809
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapPolyline, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2810
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
2816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapPolyline, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2817
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
2811
2818
  }
2812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapPolyline, decorators: [{
2819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapPolyline, decorators: [{
2813
2820
  type: Directive,
2814
2821
  args: [{
2815
2822
  selector: 'map-polyline',
2816
2823
  exportAs: 'mapPolyline',
2817
- standalone: true,
2818
2824
  }]
2819
2825
  }], ctorParameters: () => [], propDecorators: { options: [{
2820
2826
  type: Input
@@ -3029,15 +3035,14 @@ class MapRectangle {
3029
3035
  }
3030
3036
  }
3031
3037
  }
3032
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapRectangle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3033
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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 }); }
3038
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapRectangle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3039
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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 }); }
3034
3040
  }
3035
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapRectangle, decorators: [{
3041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapRectangle, decorators: [{
3036
3042
  type: Directive,
3037
3043
  args: [{
3038
3044
  selector: 'map-rectangle',
3039
3045
  exportAs: 'mapRectangle',
3040
- standalone: true,
3041
3046
  }]
3042
3047
  }], ctorParameters: () => [], propDecorators: { options: [{
3043
3048
  type: Input
@@ -3144,15 +3149,14 @@ class MapTrafficLayer {
3144
3149
  'Please wait for the Traffic Layer to load before trying to interact with it.');
3145
3150
  }
3146
3151
  }
3147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapTrafficLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3148
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapTrafficLayer, isStandalone: true, selector: "map-traffic-layer", inputs: { autoRefresh: "autoRefresh" }, outputs: { trafficLayerInitialized: "trafficLayerInitialized" }, exportAs: ["mapTrafficLayer"], ngImport: i0 }); }
3152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapTrafficLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3153
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapTrafficLayer, isStandalone: true, selector: "map-traffic-layer", inputs: { autoRefresh: "autoRefresh" }, outputs: { trafficLayerInitialized: "trafficLayerInitialized" }, exportAs: ["mapTrafficLayer"], ngImport: i0 }); }
3149
3154
  }
3150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapTrafficLayer, decorators: [{
3155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapTrafficLayer, decorators: [{
3151
3156
  type: Directive,
3152
3157
  args: [{
3153
3158
  selector: 'map-traffic-layer',
3154
3159
  exportAs: 'mapTrafficLayer',
3155
- standalone: true,
3156
3160
  }]
3157
3161
  }], ctorParameters: () => [], propDecorators: { autoRefresh: [{
3158
3162
  type: Input
@@ -3204,15 +3208,14 @@ class MapTransitLayer {
3204
3208
  'Please wait for the Transit Layer to load before trying to interact with it.');
3205
3209
  }
3206
3210
  }
3207
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapTransitLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3208
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapTransitLayer, isStandalone: true, selector: "map-transit-layer", outputs: { transitLayerInitialized: "transitLayerInitialized" }, exportAs: ["mapTransitLayer"], ngImport: i0 }); }
3211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapTransitLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3212
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapTransitLayer, isStandalone: true, selector: "map-transit-layer", outputs: { transitLayerInitialized: "transitLayerInitialized" }, exportAs: ["mapTransitLayer"], ngImport: i0 }); }
3209
3213
  }
3210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapTransitLayer, decorators: [{
3214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapTransitLayer, decorators: [{
3211
3215
  type: Directive,
3212
3216
  args: [{
3213
3217
  selector: 'map-transit-layer',
3214
3218
  exportAs: 'mapTransitLayer',
3215
- standalone: true,
3216
3219
  }]
3217
3220
  }], propDecorators: { transitLayerInitialized: [{
3218
3221
  type: Output
@@ -3335,15 +3338,14 @@ class MapHeatmapLayer {
3335
3338
  }
3336
3339
  }
3337
3340
  }
3338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapHeatmapLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3339
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MapHeatmapLayer, isStandalone: true, selector: "map-heatmap-layer", inputs: { data: "data", options: "options" }, outputs: { heatmapInitialized: "heatmapInitialized" }, exportAs: ["mapHeatmapLayer"], usesOnChanges: true, ngImport: i0 }); }
3341
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapHeatmapLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3342
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: MapHeatmapLayer, isStandalone: true, selector: "map-heatmap-layer", inputs: { data: "data", options: "options" }, outputs: { heatmapInitialized: "heatmapInitialized" }, exportAs: ["mapHeatmapLayer"], usesOnChanges: true, ngImport: i0 }); }
3340
3343
  }
3341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapHeatmapLayer, decorators: [{
3344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapHeatmapLayer, decorators: [{
3342
3345
  type: Directive,
3343
3346
  args: [{
3344
3347
  selector: 'map-heatmap-layer',
3345
3348
  exportAs: 'mapHeatmapLayer',
3346
- standalone: true,
3347
3349
  }]
3348
3350
  }], ctorParameters: () => [], propDecorators: { data: [{
3349
3351
  type: Input
@@ -3521,6 +3523,12 @@ class MapAdvancedMarker {
3521
3523
  this._assertInitialized();
3522
3524
  return this.advancedMarker;
3523
3525
  }
3526
+ /** Returns a promise that resolves when the marker has been initialized. */
3527
+ _resolveMarker() {
3528
+ return this.advancedMarker
3529
+ ? Promise.resolve(this.advancedMarker)
3530
+ : this.markerInitialized.pipe(take(1)).toPromise();
3531
+ }
3524
3532
  /** Creates a combined options object using the passed-in options and the individual inputs. */
3525
3533
  _combineOptions() {
3526
3534
  const options = this._options || DEFAULT_MARKER_OPTIONS;
@@ -3543,15 +3551,25 @@ class MapAdvancedMarker {
3543
3551
  }
3544
3552
  }
3545
3553
  }
3546
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapAdvancedMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3547
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", 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" }, exportAs: ["mapAdvancedMarker"], usesOnChanges: true, ngImport: i0 }); }
3554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapAdvancedMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3555
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", 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: [
3556
+ {
3557
+ provide: MAP_MARKER,
3558
+ useExisting: MapAdvancedMarker,
3559
+ },
3560
+ ], exportAs: ["mapAdvancedMarker"], usesOnChanges: true, ngImport: i0 }); }
3548
3561
  }
3549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapAdvancedMarker, decorators: [{
3562
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapAdvancedMarker, decorators: [{
3550
3563
  type: Directive,
3551
3564
  args: [{
3552
3565
  selector: 'map-advanced-marker',
3553
3566
  exportAs: 'mapAdvancedMarker',
3554
- standalone: true,
3567
+ providers: [
3568
+ {
3569
+ provide: MAP_MARKER,
3570
+ useExisting: MapAdvancedMarker,
3571
+ },
3572
+ ],
3555
3573
  }]
3556
3574
  }], ctorParameters: () => [], propDecorators: { title: [{
3557
3575
  type: Input
@@ -3587,6 +3605,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3",
3587
3605
  type: Output
3588
3606
  }] } });
3589
3607
 
3608
+ // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
3609
+ /**
3610
+ * Angular component for implementing a Google Maps Marker Clusterer.
3611
+ *
3612
+ * See https://developers.google.com/maps/documentation/javascript/marker-clustering
3613
+ */
3614
+ class MapMarkerClusterer {
3615
+ constructor() {
3616
+ this._googleMap = inject(GoogleMap);
3617
+ this._ngZone = inject(NgZone);
3618
+ this._currentMarkers = new Set();
3619
+ this._closestMapEventManager = new MapEventManager(this._ngZone);
3620
+ this._markersSubscription = Subscription.EMPTY;
3621
+ /** Whether the clusterer is allowed to be initialized. */
3622
+ this._canInitialize = this._googleMap._isBrowser;
3623
+ /** Emits when clustering has started. */
3624
+ this.clusteringbegin = this._closestMapEventManager.getLazyEmitter('clusteringbegin');
3625
+ /** Emits when clustering is done. */
3626
+ this.clusteringend = this._closestMapEventManager.getLazyEmitter('clusteringend');
3627
+ /** Emits when a cluster has been clicked. */
3628
+ this.clusterClick = new EventEmitter();
3629
+ /** Event emitted when the marker clusterer is initialized. */
3630
+ this.markerClustererInitialized = new EventEmitter();
3631
+ }
3632
+ async ngOnInit() {
3633
+ if (this._canInitialize) {
3634
+ await this._createCluster();
3635
+ // The `clusteringbegin` and `clusteringend` events are
3636
+ // emitted on the map so that's why set it as the target.
3637
+ this._closestMapEventManager.setTarget(this._googleMap.googleMap);
3638
+ }
3639
+ }
3640
+ async ngOnChanges(changes) {
3641
+ const change = changes['renderer'] || changes['algorithm'];
3642
+ // Since the options are set in the constructor, we have to recreate the cluster if they change.
3643
+ if (this.markerClusterer && change && !change.isFirstChange()) {
3644
+ await this._createCluster();
3645
+ }
3646
+ }
3647
+ ngOnDestroy() {
3648
+ this._markersSubscription.unsubscribe();
3649
+ this._closestMapEventManager.destroy();
3650
+ this._destroyCluster();
3651
+ }
3652
+ async _createCluster() {
3653
+ if (!markerClusterer?.MarkerClusterer && (typeof ngDevMode === 'undefined' || ngDevMode)) {
3654
+ throw Error('MarkerClusterer class not found, cannot construct a marker cluster. ' +
3655
+ 'Please install the MarkerClusterer library: ' +
3656
+ 'https://github.com/googlemaps/js-markerclusterer');
3657
+ }
3658
+ const map = await this._googleMap._resolveMap();
3659
+ this._destroyCluster();
3660
+ // Create the object outside the zone so its events don't trigger change detection.
3661
+ // We'll bring it back in inside the `MapEventManager` only for the events that the
3662
+ // user has subscribed to.
3663
+ this._ngZone.runOutsideAngular(() => {
3664
+ this.markerClusterer = new markerClusterer.MarkerClusterer({
3665
+ map,
3666
+ renderer: this.renderer,
3667
+ algorithm: this.algorithm,
3668
+ onClusterClick: (event, cluster, map) => {
3669
+ if (this.clusterClick.observers.length) {
3670
+ this._ngZone.run(() => this.clusterClick.emit(cluster));
3671
+ }
3672
+ else {
3673
+ markerClusterer.defaultOnClusterClickHandler(event, cluster, map);
3674
+ }
3675
+ },
3676
+ });
3677
+ this.markerClustererInitialized.emit(this.markerClusterer);
3678
+ });
3679
+ await this._watchForMarkerChanges();
3680
+ }
3681
+ async _watchForMarkerChanges() {
3682
+ this._assertInitialized();
3683
+ const initialMarkers = [];
3684
+ const markers = await this._getInternalMarkers(this._markers.toArray());
3685
+ for (const marker of markers) {
3686
+ this._currentMarkers.add(marker);
3687
+ initialMarkers.push(marker);
3688
+ }
3689
+ this.markerClusterer.addMarkers(initialMarkers);
3690
+ this._markersSubscription.unsubscribe();
3691
+ this._markersSubscription = this._markers.changes.subscribe(async (markerComponents) => {
3692
+ this._assertInitialized();
3693
+ const newMarkers = new Set(await this._getInternalMarkers(markerComponents));
3694
+ const markersToAdd = [];
3695
+ const markersToRemove = [];
3696
+ for (const marker of Array.from(newMarkers)) {
3697
+ if (!this._currentMarkers.has(marker)) {
3698
+ this._currentMarkers.add(marker);
3699
+ markersToAdd.push(marker);
3700
+ }
3701
+ }
3702
+ for (const marker of Array.from(this._currentMarkers)) {
3703
+ if (!newMarkers.has(marker)) {
3704
+ markersToRemove.push(marker);
3705
+ }
3706
+ }
3707
+ this.markerClusterer.addMarkers(markersToAdd, true);
3708
+ this.markerClusterer.removeMarkers(markersToRemove, true);
3709
+ this.markerClusterer.render();
3710
+ for (const marker of markersToRemove) {
3711
+ this._currentMarkers.delete(marker);
3712
+ }
3713
+ });
3714
+ }
3715
+ _destroyCluster() {
3716
+ // TODO(crisbeto): the naming here seems odd, but the `MarkerCluster` method isn't
3717
+ // exposed. All this method seems to do at the time of writing is to call into `reset`.
3718
+ // See: https://github.com/googlemaps/js-markerclusterer/blob/main/src/markerclusterer.ts#L205
3719
+ this.markerClusterer?.onRemove();
3720
+ this.markerClusterer = undefined;
3721
+ }
3722
+ _getInternalMarkers(markers) {
3723
+ return Promise.all(markers.map(marker => marker._resolveMarker()));
3724
+ }
3725
+ _assertInitialized() {
3726
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
3727
+ if (!this._googleMap.googleMap) {
3728
+ throw Error('Cannot access Google Map information before the API has been initialized. ' +
3729
+ 'Please wait for the API to load before trying to interact with it.');
3730
+ }
3731
+ if (!this.markerClusterer) {
3732
+ throw Error('Cannot interact with a MarkerClusterer before it has been initialized. ' +
3733
+ 'Please wait for the MarkerClusterer to load before trying to interact with it.');
3734
+ }
3735
+ }
3736
+ }
3737
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapMarkerClusterer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3738
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.10", 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: '<ng-content/>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3739
+ }
3740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapMarkerClusterer, decorators: [{
3741
+ type: Component,
3742
+ args: [{
3743
+ selector: 'map-marker-clusterer',
3744
+ exportAs: 'mapMarkerClusterer',
3745
+ changeDetection: ChangeDetectionStrategy.OnPush,
3746
+ template: '<ng-content/>',
3747
+ encapsulation: ViewEncapsulation.None,
3748
+ }]
3749
+ }], propDecorators: { renderer: [{
3750
+ type: Input
3751
+ }], algorithm: [{
3752
+ type: Input
3753
+ }], clusteringbegin: [{
3754
+ type: Output
3755
+ }], clusteringend: [{
3756
+ type: Output
3757
+ }], clusterClick: [{
3758
+ type: Output
3759
+ }], markerClustererInitialized: [{
3760
+ type: Output
3761
+ }], _markers: [{
3762
+ type: ContentChildren,
3763
+ args: [MAP_MARKER, { descendants: true }]
3764
+ }] } });
3765
+
3590
3766
  const COMPONENTS = [
3591
3767
  GoogleMap,
3592
3768
  MapBaseLayer,
@@ -3599,16 +3775,17 @@ const COMPONENTS = [
3599
3775
  MapKmlLayer,
3600
3776
  MapMarker,
3601
3777
  MapAdvancedMarker,
3602
- MapMarkerClusterer,
3778
+ DeprecatedMapMarkerClusterer,
3603
3779
  MapPolygon,
3604
3780
  MapPolyline,
3605
3781
  MapRectangle,
3606
3782
  MapTrafficLayer,
3607
3783
  MapTransitLayer,
3784
+ MapMarkerClusterer,
3608
3785
  ];
3609
3786
  class GoogleMapsModule {
3610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMapsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3611
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMapsModule, imports: [GoogleMap,
3787
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMapsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3788
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMapsModule, imports: [GoogleMap,
3612
3789
  MapBaseLayer,
3613
3790
  MapBicyclingLayer,
3614
3791
  MapCircle,
@@ -3619,12 +3796,13 @@ class GoogleMapsModule {
3619
3796
  MapKmlLayer,
3620
3797
  MapMarker,
3621
3798
  MapAdvancedMarker,
3622
- MapMarkerClusterer,
3799
+ DeprecatedMapMarkerClusterer,
3623
3800
  MapPolygon,
3624
3801
  MapPolyline,
3625
3802
  MapRectangle,
3626
3803
  MapTrafficLayer,
3627
- MapTransitLayer], exports: [GoogleMap,
3804
+ MapTransitLayer,
3805
+ MapMarkerClusterer], exports: [GoogleMap,
3628
3806
  MapBaseLayer,
3629
3807
  MapBicyclingLayer,
3630
3808
  MapCircle,
@@ -3635,15 +3813,16 @@ class GoogleMapsModule {
3635
3813
  MapKmlLayer,
3636
3814
  MapMarker,
3637
3815
  MapAdvancedMarker,
3638
- MapMarkerClusterer,
3816
+ DeprecatedMapMarkerClusterer,
3639
3817
  MapPolygon,
3640
3818
  MapPolyline,
3641
3819
  MapRectangle,
3642
3820
  MapTrafficLayer,
3643
- MapTransitLayer] }); }
3644
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMapsModule }); }
3821
+ MapTransitLayer,
3822
+ MapMarkerClusterer] }); }
3823
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMapsModule }); }
3645
3824
  }
3646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: GoogleMapsModule, decorators: [{
3825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: GoogleMapsModule, decorators: [{
3647
3826
  type: NgModule,
3648
3827
  args: [{
3649
3828
  imports: COMPONENTS,
@@ -3693,10 +3872,10 @@ class MapDirectionsService {
3693
3872
  }
3694
3873
  return Promise.resolve(this._directionsService);
3695
3874
  }
3696
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapDirectionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3697
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapDirectionsService, providedIn: 'root' }); }
3875
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapDirectionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3876
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapDirectionsService, providedIn: 'root' }); }
3698
3877
  }
3699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapDirectionsService, decorators: [{
3878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapDirectionsService, decorators: [{
3700
3879
  type: Injectable,
3701
3880
  args: [{ providedIn: 'root' }]
3702
3881
  }], ctorParameters: () => [] });
@@ -3739,10 +3918,10 @@ class MapGeocoder {
3739
3918
  }
3740
3919
  return Promise.resolve(this._geocoder);
3741
3920
  }
3742
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapGeocoder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3743
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapGeocoder, providedIn: 'root' }); }
3921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapGeocoder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3922
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapGeocoder, providedIn: 'root' }); }
3744
3923
  }
3745
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MapGeocoder, decorators: [{
3924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MapGeocoder, decorators: [{
3746
3925
  type: Injectable,
3747
3926
  args: [{ providedIn: 'root' }]
3748
3927
  }], ctorParameters: () => [] });
@@ -3751,5 +3930,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3",
3751
3930
  * Generated bundle index. Do not edit.
3752
3931
  */
3753
3932
 
3754
- export { GoogleMap, GoogleMapsModule, MapAdvancedMarker, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapDirectionsService, MapEventManager, MapGeocoder, MapGroundOverlay, MapHeatmapLayer, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer };
3933
+ export { DeprecatedMapMarkerClusterer, GoogleMap, GoogleMapsModule, MapAdvancedMarker, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapDirectionsService, MapEventManager, MapGeocoder, MapGroundOverlay, MapHeatmapLayer, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer };
3755
3934
  //# sourceMappingURL=google-maps.mjs.map