From 5a1e7fe204070d14c1be5bd60629236efd0c722b Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 13 Feb 2018 16:41:12 +0100 Subject: [PATCH] fix(overlay): expose backdropClick mouse event in ConnectedOverlayDirective (#9845) Exposes the `MouseEvent` from the backdrop click in the `ConnectedOverlayDirective.backdropClick` emitter. Relates to #9713. --- src/cdk/overlay/overlay-directives.spec.ts | 7 ++++--- src/cdk/overlay/overlay-directives.ts | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cdk/overlay/overlay-directives.spec.ts b/src/cdk/overlay/overlay-directives.spec.ts index 4758d432ed9f..e5e7a533b1f1 100644 --- a/src/cdk/overlay/overlay-directives.spec.ts +++ b/src/cdk/overlay/overlay-directives.spec.ts @@ -356,7 +356,8 @@ describe('Overlay directives', () => { backdrop.click(); fixture.detectChanges(); - expect(fixture.componentInstance.backdropClicked).toBe(true); + expect(fixture.componentInstance.backdropClickHandler) + .toHaveBeenCalledWith(jasmine.any(MouseEvent)); }); it('should emit positionChange appropriately', () => { @@ -401,7 +402,7 @@ describe('Overlay directives', () => { @@ -422,7 +423,7 @@ class ConnectedOverlayDirectiveTest { offsetY = 0; triggerOverride: CdkOverlayOrigin; hasBackdrop: boolean; - backdropClicked = false; + backdropClickHandler = jasmine.createSpy('backdropClick handler'); positionChangeHandler = jasmine.createSpy('positionChangeHandler'); positionOverrides: ConnectionPositionPair[]; attachHandler = jasmine.createSpy('attachHandler').and.callFake(() => { diff --git a/src/cdk/overlay/overlay-directives.ts b/src/cdk/overlay/overlay-directives.ts index 4b0850a603b2..1de1ab5d53ce 100644 --- a/src/cdk/overlay/overlay-directives.ts +++ b/src/cdk/overlay/overlay-directives.ts @@ -260,7 +260,7 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges { set _deprecatedHasBackdrop(_hasBackdrop: any) { this.hasBackdrop = _hasBackdrop; } /** Event emitted when the backdrop is clicked. */ - @Output() backdropClick = new EventEmitter(); + @Output() backdropClick = new EventEmitter(); /** Event emitted when the position has changed. */ @Output() positionChange = new EventEmitter(); @@ -413,8 +413,8 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges { } if (this.hasBackdrop) { - this._backdropSubscription = this._overlayRef.backdropClick().subscribe(() => { - this.backdropClick.emit(); + this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => { + this.backdropClick.emit(event); }); } }