mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
fix(overlay): expose backdropClick mouse event in ConnectedOverlayDirective (#9845)
Exposes the `MouseEvent` from the backdrop click in the `ConnectedOverlayDirective.backdropClick` emitter. Relates to #9713.
This commit is contained in:
committed by
Jeremy Elbourn
parent
0db1795f62
commit
dcd9c795c3
@@ -359,7 +359,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', () => {
|
||||
@@ -404,7 +405,7 @@ describe('Overlay directives', () => {
|
||||
<ng-template cdk-connected-overlay [open]="isOpen" [width]="width" [height]="height"
|
||||
[cdkConnectedOverlayOrigin]="triggerOverride || trigger"
|
||||
[hasBackdrop]="hasBackdrop" backdropClass="mat-test-class"
|
||||
(backdropClick)="backdropClicked=true" [offsetX]="offsetX" [offsetY]="offsetY"
|
||||
(backdropClick)="backdropClickHandler($event)" [offsetX]="offsetX" [offsetY]="offsetY"
|
||||
(positionChange)="positionChangeHandler($event)" (attach)="attachHandler()"
|
||||
(detach)="detachHandler()" [minWidth]="minWidth" [minHeight]="minHeight"
|
||||
[cdkConnectedOverlayPositions]="positionOverrides">
|
||||
@@ -425,7 +426,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(() => {
|
||||
|
||||
@@ -254,7 +254,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<void>();
|
||||
@Output() backdropClick = new EventEmitter<MouseEvent>();
|
||||
|
||||
/** Event emitted when the position has changed. */
|
||||
@Output() positionChange = new EventEmitter<ConnectedOverlayPositionChange>();
|
||||
@@ -402,8 +402,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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user