| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							|  |  |  |  * Copyright Google Inc. All Rights Reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-07 12:43:43 -07:00
										 |  |  | import {ApplicationRef, forwardRef, NgModule} from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | import {FormsModule} from '@angular/forms'; | 
					
						
							| 
									
										
										
										
											2017-03-13 17:31:03 -07:00
										 |  |  | import {ServerModule} from '@angular/platform-server'; | 
					
						
							| 
									
										
										
										
											2017-03-20 16:31:11 -07:00
										 |  |  | import {FlatModule} from 'flat_module'; | 
					
						
							| 
									
										
										
										
											2016-11-29 15:36:33 -08:00
										 |  |  | // Note: don't refer to third_party_src as we want to test that
 | 
					
						
							|  |  |  | // we can compile components from node_modules!
 | 
					
						
							|  |  |  | import {ThirdpartyModule} from 'third_party/module'; | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 12:51:01 -07:00
										 |  |  | import {MultipleComponentsMyComp, NextComp} from './a/multiple_components'; | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | import {AnimateCmp} from './animate'; | 
					
						
							|  |  |  | import {BasicComp} from './basic'; | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  | import {ComponentUsingThirdParty} from './comp_using_3rdp'; | 
					
						
							| 
									
										
										
										
											2017-03-20 16:31:11 -07:00
										 |  |  | import {ComponentUsingFlatModule} from './comp_using_flat_module'; | 
					
						
							| 
									
										
										
										
											2017-03-15 13:39:00 -07:00
										 |  |  | import {CUSTOM} from './custom_token'; | 
					
						
							| 
									
										
										
										
											2016-07-25 00:36:30 -07:00
										 |  |  | import {CompWithAnalyzeEntryComponentsProvider, CompWithEntryComponents} from './entry_components'; | 
					
						
							| 
									
										
										
										
											2017-03-15 15:50:30 -07:00
										 |  |  | import {BindingErrorComp} from './errors'; | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  | import {CompConsumingEvents, CompUsingPipes, CompWithProviders, CompWithReferences, DirPublishingEvents, ModuleUsingCustomElements} from './features'; | 
					
						
							| 
									
										
										
										
											2016-11-29 12:02:50 -08:00
										 |  |  | import {CompUsingRootModuleDirectiveAndPipe, SomeDirectiveInRootModule, SomeLibModule, SomePipeInRootModule, SomeService} from './module_fixtures'; | 
					
						
							| 
									
										
										
										
											2016-08-19 12:51:01 -07:00
										 |  |  | import {CompWithNgContent, ProjectingComp} from './projection'; | 
					
						
							|  |  |  | import {CompForChildQuery, CompWithChildQuery, CompWithDirectiveChild, DirectiveForQuery} from './queries'; | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-26 09:24:42 -07:00
										 |  |  | // Adding an export here so that TypeScript compiles the file as well
 | 
					
						
							|  |  |  | export {SomeModule as JitSummariesSomeModule} from './jit_summaries'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | @NgModule({ | 
					
						
							|  |  |  |   declarations: [ | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  |     AnimateCmp, | 
					
						
							|  |  |  |     BasicComp, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     CompConsumingEvents, | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  |     CompForChildQuery, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     CompUsingPipes, | 
					
						
							|  |  |  |     CompUsingRootModuleDirectiveAndPipe, | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  |     CompWithAnalyzeEntryComponentsProvider, | 
					
						
							|  |  |  |     CompWithChildQuery, | 
					
						
							|  |  |  |     CompWithDirectiveChild, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     CompWithEntryComponents, | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  |     CompWithNgContent, | 
					
						
							|  |  |  |     CompWithProviders, | 
					
						
							|  |  |  |     CompWithReferences, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     DirectiveForQuery, | 
					
						
							| 
									
										
										
										
											2016-09-06 07:49:38 -07:00
										 |  |  |     DirPublishingEvents, | 
					
						
							|  |  |  |     MultipleComponentsMyComp, | 
					
						
							|  |  |  |     NextComp, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     ProjectingComp, | 
					
						
							|  |  |  |     SomeDirectiveInRootModule, | 
					
						
							|  |  |  |     SomePipeInRootModule, | 
					
						
							| 
									
										
										
										
											2017-03-20 16:31:11 -07:00
										 |  |  |     ComponentUsingFlatModule, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     ComponentUsingThirdParty, | 
					
						
							| 
									
										
										
										
											2017-03-15 15:50:30 -07:00
										 |  |  |     BindingErrorComp, | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |   ], | 
					
						
							| 
									
										
										
										
											2016-08-18 10:11:06 -07:00
										 |  |  |   imports: [ | 
					
						
							| 
									
										
										
										
											2016-11-03 11:16:28 -07:00
										 |  |  |     ServerModule, | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     FormsModule, | 
					
						
							|  |  |  |     ModuleUsingCustomElements, | 
					
						
							| 
									
										
										
										
											2016-11-29 12:02:50 -08:00
										 |  |  |     SomeLibModule.withProviders(), | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     ThirdpartyModule, | 
					
						
							| 
									
										
										
										
											2017-03-20 16:31:11 -07:00
										 |  |  |     FlatModule, | 
					
						
							| 
									
										
										
										
											2016-08-18 10:11:06 -07:00
										 |  |  |   ], | 
					
						
							| 
									
										
										
										
											2017-03-06 17:15:08 -08:00
										 |  |  |   providers: [ | 
					
						
							|  |  |  |     SomeService, | 
					
						
							| 
									
										
										
										
											2017-09-24 12:11:36 -07:00
										 |  |  |     {provide: CUSTOM, useValue: forwardRef(() => ({name: 'some name'}))}, | 
					
						
							| 
									
										
										
										
											2017-03-06 17:15:08 -08:00
										 |  |  |   ], | 
					
						
							| 
									
										
										
										
											2016-07-25 00:36:30 -07:00
										 |  |  |   entryComponents: [ | 
					
						
							| 
									
										
										
										
											2016-10-24 13:28:23 -07:00
										 |  |  |     AnimateCmp, | 
					
						
							|  |  |  |     BasicComp, | 
					
						
							|  |  |  |     CompUsingRootModuleDirectiveAndPipe, | 
					
						
							|  |  |  |     CompWithAnalyzeEntryComponentsProvider, | 
					
						
							|  |  |  |     CompWithChildQuery, | 
					
						
							|  |  |  |     CompWithEntryComponents, | 
					
						
							|  |  |  |     CompWithReferences, | 
					
						
							|  |  |  |     ProjectingComp, | 
					
						
							|  |  |  |     ComponentUsingThirdParty, | 
					
						
							| 
									
										
										
										
											2017-03-20 16:31:11 -07:00
										 |  |  |     ComponentUsingFlatModule, | 
					
						
							| 
									
										
										
										
											2017-03-15 15:50:30 -07:00
										 |  |  |     BindingErrorComp, | 
					
						
							| 
									
										
										
										
											2016-07-07 10:05:55 -07:00
										 |  |  |   ] | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | }) | 
					
						
							|  |  |  | export class MainModule { | 
					
						
							|  |  |  |   constructor(public appRef: ApplicationRef) {} | 
					
						
							| 
									
										
										
										
											2016-08-02 06:54:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   ngDoBootstrap() {} | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | } |