@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.
package/fesm2022/google-maps.mjs
CHANGED
|
@@ -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.
|
|
452
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
556
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
612
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
845
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
1006
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
1178
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
1398
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
1571
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
1957
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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
|
-
|
|
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
|
|
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.
|
|
2369
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
2605
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
2810
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3033
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3148
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3208
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3339
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3547
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
3611
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.
|
|
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
|
-
|
|
3799
|
+
DeprecatedMapMarkerClusterer,
|
|
3623
3800
|
MapPolygon,
|
|
3624
3801
|
MapPolyline,
|
|
3625
3802
|
MapRectangle,
|
|
3626
3803
|
MapTrafficLayer,
|
|
3627
|
-
MapTransitLayer
|
|
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
|
-
|
|
3816
|
+
DeprecatedMapMarkerClusterer,
|
|
3639
3817
|
MapPolygon,
|
|
3640
3818
|
MapPolyline,
|
|
3641
3819
|
MapRectangle,
|
|
3642
3820
|
MapTrafficLayer,
|
|
3643
|
-
MapTransitLayer
|
|
3644
|
-
|
|
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.
|
|
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.
|
|
3697
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.
|
|
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.
|
|
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.
|
|
3743
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.
|
|
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.
|
|
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
|