9
9
import { LayoutModule } from '@angular/cdk/layout' ;
10
10
import { FullscreenOverlayContainer , OverlayContainer } from '@angular/cdk/overlay' ;
11
11
import { CommonModule } from '@angular/common' ;
12
- import { NgModule } from '@angular/core' ;
12
+ import { Injector , NgModule } from '@angular/core' ;
13
13
import { FormsModule , ReactiveFormsModule } from '@angular/forms' ;
14
14
import { RouterModule } from '@angular/router' ;
15
+ import { createCustomElement } from '@angular/elements' ;
16
+ import { EXAMPLE_COMPONENTS , ExampleModule } from '@angular/material-examples' ;
17
+
15
18
import { AutocompleteDemo } from '../autocomplete/autocomplete-demo' ;
16
19
import { BadgeDemo } from '../badge/badge-demo' ;
17
20
import { BaselineDemo } from '../baseline/baseline-demo' ;
@@ -65,9 +68,13 @@ import {TypographyDemo} from '../typography/typography-demo';
65
68
import { DemoApp , Home } from './demo-app' ;
66
69
import { DEMO_APP_ROUTES } from './routes' ;
67
70
import { PaginatorDemo } from '../paginator/paginator-demo' ;
71
+ import { ExamplesPage } from '../examples-page/examples-page' ;
72
+ import { MaterialExampleModule } from '../example/example-module' ;
68
73
69
74
@NgModule ( {
70
75
imports : [
76
+ MaterialExampleModule ,
77
+ ExampleModule ,
71
78
CommonModule ,
72
79
FormsModule ,
73
80
ReactiveFormsModule ,
@@ -78,6 +85,7 @@ import {PaginatorDemo} from '../paginator/paginator-demo';
78
85
TreeDemoModule ,
79
86
] ,
80
87
declarations : [
88
+ ExamplesPage ,
81
89
AutocompleteDemo ,
82
90
BadgeDemo ,
83
91
BaselineDemo ,
@@ -155,4 +163,12 @@ import {PaginatorDemo} from '../paginator/paginator-demo';
155
163
SpaghettiPanel ,
156
164
] ,
157
165
} )
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