From fb54ce6be7091b2c91b7fff85d0d024aac38d81e Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Wed, 28 Jul 2021 07:51:36 +0200 Subject: [PATCH] fix(cdk/overlay): expand `OverlayReference` interface to cover more properties We have an interface called `OverlayReference` which is meant to mimic `OverlayRef` while allowing us to break the circular dependency of `ScrollStrategy -> OverlayRef -> OverlayConfig -> ScrollStrategy`. The problem is that it currently doesn't expose some useful members. These changes expand the interface to cover more of the `OverlayRef` API surface. Fixes #23234. --- src/cdk/overlay/overlay-reference.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cdk/overlay/overlay-reference.ts b/src/cdk/overlay/overlay-reference.ts index 95b4d0f4d5fe..636e2910d133 100644 --- a/src/cdk/overlay/overlay-reference.ts +++ b/src/cdk/overlay/overlay-reference.ts @@ -8,7 +8,7 @@ import {Portal} from '@angular/cdk/portal'; import {Direction, Directionality} from '@angular/cdk/bidi'; -import {Subject} from 'rxjs'; +import {Observable, Subject} from 'rxjs'; /** * Basic interface for an overlay. Used to avoid circular type references between @@ -21,12 +21,20 @@ export interface OverlayReference { dispose: () => void; overlayElement: HTMLElement; hostElement: HTMLElement; + backdropElement: HTMLElement | null; getConfig: () => any; hasAttached: () => boolean; updateSize: (config: any) => void; updatePosition: () => void; getDirection: () => Direction; setDirection: (dir: Direction | Directionality) => void; + backdropClick: () => Observable; + attachments: () => Observable; + detachments: () => Observable; + keydownEvents: () => Observable; + outsidePointerEvents: () => Observable; + addPanelClass: (classes: string | string[]) => void; + removePanelClass: (classes: string | string[]) => void; readonly _outsidePointerEvents: Subject; readonly _keydownEvents: Subject; }