11import {
22 ComponentResolver ,
3- OpaqueToken ,
4- Inject ,
53 Injectable ,
64} from '@angular/core' ;
75import { OverlayState } from './overlay-state' ;
@@ -10,10 +8,7 @@ import {OverlayRef} from './overlay-ref';
108
119import { OverlayPositionBuilder } from './position/overlay-position-builder' ;
1210import { ViewportRuler } from './position/viewport-ruler' ;
13-
14-
15- /** Token used to inject the DOM element that serves as the overlay container. */
16- export const OVERLAY_CONTAINER_TOKEN = new OpaqueToken ( 'overlayContainer' ) ;
11+ import { OverlayContainer } from './overlay-container' ;
1712
1813/** Next overlay unique ID. */
1914let nextUniqueId = 0 ;
@@ -32,18 +27,9 @@ let defaultState = new OverlayState();
3227 */
3328 @Injectable ( )
3429export class Overlay {
35- private _overlayContainerElement : HTMLElement ;
36-
37- constructor (
38- @Inject ( OVERLAY_CONTAINER_TOKEN ) overlayContainerElement : any ,
39- private _componentResolver : ComponentResolver ,
40- private _positionBuilder : OverlayPositionBuilder ) {
41-
42- // We inject the container as `any` because the constructor signature cannot reference
43- // browser globals (HTMLElement) on non-browser environments, since having a class decorator
44- // causes TypeScript to preserve the constructor signature types.
45- this . _overlayContainerElement = overlayContainerElement ;
46- }
30+ constructor ( private _overlayContainer : OverlayContainer ,
31+ private _componentResolver : ComponentResolver ,
32+ private _positionBuilder : OverlayPositionBuilder ) { }
4733
4834 /**
4935 * Creates an overlay.
@@ -71,7 +57,7 @@ export class Overlay {
7157 pane . id = `md-overlay-${ nextUniqueId ++ } ` ;
7258 pane . classList . add ( 'md-overlay-pane' ) ;
7359
74- this . _overlayContainerElement . appendChild ( pane ) ;
60+ this . _overlayContainer . getContainerElement ( ) . appendChild ( pane ) ;
7561
7662 return Promise . resolve ( pane ) ;
7763 }
0 commit comments