Skip to content

Commit 9528120

Browse files
authored
feat(google-maps): add clusterer click event (#22345)
Adds an event that emits when a cluster has been clicked. Fixes #22020.
1 parent e829c22 commit 9528120

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

src/google-maps/map-marker-clusterer/map-marker-clusterer.spec.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,8 @@ describe('MapMarkerClusterer', () => {
260260
.toHaveBeenCalledWith('clusteringbegin', jasmine.any(Function));
261261
expect(markerClustererSpy.addListener)
262262
.not.toHaveBeenCalledWith('clusteringend', jasmine.any(Function));
263+
expect(markerClustererSpy.addListener)
264+
.toHaveBeenCalledWith('click', jasmine.any(Function));
263265
});
264266
});
265267

@@ -285,7 +287,8 @@ describe('MapMarkerClusterer', () => {
285287
[zIndex]="zIndex"
286288
[zoomOnClick]="zoomOnClick"
287289
[options]="options"
288-
(clusteringbegin)="onClusteringBegin()">
290+
(clusteringbegin)="onClusteringBegin()"
291+
(clusterClick)="onClusterClick()">
289292
<map-marker *ngIf="state === 'state1'"></map-marker>
290293
<map-marker *ngIf="state === 'state1' || state === 'state2'"></map-marker>
291294
<map-marker *ngIf="state === 'state2'"></map-marker>
@@ -318,4 +321,5 @@ class TestApp {
318321
state = 'state1';
319322

320323
onClusteringBegin() {}
324+
onClusterClick() {}
321325
}

src/google-maps/map-marker-clusterer/map-marker-clusterer.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ export class MapMarkerClusterer implements OnInit, AfterContentInit, OnChanges,
177177
@Output()
178178
clusteringend: Observable<void> = this._eventManager.getLazyEmitter<void>('clusteringend');
179179

180+
/** Emits when a cluster has been clicked. */
181+
@Output()
182+
clusterClick: Observable<Cluster> = this._eventManager.getLazyEmitter<Cluster>('click');
183+
180184
@ContentChildren(MapMarker, {descendants: true}) _markers: QueryList<MapMarker>;
181185

182186
/**

tools/public_api_guard/google-maps/google-maps.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ export declare class MapMarkerClusterer implements OnInit, AfterContentInit, OnC
284284
set batchSizeIE(batchSizeIE: number);
285285
set calculator(calculator: Calculator);
286286
set clusterClass(clusterClass: string);
287+
clusterClick: Observable<Cluster>;
287288
clusteringbegin: Observable<void>;
288289
clusteringend: Observable<void>;
289290
set enableRetinaIcons(enableRetinaIcons: boolean);
@@ -325,7 +326,7 @@ export declare class MapMarkerClusterer implements OnInit, AfterContentInit, OnC
325326
ngOnChanges(changes: SimpleChanges): void;
326327
ngOnDestroy(): void;
327328
ngOnInit(): void;
328-
static ɵcmp: i0.ɵɵComponentDefWithMeta<MapMarkerClusterer, "map-marker-clusterer", ["mapMarkerClusterer"], { "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"; }, { "clusteringbegin": "clusteringbegin"; "clusteringend": "clusteringend"; }, ["_markers"], ["*"]>;
329+
static ɵcmp: i0.ɵɵComponentDefWithMeta<MapMarkerClusterer, "map-marker-clusterer", ["mapMarkerClusterer"], { "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"; }, { "clusteringbegin": "clusteringbegin"; "clusteringend": "clusteringend"; "clusterClick": "clusterClick"; }, ["_markers"], ["*"]>;
329330
static ɵfac: i0.ɵɵFactoryDef<MapMarkerClusterer, never>;
330331
}
331332

0 commit comments

Comments
 (0)