@@ -5,36 +5,26 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
55
66import { Location , LocationStrategy , PathLocationStrategy } from '@angular/common' ;
77
8- import {
9- MatButtonModule ,
10- MatIconModule ,
11- MatIconRegistry ,
12- MatInputModule ,
13- MatProgressBarModule ,
14- MatSidenavModule ,
15- MatTabsModule ,
16- MatToolbarModule
17- } from '@angular/material' ;
18-
19- import {
20- Platform
21- } from '@angular/cdk/platform' ;
8+ import { MatButtonModule } from '@angular/material/button' ;
9+ import { MatIconModule , MatIconRegistry } from '@angular/material/icon' ;
10+ import { MatProgressBarModule } from '@angular/material/progress-bar' ;
11+ import { MatSidenavModule } from '@angular/material/sidenav' ;
12+ import { MatToolbarModule } from '@angular/material/toolbar' ;
2213
14+ import { ROUTES } from '@angular/router' ;
2315
2416// Temporary fix for MatSidenavModule issue:
2517// crashes with "missing first" operator when SideNav.mode is "over"
2618import 'rxjs/add/operator/first' ;
2719
28- import { SwUpdatesModule } from 'app/sw-updates/sw-updates.module' ;
2920
3021import { AppComponent } from 'app/app.component' ;
31- import { ApiService } from 'app/embedded/api/api .service' ;
22+ import { EMBEDDED_COMPONENTS , EmbeddedComponentsMap } from 'app/embed-components/embed-components .service' ;
3223import { CustomIconRegistry , SVG_ICONS } from 'app/shared/custom-icon-registry' ;
3324import { Deployment } from 'app/shared/deployment.service' ;
3425import { DocViewerComponent } from 'app/layout/doc-viewer/doc-viewer.component' ;
3526import { DtComponent } from 'app/layout/doc-viewer/dt.component' ;
3627import { ModeBannerComponent } from 'app/layout/mode-banner/mode-banner.component' ;
37- import { EmbeddedModule } from 'app/embedded/embedded.module' ;
3828import { GaService } from 'app/shared/ga.service' ;
3929import { Logger } from 'app/shared/logger.service' ;
4030import { LocationService } from 'app/shared/location.service' ;
@@ -47,11 +37,18 @@ import { NavMenuComponent } from 'app/layout/nav-menu/nav-menu.component';
4737import { NavItemComponent } from 'app/layout/nav-item/nav-item.component' ;
4838import { ScrollService } from 'app/shared/scroll.service' ;
4939import { ScrollSpyService } from 'app/shared/scroll-spy.service' ;
50- import { SearchBoxComponent } from './search/search-box/search-box.component' ;
40+ import { SearchBoxComponent } from 'app/search/search-box/search-box.component' ;
41+ import { TocComponent } from 'app/layout/toc/toc.component' ;
5142import { TocService } from 'app/shared/toc.service' ;
5243import { WindowToken , windowProvider } from 'app/shared/window' ;
5344
45+ import { EmbedComponentsModule } from 'app/embed-components/embed-components.module' ;
5446import { SharedModule } from 'app/shared/shared.module' ;
47+ import { SwUpdatesModule } from 'app/sw-updates/sw-updates.module' ;
48+
49+
50+ // The path to the `EmbeddedModule`.
51+ const embeddedModulePath = 'app/embedded/embedded.module#EmbeddedModule' ;
5552
5653// These are the hardcoded inline svg sources to be used by the `<mat-icon>` component
5754export const svgIconProviders = [
@@ -78,15 +75,13 @@ export const svgIconProviders = [
7875@NgModule ( {
7976 imports : [
8077 BrowserModule ,
81- EmbeddedModule ,
82- HttpClientModule ,
8378 BrowserAnimationsModule ,
79+ EmbedComponentsModule ,
80+ HttpClientModule ,
8481 MatButtonModule ,
8582 MatIconModule ,
86- MatInputModule ,
8783 MatProgressBarModule ,
8884 MatSidenavModule ,
89- MatTabsModule ,
9085 MatToolbarModule ,
9186 SwUpdatesModule ,
9287 SharedModule
@@ -100,10 +95,10 @@ export const svgIconProviders = [
10095 NavMenuComponent ,
10196 NavItemComponent ,
10297 SearchBoxComponent ,
98+ TocComponent ,
10399 TopMenuComponent ,
104100 ] ,
105101 providers : [
106- ApiService ,
107102 Deployment ,
108103 DocumentService ,
109104 GaService ,
@@ -113,15 +108,32 @@ export const svgIconProviders = [
113108 LocationService ,
114109 { provide : MatIconRegistry , useClass : CustomIconRegistry } ,
115110 NavigationService ,
116- Platform ,
117111 ScrollService ,
118112 ScrollSpyService ,
119113 SearchService ,
120114 svgIconProviders ,
121115 TocService ,
122116 { provide : WindowToken , useFactory : windowProvider } ,
117+
118+ {
119+ provide : EMBEDDED_COMPONENTS ,
120+ useValue : {
121+ /* tslint:disable: max-line-length */
122+ 'aio-toc' : [ TocComponent ] ,
123+ 'aio-api-list, aio-contributor-list, aio-file-not-found-search, aio-resource-list, code-example, code-tabs, current-location, live-example' : embeddedModulePath ,
124+ /* tslint:enable: max-line-length */
125+ } as EmbeddedComponentsMap ,
126+ } ,
127+ {
128+ // This is currently the only way to get `@angular/cli`
129+ // to split `EmbeddedModule` into a separate chunk :(
130+ provide : ROUTES ,
131+ useValue : [ { path : '/embedded' , loadChildren : embeddedModulePath } ] ,
132+ multi : true ,
133+ } ,
123134 ] ,
124- bootstrap : [ AppComponent ]
135+ entryComponents : [ TocComponent ] ,
136+ bootstrap : [ AppComponent ]
125137} )
126138export class AppModule {
127139}
0 commit comments