99import { LayoutModule } from '@angular/cdk/layout' ;
1010import { FullscreenOverlayContainer , OverlayContainer } from '@angular/cdk/overlay' ;
1111import { CommonModule } from '@angular/common' ;
12- import { NgModule } from '@angular/core' ;
12+ import { Injector , NgModule } from '@angular/core' ;
1313import { FormsModule , ReactiveFormsModule } from '@angular/forms' ;
1414import { RouterModule } from '@angular/router' ;
15+ import { createCustomElement } from '@angular/elements' ;
16+ import { EXAMPLE_COMPONENTS , ExampleModule } from '@angular/material-examples' ;
17+
1518import { AutocompleteDemo } from '../autocomplete/autocomplete-demo' ;
1619import { BadgeDemo } from '../badge/badge-demo' ;
1720import { BaselineDemo } from '../baseline/baseline-demo' ;
@@ -65,9 +68,13 @@ import {TypographyDemo} from '../typography/typography-demo';
6568import { DemoApp , Home } from './demo-app' ;
6669import { DEMO_APP_ROUTES } from './routes' ;
6770import { PaginatorDemo } from '../paginator/paginator-demo' ;
71+ import { ExamplesPage } from '../examples-page/examples-page' ;
72+ import { MaterialExampleModule } from '../example/example-module' ;
6873
6974@NgModule ( {
7075 imports : [
76+ MaterialExampleModule ,
77+ ExampleModule ,
7178 CommonModule ,
7279 FormsModule ,
7380 ReactiveFormsModule ,
@@ -78,6 +85,7 @@ import {PaginatorDemo} from '../paginator/paginator-demo';
7885 TreeDemoModule ,
7986 ] ,
8087 declarations : [
88+ ExamplesPage ,
8189 AutocompleteDemo ,
8290 BadgeDemo ,
8391 BaselineDemo ,
@@ -155,4 +163,12 @@ import {PaginatorDemo} from '../paginator/paginator-demo';
155163 SpaghettiPanel ,
156164 ] ,
157165} )
158- export class DemoModule { }
166+ export class DemoModule {
167+ constructor ( injector : Injector ) {
168+ // Register examples as custom elements so that they can be inserted into the DOM dynamically
169+ Object . keys ( EXAMPLE_COMPONENTS ) . forEach ( key => {
170+ const element = createCustomElement ( EXAMPLE_COMPONENTS [ key ] . component , { injector} ) ;
171+ customElements . define ( key , element ) ;
172+ } ) ;
173+ }
174+ }
0 commit comments