@angular/google-maps 19.0.0-next.8 → 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/index.d.ts
CHANGED
|
@@ -11,6 +11,48 @@ import { OnInit } from '@angular/core';
|
|
|
11
11
|
import { QueryList } from '@angular/core';
|
|
12
12
|
import { SimpleChanges } from '@angular/core';
|
|
13
13
|
|
|
14
|
+
declare interface Algorithm_2 {
|
|
15
|
+
/**
|
|
16
|
+
* Calculates an array of {@link Cluster}.
|
|
17
|
+
*/
|
|
18
|
+
calculate: ({ markers, map }: AlgorithmInput) => AlgorithmOutput;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare interface AlgorithmInput {
|
|
22
|
+
/**
|
|
23
|
+
* The map containing the markers and clusters.
|
|
24
|
+
*/
|
|
25
|
+
map: google.maps.Map;
|
|
26
|
+
/**
|
|
27
|
+
* An array of markers to be clustered.
|
|
28
|
+
*
|
|
29
|
+
* There are some specific edge cases to be aware of including the following:
|
|
30
|
+
* * Markers that are not visible.
|
|
31
|
+
*/
|
|
32
|
+
markers: Marker[];
|
|
33
|
+
/**
|
|
34
|
+
* The `mapCanvasProjection` enables easy conversion from lat/lng to pixel.
|
|
35
|
+
*
|
|
36
|
+
* @see [MapCanvasProjection](https://developers.google.com/maps/documentation/javascript/reference/overlay-view#MapCanvasProjection)
|
|
37
|
+
*/
|
|
38
|
+
mapCanvasProjection: google.maps.MapCanvasProjection;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
declare interface AlgorithmOptions {
|
|
42
|
+
maxZoom?: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
declare interface AlgorithmOutput {
|
|
46
|
+
/**
|
|
47
|
+
* The clusters returned based upon the {@link AlgorithmInput}.
|
|
48
|
+
*/
|
|
49
|
+
clusters: Cluster_2[];
|
|
50
|
+
/**
|
|
51
|
+
* A boolean flag indicating that the clusters have not changed.
|
|
52
|
+
*/
|
|
53
|
+
changed?: boolean;
|
|
54
|
+
}
|
|
55
|
+
|
|
14
56
|
/**
|
|
15
57
|
* Function type alias for determining the aria label on a Google Maps marker cluster.
|
|
16
58
|
*
|
|
@@ -38,6 +80,27 @@ declare class Cluster {
|
|
|
38
80
|
updateIcon(): void;
|
|
39
81
|
}
|
|
40
82
|
|
|
83
|
+
declare class Cluster_2 {
|
|
84
|
+
marker?: Marker;
|
|
85
|
+
readonly markers?: Marker[];
|
|
86
|
+
protected _position: google.maps.LatLng;
|
|
87
|
+
constructor({ markers, position }: ClusterOptions);
|
|
88
|
+
get bounds(): google.maps.LatLngBounds | undefined;
|
|
89
|
+
get position(): google.maps.LatLng;
|
|
90
|
+
/**
|
|
91
|
+
* Get the count of **visible** markers.
|
|
92
|
+
*/
|
|
93
|
+
get count(): number;
|
|
94
|
+
/**
|
|
95
|
+
* Add a marker to the cluster.
|
|
96
|
+
*/
|
|
97
|
+
push(marker: Marker): void;
|
|
98
|
+
/**
|
|
99
|
+
* Cleanup references and remove marker from map.
|
|
100
|
+
*/
|
|
101
|
+
delete(): void;
|
|
102
|
+
}
|
|
103
|
+
|
|
41
104
|
/**
|
|
42
105
|
* Info interface for a marker cluster icon.
|
|
43
106
|
*
|
|
@@ -75,6 +138,27 @@ export declare interface ClusterIconStyle {
|
|
|
75
138
|
width: number;
|
|
76
139
|
}
|
|
77
140
|
|
|
141
|
+
declare interface ClusterOptions {
|
|
142
|
+
position?: google.maps.LatLng | google.maps.LatLngLiteral;
|
|
143
|
+
markers?: Marker[];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
declare class ClusterStats {
|
|
147
|
+
readonly markers: {
|
|
148
|
+
sum: number;
|
|
149
|
+
};
|
|
150
|
+
readonly clusters: {
|
|
151
|
+
count: number;
|
|
152
|
+
markers: {
|
|
153
|
+
mean: number;
|
|
154
|
+
sum: number;
|
|
155
|
+
min: number;
|
|
156
|
+
max: number;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
constructor(markers: Marker[], clusters: Cluster_2[]);
|
|
160
|
+
}
|
|
161
|
+
|
|
78
162
|
/** Arbitrary default height for the map element */
|
|
79
163
|
declare const DEFAULT_HEIGHT = "500px";
|
|
80
164
|
|
|
@@ -106,6 +190,116 @@ declare const DEFAULT_OPTIONS: google.maps.MapOptions;
|
|
|
106
190
|
/** Arbitrary default width for the map element */
|
|
107
191
|
declare const DEFAULT_WIDTH = "500px";
|
|
108
192
|
|
|
193
|
+
/**
|
|
194
|
+
* Angular component for implementing a Google Maps Marker Clusterer.
|
|
195
|
+
* See https://developers.google.com/maps/documentation/javascript/marker-clustering
|
|
196
|
+
*
|
|
197
|
+
* @deprecated This component is using a deprecated clustering implementation. Use the
|
|
198
|
+
* `map-marker-clusterer` component instead.
|
|
199
|
+
* @breaking-change 21.0.0
|
|
200
|
+
*
|
|
201
|
+
*/
|
|
202
|
+
export declare class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, OnChanges, OnDestroy {
|
|
203
|
+
private readonly _googleMap;
|
|
204
|
+
private readonly _ngZone;
|
|
205
|
+
private readonly _currentMarkers;
|
|
206
|
+
private readonly _eventManager;
|
|
207
|
+
private readonly _destroy;
|
|
208
|
+
/** Whether the clusterer is allowed to be initialized. */
|
|
209
|
+
private readonly _canInitialize;
|
|
210
|
+
ariaLabelFn: AriaLabelFn;
|
|
211
|
+
set averageCenter(averageCenter: boolean);
|
|
212
|
+
private _averageCenter;
|
|
213
|
+
batchSize?: number;
|
|
214
|
+
set batchSizeIE(batchSizeIE: number);
|
|
215
|
+
private _batchSizeIE;
|
|
216
|
+
set calculator(calculator: Calculator);
|
|
217
|
+
private _calculator;
|
|
218
|
+
set clusterClass(clusterClass: string);
|
|
219
|
+
private _clusterClass;
|
|
220
|
+
set enableRetinaIcons(enableRetinaIcons: boolean);
|
|
221
|
+
private _enableRetinaIcons;
|
|
222
|
+
set gridSize(gridSize: number);
|
|
223
|
+
private _gridSize;
|
|
224
|
+
set ignoreHidden(ignoreHidden: boolean);
|
|
225
|
+
private _ignoreHidden;
|
|
226
|
+
set imageExtension(imageExtension: string);
|
|
227
|
+
private _imageExtension;
|
|
228
|
+
set imagePath(imagePath: string);
|
|
229
|
+
private _imagePath;
|
|
230
|
+
set imageSizes(imageSizes: number[]);
|
|
231
|
+
private _imageSizes;
|
|
232
|
+
set maxZoom(maxZoom: number);
|
|
233
|
+
private _maxZoom;
|
|
234
|
+
set minimumClusterSize(minimumClusterSize: number);
|
|
235
|
+
private _minimumClusterSize;
|
|
236
|
+
set styles(styles: ClusterIconStyle[]);
|
|
237
|
+
private _styles;
|
|
238
|
+
set title(title: string);
|
|
239
|
+
private _title;
|
|
240
|
+
set zIndex(zIndex: number);
|
|
241
|
+
private _zIndex;
|
|
242
|
+
set zoomOnClick(zoomOnClick: boolean);
|
|
243
|
+
private _zoomOnClick;
|
|
244
|
+
set options(options: MarkerClustererOptions);
|
|
245
|
+
private _options;
|
|
246
|
+
/**
|
|
247
|
+
* See
|
|
248
|
+
* googlemaps.github.io/v3-utility-library/modules/
|
|
249
|
+
* _google_markerclustererplus.html#clusteringbegin
|
|
250
|
+
*/
|
|
251
|
+
readonly clusteringbegin: Observable<void>;
|
|
252
|
+
/**
|
|
253
|
+
* See
|
|
254
|
+
* googlemaps.github.io/v3-utility-library/modules/_google_markerclustererplus.html#clusteringend
|
|
255
|
+
*/
|
|
256
|
+
readonly clusteringend: Observable<void>;
|
|
257
|
+
/** Emits when a cluster has been clicked. */
|
|
258
|
+
readonly clusterClick: Observable<Cluster>;
|
|
259
|
+
_markers: QueryList<MapMarker>;
|
|
260
|
+
/**
|
|
261
|
+
* The underlying MarkerClusterer object.
|
|
262
|
+
*
|
|
263
|
+
* See
|
|
264
|
+
* googlemaps.github.io/v3-utility-library/classes/
|
|
265
|
+
* _google_markerclustererplus.markerclusterer.html
|
|
266
|
+
*/
|
|
267
|
+
markerClusterer?: MarkerClusterer;
|
|
268
|
+
/** Event emitted when the clusterer is initialized. */
|
|
269
|
+
readonly markerClustererInitialized: EventEmitter<MarkerClusterer>;
|
|
270
|
+
constructor(...args: unknown[]);
|
|
271
|
+
ngOnInit(): void;
|
|
272
|
+
ngAfterContentInit(): void;
|
|
273
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
274
|
+
ngOnDestroy(): void;
|
|
275
|
+
fitMapToMarkers(padding: number | google.maps.Padding): void;
|
|
276
|
+
getAverageCenter(): boolean;
|
|
277
|
+
getBatchSizeIE(): number;
|
|
278
|
+
getCalculator(): Calculator;
|
|
279
|
+
getClusterClass(): string;
|
|
280
|
+
getClusters(): Cluster[];
|
|
281
|
+
getEnableRetinaIcons(): boolean;
|
|
282
|
+
getGridSize(): number;
|
|
283
|
+
getIgnoreHidden(): boolean;
|
|
284
|
+
getImageExtension(): string;
|
|
285
|
+
getImagePath(): string;
|
|
286
|
+
getImageSizes(): number[];
|
|
287
|
+
getMaxZoom(): number;
|
|
288
|
+
getMinimumClusterSize(): number;
|
|
289
|
+
getStyles(): ClusterIconStyle[];
|
|
290
|
+
getTitle(): string;
|
|
291
|
+
getTotalClusters(): number;
|
|
292
|
+
getTotalMarkers(): number;
|
|
293
|
+
getZIndex(): number;
|
|
294
|
+
getZoomOnClick(): boolean;
|
|
295
|
+
private _combineOptions;
|
|
296
|
+
private _watchForMarkerChanges;
|
|
297
|
+
private _getInternalMarkers;
|
|
298
|
+
private _assertInitialized;
|
|
299
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DeprecatedMapMarkerClusterer, never>;
|
|
300
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DeprecatedMapMarkerClusterer, "deprecated-map-marker-clusterer", ["mapMarkerClusterer"], { "ariaLabelFn": { "alias": "ariaLabelFn"; "required": false; }; "averageCenter": { "alias": "averageCenter"; "required": false; }; "batchSize": { "alias": "batchSize"; "required": false; }; "batchSizeIE": { "alias": "batchSizeIE"; "required": false; }; "calculator": { "alias": "calculator"; "required": false; }; "clusterClass": { "alias": "clusterClass"; "required": false; }; "enableRetinaIcons": { "alias": "enableRetinaIcons"; "required": false; }; "gridSize": { "alias": "gridSize"; "required": false; }; "ignoreHidden": { "alias": "ignoreHidden"; "required": false; }; "imageExtension": { "alias": "imageExtension"; "required": false; }; "imagePath": { "alias": "imagePath"; "required": false; }; "imageSizes": { "alias": "imageSizes"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "minimumClusterSize": { "alias": "minimumClusterSize"; "required": false; }; "styles": { "alias": "styles"; "required": false; }; "title": { "alias": "title"; "required": false; }; "zIndex": { "alias": "zIndex"; "required": false; }; "zoomOnClick": { "alias": "zoomOnClick"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "clusteringbegin": "clusteringbegin"; "clusteringend": "clusteringend"; "clusterClick": "clusterClick"; "markerClustererInitialized": "markerClustererInitialized"; }, ["_markers"], ["*"], true, never>;
|
|
301
|
+
}
|
|
302
|
+
|
|
109
303
|
/**
|
|
110
304
|
* Angular component that renders a Google Map via the Google Maps JavaScript
|
|
111
305
|
* API.
|
|
@@ -345,7 +539,7 @@ export declare class GoogleMap implements OnChanges, OnInit, OnDestroy {
|
|
|
345
539
|
|
|
346
540
|
export declare class GoogleMapsModule {
|
|
347
541
|
static ɵfac: i0.ɵɵFactoryDeclaration<GoogleMapsModule, never>;
|
|
348
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<GoogleMapsModule, never, [typeof i1.GoogleMap, typeof i2.MapBaseLayer, typeof i3.MapBicyclingLayer, typeof i4.MapCircle, typeof i5.MapDirectionsRenderer, typeof i6.MapGroundOverlay, typeof i7.MapHeatmapLayer, typeof i8.MapInfoWindow, typeof i9.MapKmlLayer, typeof i10.MapMarker, typeof i11.MapAdvancedMarker, typeof i12.
|
|
542
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<GoogleMapsModule, never, [typeof i1.GoogleMap, typeof i2.MapBaseLayer, typeof i3.MapBicyclingLayer, typeof i4.MapCircle, typeof i5.MapDirectionsRenderer, typeof i6.MapGroundOverlay, typeof i7.MapHeatmapLayer, typeof i8.MapInfoWindow, typeof i9.MapKmlLayer, typeof i10.MapMarker, typeof i11.MapAdvancedMarker, typeof i12.DeprecatedMapMarkerClusterer, typeof i13.MapPolygon, typeof i14.MapPolyline, typeof i15.MapRectangle, typeof i16.MapTrafficLayer, typeof i17.MapTransitLayer, typeof i18.MapMarkerClusterer], [typeof i1.GoogleMap, typeof i2.MapBaseLayer, typeof i3.MapBicyclingLayer, typeof i4.MapCircle, typeof i5.MapDirectionsRenderer, typeof i6.MapGroundOverlay, typeof i7.MapHeatmapLayer, typeof i8.MapInfoWindow, typeof i9.MapKmlLayer, typeof i10.MapMarker, typeof i11.MapAdvancedMarker, typeof i12.DeprecatedMapMarkerClusterer, typeof i13.MapPolygon, typeof i14.MapPolyline, typeof i15.MapRectangle, typeof i16.MapTrafficLayer, typeof i17.MapTransitLayer, typeof i18.MapMarkerClusterer]>;
|
|
349
543
|
static ɵinj: i0.ɵɵInjectorDeclaration<GoogleMapsModule>;
|
|
350
544
|
}
|
|
351
545
|
|
|
@@ -377,7 +571,7 @@ declare namespace i11 {
|
|
|
377
571
|
|
|
378
572
|
declare namespace i12 {
|
|
379
573
|
export {
|
|
380
|
-
|
|
574
|
+
DeprecatedMapMarkerClusterer
|
|
381
575
|
}
|
|
382
576
|
}
|
|
383
577
|
|
|
@@ -411,6 +605,12 @@ declare namespace i17 {
|
|
|
411
605
|
}
|
|
412
606
|
}
|
|
413
607
|
|
|
608
|
+
declare namespace i18 {
|
|
609
|
+
export {
|
|
610
|
+
MapMarkerClusterer
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
414
614
|
declare namespace i2 {
|
|
415
615
|
export {
|
|
416
616
|
MapBaseLayer
|
|
@@ -465,7 +665,7 @@ declare namespace i9 {
|
|
|
465
665
|
*
|
|
466
666
|
* See developers.google.com/maps/documentation/javascript/reference/marker
|
|
467
667
|
*/
|
|
468
|
-
export declare class MapAdvancedMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint {
|
|
668
|
+
export declare class MapAdvancedMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint, MarkerDirective {
|
|
469
669
|
private readonly _googleMap;
|
|
470
670
|
private _ngZone;
|
|
471
671
|
private _eventManager;
|
|
@@ -562,6 +762,8 @@ export declare class MapAdvancedMarker implements OnInit, OnChanges, OnDestroy,
|
|
|
562
762
|
ngOnChanges(changes: SimpleChanges): void;
|
|
563
763
|
ngOnDestroy(): void;
|
|
564
764
|
getAnchor(): google.maps.marker.AdvancedMarkerElement;
|
|
765
|
+
/** Returns a promise that resolves when the marker has been initialized. */
|
|
766
|
+
_resolveMarker(): Promise<google.maps.marker.AdvancedMarkerElement>;
|
|
565
767
|
/** Creates a combined options object using the passed-in options and the individual inputs. */
|
|
566
768
|
private _combineOptions;
|
|
567
769
|
/** Asserts that the map has been initialized. */
|
|
@@ -1166,7 +1368,7 @@ export declare class MapKmlLayer implements OnInit, OnDestroy {
|
|
|
1166
1368
|
*
|
|
1167
1369
|
* See developers.google.com/maps/documentation/javascript/reference/marker
|
|
1168
1370
|
*/
|
|
1169
|
-
export declare class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint {
|
|
1371
|
+
export declare class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint, MarkerDirective {
|
|
1170
1372
|
private readonly _googleMap;
|
|
1171
1373
|
private _ngZone;
|
|
1172
1374
|
private _eventManager;
|
|
@@ -1406,105 +1608,45 @@ export declare class MapMarker implements OnInit, OnChanges, OnDestroy, MapAncho
|
|
|
1406
1608
|
*
|
|
1407
1609
|
* See https://developers.google.com/maps/documentation/javascript/marker-clustering
|
|
1408
1610
|
*/
|
|
1409
|
-
export declare class MapMarkerClusterer implements OnInit,
|
|
1611
|
+
export declare class MapMarkerClusterer implements OnInit, OnChanges, OnDestroy {
|
|
1410
1612
|
private readonly _googleMap;
|
|
1411
1613
|
private readonly _ngZone;
|
|
1412
1614
|
private readonly _currentMarkers;
|
|
1413
|
-
private readonly
|
|
1414
|
-
private
|
|
1615
|
+
private readonly _closestMapEventManager;
|
|
1616
|
+
private _markersSubscription;
|
|
1415
1617
|
/** Whether the clusterer is allowed to be initialized. */
|
|
1416
1618
|
private readonly _canInitialize;
|
|
1417
|
-
ariaLabelFn: AriaLabelFn;
|
|
1418
|
-
set averageCenter(averageCenter: boolean);
|
|
1419
|
-
private _averageCenter;
|
|
1420
|
-
batchSize?: number;
|
|
1421
|
-
set batchSizeIE(batchSizeIE: number);
|
|
1422
|
-
private _batchSizeIE;
|
|
1423
|
-
set calculator(calculator: Calculator);
|
|
1424
|
-
private _calculator;
|
|
1425
|
-
set clusterClass(clusterClass: string);
|
|
1426
|
-
private _clusterClass;
|
|
1427
|
-
set enableRetinaIcons(enableRetinaIcons: boolean);
|
|
1428
|
-
private _enableRetinaIcons;
|
|
1429
|
-
set gridSize(gridSize: number);
|
|
1430
|
-
private _gridSize;
|
|
1431
|
-
set ignoreHidden(ignoreHidden: boolean);
|
|
1432
|
-
private _ignoreHidden;
|
|
1433
|
-
set imageExtension(imageExtension: string);
|
|
1434
|
-
private _imageExtension;
|
|
1435
|
-
set imagePath(imagePath: string);
|
|
1436
|
-
private _imagePath;
|
|
1437
|
-
set imageSizes(imageSizes: number[]);
|
|
1438
|
-
private _imageSizes;
|
|
1439
|
-
set maxZoom(maxZoom: number);
|
|
1440
|
-
private _maxZoom;
|
|
1441
|
-
set minimumClusterSize(minimumClusterSize: number);
|
|
1442
|
-
private _minimumClusterSize;
|
|
1443
|
-
set styles(styles: ClusterIconStyle[]);
|
|
1444
|
-
private _styles;
|
|
1445
|
-
set title(title: string);
|
|
1446
|
-
private _title;
|
|
1447
|
-
set zIndex(zIndex: number);
|
|
1448
|
-
private _zIndex;
|
|
1449
|
-
set zoomOnClick(zoomOnClick: boolean);
|
|
1450
|
-
private _zoomOnClick;
|
|
1451
|
-
set options(options: MarkerClustererOptions);
|
|
1452
|
-
private _options;
|
|
1453
1619
|
/**
|
|
1454
|
-
*
|
|
1455
|
-
* googlemaps.github.io/
|
|
1456
|
-
* _google_markerclustererplus.html#clusteringbegin
|
|
1620
|
+
* Used to customize how the marker cluster is rendered.
|
|
1621
|
+
* See https://googlemaps.github.io/js-markerclusterer/interfaces/Renderer.html.
|
|
1457
1622
|
*/
|
|
1458
|
-
|
|
1623
|
+
renderer: Renderer;
|
|
1459
1624
|
/**
|
|
1460
|
-
*
|
|
1461
|
-
* googlemaps.github.io/
|
|
1625
|
+
* Algorithm used to cluster the markers.
|
|
1626
|
+
* See https://googlemaps.github.io/js-markerclusterer/interfaces/Algorithm.html.
|
|
1462
1627
|
*/
|
|
1628
|
+
algorithm: Algorithm_2;
|
|
1629
|
+
/** Emits when clustering has started. */
|
|
1630
|
+
readonly clusteringbegin: Observable<void>;
|
|
1631
|
+
/** Emits when clustering is done. */
|
|
1463
1632
|
readonly clusteringend: Observable<void>;
|
|
1464
1633
|
/** Emits when a cluster has been clicked. */
|
|
1465
|
-
readonly clusterClick:
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
*/
|
|
1474
|
-
markerClusterer?: MarkerClusterer;
|
|
1475
|
-
/** Event emitted when the clusterer is initialized. */
|
|
1476
|
-
readonly markerClustererInitialized: EventEmitter<MarkerClusterer>;
|
|
1477
|
-
constructor(...args: unknown[]);
|
|
1478
|
-
ngOnInit(): void;
|
|
1479
|
-
ngAfterContentInit(): void;
|
|
1480
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
1634
|
+
readonly clusterClick: EventEmitter<Cluster_2>;
|
|
1635
|
+
/** Event emitted when the marker clusterer is initialized. */
|
|
1636
|
+
readonly markerClustererInitialized: EventEmitter<MarkerClusterer_2>;
|
|
1637
|
+
_markers: QueryList<MarkerDirective>;
|
|
1638
|
+
/** Underlying MarkerClusterer object used to interact with Google Maps. */
|
|
1639
|
+
markerClusterer?: MarkerClusterer_2;
|
|
1640
|
+
ngOnInit(): Promise<void>;
|
|
1641
|
+
ngOnChanges(changes: SimpleChanges): Promise<void>;
|
|
1481
1642
|
ngOnDestroy(): void;
|
|
1482
|
-
|
|
1483
|
-
getAverageCenter(): boolean;
|
|
1484
|
-
getBatchSizeIE(): number;
|
|
1485
|
-
getCalculator(): Calculator;
|
|
1486
|
-
getClusterClass(): string;
|
|
1487
|
-
getClusters(): Cluster[];
|
|
1488
|
-
getEnableRetinaIcons(): boolean;
|
|
1489
|
-
getGridSize(): number;
|
|
1490
|
-
getIgnoreHidden(): boolean;
|
|
1491
|
-
getImageExtension(): string;
|
|
1492
|
-
getImagePath(): string;
|
|
1493
|
-
getImageSizes(): number[];
|
|
1494
|
-
getMaxZoom(): number;
|
|
1495
|
-
getMinimumClusterSize(): number;
|
|
1496
|
-
getStyles(): ClusterIconStyle[];
|
|
1497
|
-
getTitle(): string;
|
|
1498
|
-
getTotalClusters(): number;
|
|
1499
|
-
getTotalMarkers(): number;
|
|
1500
|
-
getZIndex(): number;
|
|
1501
|
-
getZoomOnClick(): boolean;
|
|
1502
|
-
private _combineOptions;
|
|
1643
|
+
private _createCluster;
|
|
1503
1644
|
private _watchForMarkerChanges;
|
|
1645
|
+
private _destroyCluster;
|
|
1504
1646
|
private _getInternalMarkers;
|
|
1505
1647
|
private _assertInitialized;
|
|
1506
1648
|
static ɵfac: i0.ɵɵFactoryDeclaration<MapMarkerClusterer, never>;
|
|
1507
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MapMarkerClusterer, "map-marker-clusterer", ["mapMarkerClusterer"], { "
|
|
1649
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MapMarkerClusterer, "map-marker-clusterer", ["mapMarkerClusterer"], { "renderer": { "alias": "renderer"; "required": false; }; "algorithm": { "alias": "algorithm"; "required": false; }; }, { "clusteringbegin": "clusteringbegin"; "clusteringend": "clusteringend"; "clusterClick": "clusterClick"; "markerClustererInitialized": "markerClustererInitialized"; }, ["_markers"], ["*"], true, never>;
|
|
1508
1650
|
}
|
|
1509
1651
|
|
|
1510
1652
|
/**
|
|
@@ -1871,6 +2013,9 @@ export declare class MapTransitLayer implements OnInit, OnDestroy {
|
|
|
1871
2013
|
static ɵdir: i0.ɵɵDirectiveDeclaration<MapTransitLayer, "map-transit-layer", ["mapTransitLayer"], {}, { "transitLayerInitialized": "transitLayerInitialized"; }, never, never, true, never>;
|
|
1872
2014
|
}
|
|
1873
2015
|
|
|
2016
|
+
/** Marker types from the Google Maps API. */
|
|
2017
|
+
declare type Marker = google.maps.Marker | google.maps.marker.AdvancedMarkerElement;
|
|
2018
|
+
|
|
1874
2019
|
|
|
1875
2020
|
/// <reference types="google.maps" preserve="true" />
|
|
1876
2021
|
/**
|
|
@@ -1948,6 +2093,27 @@ declare class MarkerClusterer {
|
|
|
1948
2093
|
static withDefaultStyle(overrides: ClusterIconStyle): ClusterIconStyle;
|
|
1949
2094
|
}
|
|
1950
2095
|
|
|
2096
|
+
declare class MarkerClusterer_2 extends google.maps.OverlayView {
|
|
2097
|
+
onClusterClick: onClusterClickHandler;
|
|
2098
|
+
protected algorithm: Algorithm_2;
|
|
2099
|
+
protected clusters: Cluster_2[];
|
|
2100
|
+
protected markers: Marker[];
|
|
2101
|
+
protected renderer: Renderer;
|
|
2102
|
+
protected map: google.maps.Map | null;
|
|
2103
|
+
protected idleListener: google.maps.MapsEventListener;
|
|
2104
|
+
constructor({ map, markers, algorithmOptions, algorithm, renderer, onClusterClick, }: MarkerClustererOptions_2);
|
|
2105
|
+
addMarker(marker: Marker, noDraw?: boolean): void;
|
|
2106
|
+
addMarkers(markers: Marker[], noDraw?: boolean): void;
|
|
2107
|
+
removeMarker(marker: Marker, noDraw?: boolean): boolean;
|
|
2108
|
+
removeMarkers(markers: Marker[], noDraw?: boolean): boolean;
|
|
2109
|
+
clearMarkers(noDraw?: boolean): void;
|
|
2110
|
+
render(): void;
|
|
2111
|
+
onAdd(): void;
|
|
2112
|
+
onRemove(): void;
|
|
2113
|
+
protected reset(): void;
|
|
2114
|
+
protected renderClusters(): void;
|
|
2115
|
+
}
|
|
2116
|
+
|
|
1951
2117
|
/**
|
|
1952
2118
|
* Options for constructing a MarkerClusterer from the @google/markerclustererplus library.
|
|
1953
2119
|
*
|
|
@@ -1976,4 +2142,45 @@ export declare interface MarkerClustererOptions {
|
|
|
1976
2142
|
zoomOnClick?: boolean;
|
|
1977
2143
|
}
|
|
1978
2144
|
|
|
2145
|
+
declare interface MarkerClustererOptions_2 {
|
|
2146
|
+
markers?: Marker[];
|
|
2147
|
+
/**
|
|
2148
|
+
* An algorithm to cluster markers. Default is {@link SuperClusterAlgorithm}. Must
|
|
2149
|
+
* provide a `calculate` method accepting {@link AlgorithmInput} and returning
|
|
2150
|
+
* an array of {@link Cluster}.
|
|
2151
|
+
*/
|
|
2152
|
+
algorithm?: Algorithm_2;
|
|
2153
|
+
algorithmOptions?: AlgorithmOptions;
|
|
2154
|
+
map?: google.maps.Map | null;
|
|
2155
|
+
/**
|
|
2156
|
+
* An object that converts a {@link Cluster} into a `google.maps.Marker`.
|
|
2157
|
+
* Default is {@link DefaultRenderer}.
|
|
2158
|
+
*/
|
|
2159
|
+
renderer?: Renderer;
|
|
2160
|
+
onClusterClick?: onClusterClickHandler;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
/** Interface that should be implemented by directives that wrap marker APIs. */
|
|
2164
|
+
declare interface MarkerDirective {
|
|
2165
|
+
_resolveMarker(): Promise<Marker>;
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
declare type onClusterClickHandler = (event: google.maps.MapMouseEvent, cluster: Cluster_2, map: google.maps.Map) => void;
|
|
2169
|
+
|
|
2170
|
+
declare interface Renderer {
|
|
2171
|
+
/**
|
|
2172
|
+
* Turn a {@link Cluster} into a `Marker`.
|
|
2173
|
+
*
|
|
2174
|
+
* Below is a simple example to create a marker with the number of markers in the cluster as a label.
|
|
2175
|
+
*
|
|
2176
|
+
* ```typescript
|
|
2177
|
+
* return new google.maps.Marker({
|
|
2178
|
+
* position,
|
|
2179
|
+
* label: String(markers.length),
|
|
2180
|
+
* });
|
|
2181
|
+
* ```
|
|
2182
|
+
*/
|
|
2183
|
+
render(cluster: Cluster_2, stats: ClusterStats, map: google.maps.Map): Marker;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
1979
2186
|
export { }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/google-maps",
|
|
3
|
-
"version": "19.0.0-next.
|
|
3
|
+
"version": "19.0.0-next.9",
|
|
4
4
|
"description": "Angular Google Maps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,7 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"schematics": "./schematics/collection.json",
|
|
30
|
-
"ng-update": {
|
|
30
|
+
"ng-update": {
|
|
31
|
+
"migrations": "./schematics/migration.json",
|
|
32
|
+
"packageGroup": [
|
|
33
|
+
"@angular/google-maps"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
31
36
|
"module": "./fesm2022/google-maps.mjs",
|
|
32
37
|
"typings": "./index.d.ts",
|
|
33
38
|
"type": "module",
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
|
|
25
|
+
// bazel-out/k8-fastbuild/bin/src/google-maps/schematics/ng-update/index.mjs
|
|
26
|
+
var ng_update_exports = {};
|
|
27
|
+
__export(ng_update_exports, {
|
|
28
|
+
updateToV19: () => updateToV19
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(ng_update_exports);
|
|
31
|
+
var import_typescript = __toESM(require("typescript"), 1);
|
|
32
|
+
var TAG_NAME = "map-marker-clusterer";
|
|
33
|
+
var MODULE_NAME = "@angular/google-maps";
|
|
34
|
+
var CLASS_NAME = "MapMarkerClusterer";
|
|
35
|
+
var DEPRECATED_CLASS_NAME = "DeprecatedMapMarkerClusterer";
|
|
36
|
+
function updateToV19() {
|
|
37
|
+
return (tree) => {
|
|
38
|
+
tree.visit((path) => {
|
|
39
|
+
if (path.endsWith(".html")) {
|
|
40
|
+
const content = tree.readText(path);
|
|
41
|
+
if (content.includes("<" + TAG_NAME)) {
|
|
42
|
+
tree.overwrite(path, migrateHtml(content));
|
|
43
|
+
}
|
|
44
|
+
} else if (path.endsWith(".ts") && !path.endsWith(".d.ts")) {
|
|
45
|
+
migrateTypeScript(path, tree);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function migrateHtml(content) {
|
|
51
|
+
return content.replace(/<map-marker-clusterer/g, "<deprecated-map-marker-clusterer").replace(/<\/map-marker-clusterer/g, "</deprecated-map-marker-clusterer");
|
|
52
|
+
}
|
|
53
|
+
function migrateTypeScript(path, tree) {
|
|
54
|
+
const content = tree.readText(path);
|
|
55
|
+
if (!content.includes("<" + TAG_NAME) && !content.includes(MODULE_NAME) && !content.includes(CLASS_NAME)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const sourceFile = import_typescript.default.createSourceFile(path, content, import_typescript.default.ScriptTarget.Latest, true);
|
|
59
|
+
const toMigrate = findTypeScriptNodesToMigrate(sourceFile);
|
|
60
|
+
if (toMigrate.length === 0) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const printer = import_typescript.default.createPrinter();
|
|
64
|
+
const update = tree.beginUpdate(path);
|
|
65
|
+
for (const node of toMigrate) {
|
|
66
|
+
let replacement;
|
|
67
|
+
if (import_typescript.default.isStringLiteralLike(node)) {
|
|
68
|
+
if (import_typescript.default.isStringLiteral(node)) {
|
|
69
|
+
replacement = import_typescript.default.factory.createStringLiteral(migrateHtml(node.text), node.getText()[0] === `'`);
|
|
70
|
+
} else {
|
|
71
|
+
replacement = import_typescript.default.factory.createNoSubstitutionTemplateLiteral(migrateHtml(node.text));
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
const propertyName = import_typescript.default.factory.createIdentifier(DEPRECATED_CLASS_NAME);
|
|
75
|
+
const name = node.name;
|
|
76
|
+
replacement = import_typescript.default.isImportSpecifier(node) ? import_typescript.default.factory.updateImportSpecifier(node, node.isTypeOnly, propertyName, name) : import_typescript.default.factory.updateExportSpecifier(node, node.isTypeOnly, propertyName, name);
|
|
77
|
+
}
|
|
78
|
+
update.remove(node.getStart(), node.getWidth()).insertLeft(node.getStart(), printer.printNode(import_typescript.default.EmitHint.Unspecified, replacement, sourceFile));
|
|
79
|
+
}
|
|
80
|
+
tree.commitUpdate(update);
|
|
81
|
+
}
|
|
82
|
+
function findTypeScriptNodesToMigrate(sourceFile) {
|
|
83
|
+
const results = [];
|
|
84
|
+
sourceFile.forEachChild(function walk(node) {
|
|
85
|
+
var _a;
|
|
86
|
+
if (import_typescript.default.isStringLiteral(node) && node.text.includes("<" + TAG_NAME)) {
|
|
87
|
+
results.push(node);
|
|
88
|
+
} else if ((import_typescript.default.isImportDeclaration(node) || import_typescript.default.isExportDeclaration(node)) && node.moduleSpecifier && import_typescript.default.isStringLiteralLike(node.moduleSpecifier) && node.moduleSpecifier.text === MODULE_NAME) {
|
|
89
|
+
const bindings = import_typescript.default.isImportDeclaration(node) ? (_a = node.importClause) == null ? void 0 : _a.namedBindings : node.exportClause;
|
|
90
|
+
if (bindings && (import_typescript.default.isNamedImports(bindings) || import_typescript.default.isNamedExports(bindings))) {
|
|
91
|
+
bindings.elements.forEach((element) => {
|
|
92
|
+
const symbolName = element.propertyName || element.name;
|
|
93
|
+
if (import_typescript.default.isIdentifier(symbolName) && symbolName.text === CLASS_NAME) {
|
|
94
|
+
results.push(element);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
node.forEachChild(walk);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return results.sort((a, b) => b.getStart() - a.getStart());
|
|
103
|
+
}
|
|
104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
105
|
+
0 && (module.exports = {
|
|
106
|
+
updateToV19
|
|
107
|
+
});
|
|
108
|
+
/**
|
|
109
|
+
* @license
|
|
110
|
+
* Copyright Google LLC All Rights Reserved.
|
|
111
|
+
*
|
|
112
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
113
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
114
|
+
*/
|
|
115
|
+
//# sourceMappingURL=index_bundled.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/google-maps/schematics/ng-update/index.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Path} from '@angular-devkit/core';\nimport {Rule, Tree} from '@angular-devkit/schematics';\nimport ts from 'typescript';\n\n/** Tag name of the clusterer component. */\nconst TAG_NAME = 'map-marker-clusterer';\n\n/** Module from which the clusterer is being imported. */\nconst MODULE_NAME = '@angular/google-maps';\n\n/** Old name of the clusterer class. */\nconst CLASS_NAME = 'MapMarkerClusterer';\n\n/** New name of the clusterer class. */\nconst DEPRECATED_CLASS_NAME = 'DeprecatedMapMarkerClusterer';\n\n/** Entry point for the migration schematics with target of Angular Material v19 */\nexport function updateToV19(): Rule {\n return tree => {\n tree.visit(path => {\n if (path.endsWith('.html')) {\n const content = tree.readText(path);\n\n if (content.includes('<' + TAG_NAME)) {\n tree.overwrite(path, migrateHtml(content));\n }\n } else if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n migrateTypeScript(path, tree);\n }\n });\n };\n}\n\n/** Migrates an HTML template from the old tag name to the new one. */\nfunction migrateHtml(content: string): string {\n return content\n .replace(/<map-marker-clusterer/g, '<deprecated-map-marker-clusterer')\n .replace(/<\\/map-marker-clusterer/g, '</deprecated-map-marker-clusterer');\n}\n\n/** Migrates a TypeScript file from the old tag and class names to the new ones. */\nfunction migrateTypeScript(path: Path, tree: Tree) {\n const content = tree.readText(path);\n\n // Exit early if none of the symbols we're looking for are mentioned.\n if (\n !content.includes('<' + TAG_NAME) &&\n !content.includes(MODULE_NAME) &&\n !content.includes(CLASS_NAME)\n ) {\n return;\n }\n\n const sourceFile = ts.createSourceFile(path, content, ts.ScriptTarget.Latest, true);\n const toMigrate = findTypeScriptNodesToMigrate(sourceFile);\n\n if (toMigrate.length === 0) {\n return;\n }\n\n const printer = ts.createPrinter();\n const update = tree.beginUpdate(path);\n\n for (const node of toMigrate) {\n let replacement: ts.Node;\n\n if (ts.isStringLiteralLike(node)) {\n // Strings should be migrated as if they're HTML.\n if (ts.isStringLiteral(node)) {\n replacement = ts.factory.createStringLiteral(\n migrateHtml(node.text),\n node.getText()[0] === `'`,\n );\n } else {\n replacement = ts.factory.createNoSubstitutionTemplateLiteral(migrateHtml(node.text));\n }\n } else {\n // Imports/exports should preserve the old name, but import the clusterer using the new one.\n const propertyName = ts.factory.createIdentifier(DEPRECATED_CLASS_NAME);\n const name = node.name as ts.Identifier;\n\n replacement = ts.isImportSpecifier(node)\n ? ts.factory.updateImportSpecifier(node, node.isTypeOnly, propertyName, name)\n : ts.factory.updateExportSpecifier(node, node.isTypeOnly, propertyName, name);\n }\n\n update\n .remove(node.getStart(), node.getWidth())\n .insertLeft(\n node.getStart(),\n printer.printNode(ts.EmitHint.Unspecified, replacement, sourceFile),\n );\n }\n\n tree.commitUpdate(update);\n}\n\n/** Finds the TypeScript nodes that need to be migrated from a specific file. */\nfunction findTypeScriptNodesToMigrate(sourceFile: ts.SourceFile) {\n const results: (ts.StringLiteralLike | ts.ImportSpecifier | ts.ExportSpecifier)[] = [];\n\n sourceFile.forEachChild(function walk(node) {\n // Most likely a template using the clusterer.\n if (ts.isStringLiteral(node) && node.text.includes('<' + TAG_NAME)) {\n results.push(node);\n } else if (\n // Import/export referencing the clusterer.\n (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) &&\n node.moduleSpecifier &&\n ts.isStringLiteralLike(node.moduleSpecifier) &&\n node.moduleSpecifier.text === MODULE_NAME\n ) {\n const bindings = ts.isImportDeclaration(node)\n ? node.importClause?.namedBindings\n : node.exportClause;\n\n if (bindings && (ts.isNamedImports(bindings) || ts.isNamedExports(bindings))) {\n bindings.elements.forEach(element => {\n const symbolName = element.propertyName || element.name;\n\n if (ts.isIdentifier(symbolName) && symbolName.text === CLASS_NAME) {\n results.push(element);\n }\n });\n }\n } else {\n node.forEachChild(walk);\n }\n });\n\n // Sort the results in reverse order to make applying the updates easier.\n return results.sort((a, b) => b.getStart() - a.getStart());\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ts"]
|
|
7
|
+
}
|