88
99import { FullscreenOverlayContainer , OverlayContainer } from '@angular/cdk/overlay' ;
1010import { CommonModule } from '@angular/common' ;
11- import { NgModule } from '@angular/core' ;
11+ import { Injector , NgModule } from '@angular/core' ;
1212import { FormsModule , ReactiveFormsModule } from '@angular/forms' ;
1313import { RouterModule } from '@angular/router' ;
14+ import { createCustomElement } from '@angular/elements' ;
15+ import { EXAMPLE_COMPONENTS , ExampleModule } from '@angular/material-examples' ;
16+
1417import { AutocompleteDemo } from '../autocomplete/autocomplete-demo' ;
1518import { BottomSheetDemo , ExampleBottomSheet } from '../bottom-sheet/bottom-sheet-demo' ;
1619import { BaselineDemo } from '../baseline/baseline-demo' ;
@@ -53,7 +56,11 @@ import {StepperDemo} from '../stepper/stepper-demo';
5356import { ScreenTypeDemo } from '../screen-type/screen-type-demo' ;
5457import { LayoutModule } from '@angular/cdk/layout' ;
5558import {
56- FoggyTabContent , RainyTabContent , SunnyTabContent , TabsDemo , Counter
59+ Counter ,
60+ FoggyTabContent ,
61+ RainyTabContent ,
62+ SunnyTabContent ,
63+ TabsDemo
5764} from '../tabs/tabs-demo' ;
5865import { ToolbarDemo } from '../toolbar/toolbar-demo' ;
5966import { TooltipDemo } from '../tooltip/tooltip-demo' ;
@@ -64,9 +71,13 @@ import {TableDemoModule} from '../table/table-demo-module';
6471import { BadgeDemo } from '../badge/badge-demo' ;
6572import { TreeDemoModule } from '../tree/tree-demo-module' ;
6673import { ConnectedOverlayDemo , DemoOverlay } from '../connected-overlay/connected-overlay-demo' ;
74+ import { ExamplesPage } from '../examples-page/examples-page' ;
75+ import { MaterialExampleModule } from '../example/example-module' ;
6776
6877@NgModule ( {
6978 imports : [
79+ MaterialExampleModule ,
80+ ExampleModule ,
7081 CommonModule ,
7182 FormsModule ,
7283 ReactiveFormsModule ,
@@ -77,6 +88,7 @@ import {ConnectedOverlayDemo, DemoOverlay} from '../connected-overlay/connected-
7788 TreeDemoModule ,
7889 ] ,
7990 declarations : [
91+ ExamplesPage ,
8092 AutocompleteDemo ,
8193 BottomSheetDemo ,
8294 BaselineDemo ,
@@ -153,4 +165,12 @@ import {ConnectedOverlayDemo, DemoOverlay} from '../connected-overlay/connected-
153165 DemoOverlay ,
154166 ] ,
155167} )
156- export class DemoModule { }
168+ export class DemoModule {
169+ constructor ( injector : Injector ) {
170+ // Register examples as custom elements so that they can be inserted into the DOM dynamically
171+ Object . keys ( EXAMPLE_COMPONENTS ) . forEach ( key => {
172+ const element = createCustomElement ( EXAMPLE_COMPONENTS [ key ] . component , { injector} ) ;
173+ customElements . define ( key , element ) ;
174+ } ) ;
175+ }
176+ }
0 commit comments