Socket
Socket
Sign inDemoInstall

@angular/core

Package Overview
Dependencies
Maintainers
1
Versions
839
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/core - npm Package Compare versions

Comparing version 4.0.0-beta.3 to 4.0.0-beta.4

src/di/injection_token.d.ts

6

bundles/core-testing.umd.js
/**
* @license Angular v4.0.0-beta.3
* @license Angular v4.0.0-beta.4
* (c) 2010-2016 Google, Inc. https://angular.io/

@@ -569,7 +569,7 @@ * License: MIT

*/
var ComponentFixtureAutoDetect = new _angular_core.OpaqueToken('ComponentFixtureAutoDetect');
var ComponentFixtureAutoDetect = new _angular_core.InjectionToken('ComponentFixtureAutoDetect');
/**
* @experimental
*/
var ComponentFixtureNoNgZone = new _angular_core.OpaqueToken('ComponentFixtureNoNgZone');
var ComponentFixtureNoNgZone = new _angular_core.InjectionToken('ComponentFixtureNoNgZone');
/**

@@ -576,0 +576,0 @@ * @whatItDoes Configures and initializes environment for unit testing and provides methods for

@@ -13,3 +13,3 @@ /**

*/
export { createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, AnimationTransitionEvent, AnimationPlayer, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, DoCheck, OnChanges, OnDestroy, OnInit, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, Class, forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, OpaqueToken, Inject, Optional, Injectable, Self, SkipSelf, Host, NgZone, RenderComponentType, Renderer, RootRenderer, COMPILER_OPTIONS, Compiler, CompilerFactory, ModuleWithComponentFactories, ComponentFactory, ComponentRef, ComponentFactoryResolver, ElementRef, NgModuleFactory, NgModuleRef, NgModuleFactoryLoader, getModuleFactory, QueryList, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TemplateRef, ViewContainerRef, EmbeddedViewRef, ViewRef, ChangeDetectionStrategy, ChangeDetectorRef, DefaultIterableDiffer, IterableDiffers, KeyValueDiffers, SimpleChange, WrappedValue, platformCore, __core_private__, AUTO_STYLE, AnimationEntryMetadata, AnimationStateMetadata, AnimationStateDeclarationMetadata, AnimationStateTransitionMetadata, AnimationMetadata, AnimationKeyframesSequenceMetadata, AnimationStyleMetadata, AnimationAnimateMetadata, AnimationWithStepsMetadata, AnimationSequenceMetadata, AnimationGroupMetadata, animate, group, sequence, style, state, keyframes, transition, trigger } from './src/core';
export { createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, AnimationTransitionEvent, AnimationPlayer, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, DoCheck, OnChanges, OnDestroy, OnInit, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, Class, forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, OpaqueToken, Inject, Optional, Injectable, Self, SkipSelf, Host, NgZone, RenderComponentType, Renderer, RootRenderer, COMPILER_OPTIONS, Compiler, CompilerFactory, ModuleWithComponentFactories, ComponentFactory, ComponentRef, ComponentFactoryResolver, ElementRef, NgModuleFactory, NgModuleRef, NgModuleFactoryLoader, getModuleFactory, QueryList, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TemplateRef, ViewContainerRef, EmbeddedViewRef, ViewRef, ChangeDetectionStrategy, ChangeDetectorRef, DefaultIterableDiffer, IterableDiffers, KeyValueDiffers, SimpleChange, WrappedValue, platformCore, __core_private__, AUTO_STYLE, AnimationEntryMetadata, AnimationStateMetadata, AnimationStateDeclarationMetadata, AnimationStateTransitionMetadata, AnimationMetadata, AnimationKeyframesSequenceMetadata, AnimationStyleMetadata, AnimationAnimateMetadata, AnimationWithStepsMetadata, AnimationSequenceMetadata, AnimationGroupMetadata, animate, group, sequence, style, state, keyframes, transition, trigger } from './src/core';
//# sourceMappingURL=index.js.map
{
"name": "@angular/core",
"version": "4.0.0-beta.3",
"version": "4.0.0-beta.4",
"description": "Angular - the core framework",

@@ -5,0 +5,0 @@ "main": "bundles/core.umd.js",

@@ -10,2 +10,3 @@ /**

/**
* \@experimental Animation support is experimental.
* @abstract

@@ -104,2 +105,3 @@ */

/**
* \@internal
* @return {?}

@@ -106,0 +108,0 @@ */

/**
* @license undefined
* 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
* @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
*/

@@ -8,0 +8,0 @@ export var AnimationStyles = (function () {

import { ElementRef } from '../linker/element_ref';
/**
* An instance of this class is returned as an event parameter when an animation
* callback is captured for an animation either during the start or done phase.
* *
* ```typescript
* host: {
* '[@myAnimationTrigger]': 'someExpression',
* '(@myAnimationTrigger.start)': 'captureStartEvent($event)',
* '(@myAnimationTrigger.done)': 'captureDoneEvent($event)',
* },
* animations: [
* trigger("myAnimationTrigger", [
* // ...
* ])
* ]
* })
* class MyComponent {
* someExpression: any = false;
* captureStartEvent(event: AnimationTransitionEvent) {
* // the toState, fromState and totalTime data is accessible from the event variable
* }
* *
* captureDoneEvent(event: AnimationTransitionEvent) {
* // the toState, fromState and totalTime data is accessible from the event variable
* }
* }
* ```
* *
* An instance of this class is returned as an event parameter when an animation
* callback is captured for an animation either during the start or done phase.
*
* ```typescript
* \@Component({
* host: {
* '[\@myAnimationTrigger]': 'someExpression',
* '(\@myAnimationTrigger.start)': 'captureStartEvent($event)',
* '(\@myAnimationTrigger.done)': 'captureDoneEvent($event)',
* },
* animations: [
* trigger("myAnimationTrigger", [
* // ...
* ])
* ]
* })
* class MyComponent {
* someExpression: any = false;
* captureStartEvent(event: AnimationTransitionEvent) {
* // the toState, fromState and totalTime data is accessible from the event variable
* }
*
* captureDoneEvent(event: AnimationTransitionEvent) {
* // the toState, fromState and totalTime data is accessible from the event variable
* }
* }
* ```
*
* \@experimental Animation support is experimental.
*/

@@ -31,0 +33,0 @@ export var AnimationTransitionEvent = (function () {

@@ -19,6 +19,7 @@ /**

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link trigger trigger
* animation function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link trigger trigger
* animation function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -43,2 +44,3 @@ export var AnimationEntryMetadata = (function () {

/**
* \@experimental Animation support is experimental.
* @abstract

@@ -52,6 +54,7 @@ */

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link state state animation
* function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link state state animation
* function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -78,6 +81,7 @@ export var AnimationStateDeclarationMetadata = (function (_super) {

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the
* {@link transition transition animation function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the
* {\@link transition transition animation function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -104,2 +108,3 @@ export var AnimationStateTransitionMetadata = (function (_super) {

/**
* \@experimental Animation support is experimental.
* @abstract

@@ -113,6 +118,7 @@ */

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link keyframes keyframes
* animation function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link keyframes keyframes
* animation function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -135,6 +141,7 @@ export var AnimationKeyframesSequenceMetadata = (function (_super) {

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link style style animation
* function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link style style animation
* function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -162,6 +169,7 @@ export var AnimationStyleMetadata = (function (_super) {

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link animate animate
* animation function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link animate animate
* animation function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -188,2 +196,3 @@ export var AnimationAnimateMetadata = (function (_super) {

/**
* \@experimental Animation support is experimental.
* @abstract

@@ -207,6 +216,7 @@ */

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link sequence sequence
* animation function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link sequence sequence
* animation function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -237,6 +247,7 @@ export var AnimationSequenceMetadata = (function (_super) {

/**
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {@link group group animation
* function} is called.
* *
* Metadata representing the entry of animations.
* Instances of this class are provided via the animation DSL when the {\@link group group animation
* function} is called.
*
* \@experimental Animation support is experimental.
*/

@@ -267,51 +278,52 @@ export var AnimationGroupMetadata = (function (_super) {

/**
* `animate` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `animate` specifies an animation step that will apply the provided `styles` data for a given
* amount of
* time based on the provided `timing` expression value. Calls to `animate` are expected to be
* used within {@link sequence an animation sequence}, {@link group group}, or {@link transition
* transition}.
* *
* ### Usage
* *
* The `animate` function accepts two input parameters: `timing` and `styles`:
* *
* - `timing` is a string based value that can be a combination of a duration with optional
* delay and easing values. The format for the expression breaks down to `duration delay easing`
* (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
* delay=100, easing=ease-out`.
* If a numeric value is provided then that will be used as the `duration` value in millisecond
* form.
* - `styles` is the style input data which can either be a call to {@link style style} or {@link
* keyframes keyframes}.
* If left empty then the styles from the destination state will be collected and used (this is
* useful when
* describing an animation step that will complete an animation by {@link
* transition#the-final-animate-call animating to the final state}).
* *
* ```typescript
* // various functions for specifying timing data
* animate(500, style(...))
* animate("1s", style(...))
* animate("100ms 0.5s", style(...))
* animate("5s ease", style(...))
* animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
* *
* // either style() of keyframes() can be used
* animate(500, style({ background: "red" }))
* animate(500, keyframes([
* style({ background: "blue" })),
* style({ background: "red" }))
* ])
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `animate` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `animate` specifies an animation step that will apply the provided `styles` data for a given
* amount of
* time based on the provided `timing` expression value. Calls to `animate` are expected to be
* used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link transition
* transition}.
*
* ### Usage
*
* The `animate` function accepts two input parameters: `timing` and `styles`:
*
* - `timing` is a string based value that can be a combination of a duration with optional
* delay and easing values. The format for the expression breaks down to `duration delay easing`
* (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
* delay=100, easing=ease-out`.
* If a numeric value is provided then that will be used as the `duration` value in millisecond
* form.
* - `styles` is the style input data which can either be a call to {\@link style style} or {\@link
* keyframes keyframes}.
* If left empty then the styles from the destination state will be collected and used (this is
* useful when
* describing an animation step that will complete an animation by {\@link
* transition#the-final-animate-call animating to the final state}).
*
* ```typescript
* // various functions for specifying timing data
* animate(500, style(...))
* animate("1s", style(...))
* animate("100ms 0.5s", style(...))
* animate("5s ease", style(...))
* animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
*
* // either style() of keyframes() can be used
* animate(500, style({ background: "red" }))
* animate(500, keyframes([
* style({ background: "blue" })),
* style({ background: "red" }))
* ])
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} timing

@@ -331,37 +343,38 @@ * @param {?=} styles

/**
* `group` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `group` specifies a list of animation steps that are all run in parallel. Grouped animations
* are useful when a series of styles must be animated/closed off
* at different statrting/ending times.
* *
* The `group` function can either be used within a {@link sequence sequence} or a {@link transition
* transition}
* and it will only continue to the next instruction once all of the inner animation steps
* have completed.
* *
* ### Usage
* *
* The `steps` data that is passed into the `group` animation function can either consist
* of {@link style style} or {@link animate animate} function calls. Each call to `style()` or
* `animate()`
* within a group will be executed instantly (use {@link keyframes keyframes} or a
* {@link animate#usage animate() with a delay value} to offset styles to be applied at a later
* time).
* *
* ```typescript
* group([
* animate("1s", { background: "black" }))
* animate("2s", { color: "white" }))
* ])
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `group` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `group` specifies a list of animation steps that are all run in parallel. Grouped animations
* are useful when a series of styles must be animated/closed off
* at different statrting/ending times.
*
* The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition
* transition}
* and it will only continue to the next instruction once all of the inner animation steps
* have completed.
*
* ### Usage
*
* The `steps` data that is passed into the `group` animation function can either consist
* of {\@link style style} or {\@link animate animate} function calls. Each call to `style()` or
* `animate()`
* within a group will be executed instantly (use {\@link keyframes keyframes} or a
* {\@link animate#usage animate() with a delay value} to offset styles to be applied at a later
* time).
*
* ```typescript
* group([
* animate("1s", { background: "black" }))
* animate("2s", { color: "white" }))
* ])
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} steps

@@ -374,38 +387,39 @@ * @return {?}

/**
* `sequence` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used
* by default when an array is passed as animation data into {@link transition transition}.)
* *
* The `sequence` function can either be used within a {@link group group} or a {@link transition
* transition}
* and it will only continue to the next instruction once each of the inner animation steps
* have completed.
* *
* To perform animation styling in parallel with other animation steps then
* have a look at the {@link group group} animation function.
* *
* ### Usage
* *
* The `steps` data that is passed into the `sequence` animation function can either consist
* of {@link style style} or {@link animate animate} function calls. A call to `style()` will apply
* the
* provided styling data immediately while a call to `animate()` will apply its styling
* data over a given time depending on its timing data.
* *
* ```typescript
* sequence([
* style({ opacity: 0 })),
* animate("1s", { opacity: 1 }))
* ])
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `sequence` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used
* by default when an array is passed as animation data into {\@link transition transition}.)
*
* The `sequence` function can either be used within a {\@link group group} or a {\@link transition
* transition}
* and it will only continue to the next instruction once each of the inner animation steps
* have completed.
*
* To perform animation styling in parallel with other animation steps then
* have a look at the {\@link group group} animation function.
*
* ### Usage
*
* The `steps` data that is passed into the `sequence` animation function can either consist
* of {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply
* the
* provided styling data immediately while a call to `animate()` will apply its styling
* data over a given time depending on its timing data.
*
* ```typescript
* sequence([
* style({ opacity: 0 })),
* animate("1s", { opacity: 1 }))
* ])
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} steps

@@ -418,46 +432,47 @@ * @return {?}

/**
* `style` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `style` declares a key/value object containing CSS properties/styles that can then
* be used for {@link state animation states}, within an {@link sequence animation sequence}, or as
* styling data for both {@link animate animate} and {@link keyframes keyframes}.
* *
* ### Usage
* *
* `style` takes in a key/value string map as data and expects one or more CSS property/value
* pairs to be defined.
* *
* ```typescript
* // string values are used for css properties
* style({ background: "red", color: "blue" })
* *
* // numerical (pixel) values are also supported
* style({ width: 100, height: 0 })
* ```
* *
* #### Auto-styles (using `*`)
* *
* When an asterix (`*`) character is used as a value then it will be detected from the element
* being animated
* and applied as animation data when the animation starts.
* *
* This feature proves useful for a state depending on layout and/or environment factors; in such
* cases
* the styles are calculated just before the animation starts.
* *
* ```typescript
* // the steps below will animate from 0 to the
* // actual height of the element
* style({ height: 0 }),
* animate("1s", style({ height: "*" }))
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `style` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `style` declares a key/value object containing CSS properties/styles that can then
* be used for {\@link state animation states}, within an {\@link sequence animation sequence}, or as
* styling data for both {\@link animate animate} and {\@link keyframes keyframes}.
*
* ### Usage
*
* `style` takes in a key/value string map as data and expects one or more CSS property/value
* pairs to be defined.
*
* ```typescript
* // string values are used for css properties
* style({ background: "red", color: "blue" })
*
* // numerical (pixel) values are also supported
* style({ width: 100, height: 0 })
* ```
*
* #### Auto-styles (using `*`)
*
* When an asterix (`*`) character is used as a value then it will be detected from the element
* being animated
* and applied as animation data when the animation starts.
*
* This feature proves useful for a state depending on layout and/or environment factors; in such
* cases
* the styles are calculated just before the animation starts.
*
* ```typescript
* // the steps below will animate from 0 to the
* // actual height of the element
* style({ height: 0 }),
* animate("1s", style({ height: "*" }))
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} tokens

@@ -489,53 +504,54 @@ * @return {?}

/**
* `state` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `state` declares an animation state within the given trigger. When a state is
* active within a component then its associated styles will persist on
* the element that the trigger is attached to (even when the animation ends).
* *
* To animate between states, have a look at the animation {@link transition transition}
* DSL function. To register states to an animation trigger please have a look
* at the {@link trigger trigger} function.
* *
* #### The `void` state
* *
* The `void` state value is a reserved word that angular uses to determine when the element is not
* apart
* of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
* associated element
* is void).
* *
* #### The `*` (default) state
* *
* The `*` state (when styled) is a fallback state that will be used if
* the state that is being animated is not declared within the trigger.
* *
* ### Usage
* *
* `state` will declare an animation state with its associated styles
* within the given trigger.
* *
* - `stateNameExpr` can be one or more state names separated by commas.
* - `styles` refers to the {@link style styling data} that will be persisted on the element once
* the state
* has been reached.
* *
* ```typescript
* // "void" is a reserved name for a state and is used to represent
* // the state in which an element is detached from from the application.
* state("void", style({ height: 0 }))
* *
* // user-defined states
* state("closed", style({ height: 0 }))
* state("open, visible", style({ height: "*" }))
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `state` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `state` declares an animation state within the given trigger. When a state is
* active within a component then its associated styles will persist on
* the element that the trigger is attached to (even when the animation ends).
*
* To animate between states, have a look at the animation {\@link transition transition}
* DSL function. To register states to an animation trigger please have a look
* at the {\@link trigger trigger} function.
*
* #### The `void` state
*
* The `void` state value is a reserved word that angular uses to determine when the element is not
* apart
* of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
* associated element
* is void).
*
* #### The `*` (default) state
*
* The `*` state (when styled) is a fallback state that will be used if
* the state that is being animated is not declared within the trigger.
*
* ### Usage
*
* `state` will declare an animation state with its associated styles
* within the given trigger.
*
* - `stateNameExpr` can be one or more state names separated by commas.
* - `styles` refers to the {\@link style styling data} that will be persisted on the element once
* the state
* has been reached.
*
* ```typescript
* // "void" is a reserved name for a state and is used to represent
* // the state in which an element is detached from from the application.
* state("void", style({ height: 0 }))
*
* // user-defined states
* state("closed", style({ height: 0 }))
* state("open, visible", style({ height: "*" }))
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} stateNameExpr

@@ -549,48 +565,49 @@ * @param {?} styles

/**
* `keyframes` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `keyframes` specifies a collection of {@link style style} entries each optionally characterized
* by an `offset` value.
* *
* ### Usage
* *
* The `keyframes` animation function is designed to be used alongside the {@link animate animate}
* animation function. Instead of applying animations from where they are
* currently to their destination, keyframes can describe how each style entry is applied
* and at what point within the animation arc (much like CSS Keyframe Animations do).
* *
* For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at
* what percentage of the animate time the styles will be applied.
* *
* ```typescript
* // the provided offset values describe when each backgroundColor value is applied.
* animate("5s", keyframes([
* style({ backgroundColor: "red", offset: 0 }),
* style({ backgroundColor: "blue", offset: 0.2 }),
* style({ backgroundColor: "orange", offset: 0.3 }),
* style({ backgroundColor: "black", offset: 1 })
* ]))
* ```
* *
* Alternatively, if there are no `offset` values used within the style entries then the offsets
* will
* be calculated automatically.
* *
* ```typescript
* animate("5s", keyframes([
* style({ backgroundColor: "red" }) // offset = 0
* style({ backgroundColor: "blue" }) // offset = 0.33
* style({ backgroundColor: "orange" }) // offset = 0.66
* style({ backgroundColor: "black" }) // offset = 1
* ]))
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `keyframes` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `keyframes` specifies a collection of {\@link style style} entries each optionally characterized
* by an `offset` value.
*
* ### Usage
*
* The `keyframes` animation function is designed to be used alongside the {\@link animate animate}
* animation function. Instead of applying animations from where they are
* currently to their destination, keyframes can describe how each style entry is applied
* and at what point within the animation arc (much like CSS Keyframe Animations do).
*
* For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at
* what percentage of the animate time the styles will be applied.
*
* ```typescript
* // the provided offset values describe when each backgroundColor value is applied.
* animate("5s", keyframes([
* style({ backgroundColor: "red", offset: 0 }),
* style({ backgroundColor: "blue", offset: 0.2 }),
* style({ backgroundColor: "orange", offset: 0.3 }),
* style({ backgroundColor: "black", offset: 1 })
* ]))
* ```
*
* Alternatively, if there are no `offset` values used within the style entries then the offsets
* will
* be calculated automatically.
*
* ```typescript
* animate("5s", keyframes([
* style({ backgroundColor: "red" }) // offset = 0
* style({ backgroundColor: "blue" }) // offset = 0.33
* style({ backgroundColor: "orange" }) // offset = 0.66
* style({ backgroundColor: "black" }) // offset = 1
* ]))
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} steps

@@ -603,113 +620,114 @@ * @return {?}

/**
* `transition` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `transition` declares the {@link sequence sequence of animation steps} that will be run when the
* provided
* `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 => state2`
* which consists
* of two known states (use an asterix (`*`) to refer to a dynamic starting and/or ending state).
* *
* A function can also be provided as the `stateChangeExpr` argument for a transition and this
* function will be executed each time a state change occurs. If the value returned within the
* function is true then the associated animation will be run.
* *
* Animation transitions are placed within an {@link trigger animation trigger}. For an transition
* to animate to
* a state value and persist its styles then one or more {@link state animation states} is expected
* to be defined.
* *
* ### Usage
* *
* An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
* what the
* previous state is and what the current state has become. In other words, if a transition is
* defined that
* matches the old/current state criteria then the associated animation will be triggered.
* *
* ```typescript
* // all transition/state changes are defined within an animation trigger
* trigger("myAnimationTrigger", [
* // if a state is defined then its styles will be persisted when the
* // animation has fully completed itself
* state("on", style({ background: "green" })),
* state("off", style({ background: "grey" })),
* *
* // a transition animation that will be kicked off when the state value
* // bound to "myAnimationTrigger" changes from "on" to "off"
* transition("on => off", animate(500)),
* *
* // it is also possible to do run the same animation for both directions
* transition("on <=> off", animate(500)),
* *
* // or to define multiple states pairs separated by commas
* transition("on => off, off => void", animate(500)),
* *
* // this is a catch-all state change for when an element is inserted into
* // the page and the destination state is unknown
* transition("void => *", [
* style({ opacity: 0 }),
* animate(500)
* ]),
* *
* // this will capture a state change between any states
* transition("* => *", animate("1s 0s")),
* *
* // you can also go full out and include a function
* transition((fromState, toState) => {
* // when `true` then it will allow the animation below to be invoked
* return fromState == "off" && toState == "on";
* }, animate("1s 0s"))
* ])
* ```
* *
* The template associated with this component will make use of the `myAnimationTrigger`
* animation trigger by binding to an element within its template code.
* *
* ```html
* <!-- somewhere inside of my-component-tpl.html -->
* <div [@myAnimationTrigger]="myStatusExp">...</div>
* ```
* *
* #### The final `animate` call
* *
* If the final step within the transition steps is a call to `animate()` that **only**
* uses a timing value with **no style data** then it will be automatically used as the final
* animation
* arc for the element to animate itself to the final state. This involves an automatic mix of
* adding/removing CSS styles so that the element will be in the exact state it should be for the
* applied state to be presented correctly.
* *
* ```
* // start off by hiding the element, but make sure that it animates properly to whatever state
* // is currently active for "myAnimationTrigger"
* transition("void => *", [
* style({ opacity: 0 }),
* animate(500)
* ])
* ```
* *
* ### Transition Aliases (`:enter` and `:leave`)
* *
* Given that enter (insertion) and leave (removal) animations are so common,
* the `transition` function accepts both `:enter` and `:leave` values which
* are aliases for the `void => *` and `* => void` state changes.
* *
* ```
* transition(":enter", [
* style({ opacity: 0 }),
* animate(500, style({ opacity: 1 }))
* ])
* transition(":leave", [
* animate(500, style({ opacity: 0 }))
* ])
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `transition` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `transition` declares the {\@link sequence sequence of animation steps} that will be run when the
* provided
* `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 => state2`
* which consists
* of two known states (use an asterix (`*`) to refer to a dynamic starting and/or ending state).
*
* A function can also be provided as the `stateChangeExpr` argument for a transition and this
* function will be executed each time a state change occurs. If the value returned within the
* function is true then the associated animation will be run.
*
* Animation transitions are placed within an {\@link trigger animation trigger}. For an transition
* to animate to
* a state value and persist its styles then one or more {\@link state animation states} is expected
* to be defined.
*
* ### Usage
*
* An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
* what the
* previous state is and what the current state has become. In other words, if a transition is
* defined that
* matches the old/current state criteria then the associated animation will be triggered.
*
* ```typescript
* // all transition/state changes are defined within an animation trigger
* trigger("myAnimationTrigger", [
* // if a state is defined then its styles will be persisted when the
* // animation has fully completed itself
* state("on", style({ background: "green" })),
* state("off", style({ background: "grey" })),
*
* // a transition animation that will be kicked off when the state value
* // bound to "myAnimationTrigger" changes from "on" to "off"
* transition("on => off", animate(500)),
*
* // it is also possible to do run the same animation for both directions
* transition("on <=> off", animate(500)),
*
* // or to define multiple states pairs separated by commas
* transition("on => off, off => void", animate(500)),
*
* // this is a catch-all state change for when an element is inserted into
* // the page and the destination state is unknown
* transition("void => *", [
* style({ opacity: 0 }),
* animate(500)
* ]),
*
* // this will capture a state change between any states
* transition("* => *", animate("1s 0s")),
*
* // you can also go full out and include a function
* transition((fromState, toState) => {
* // when `true` then it will allow the animation below to be invoked
* return fromState == "off" && toState == "on";
* }, animate("1s 0s"))
* ])
* ```
*
* The template associated with this component will make use of the `myAnimationTrigger`
* animation trigger by binding to an element within its template code.
*
* ```html
* <!-- somewhere inside of my-component-tpl.html -->
* <div [\@myAnimationTrigger]="myStatusExp">...</div>
* ```
*
* #### The final `animate` call
*
* If the final step within the transition steps is a call to `animate()` that **only**
* uses a timing value with **no style data** then it will be automatically used as the final
* animation
* arc for the element to animate itself to the final state. This involves an automatic mix of
* adding/removing CSS styles so that the element will be in the exact state it should be for the
* applied state to be presented correctly.
*
* ```
* // start off by hiding the element, but make sure that it animates properly to whatever state
* // is currently active for "myAnimationTrigger"
* transition("void => *", [
* style({ opacity: 0 }),
* animate(500)
* ])
* ```
*
* ### Transition Aliases (`:enter` and `:leave`)
*
* Given that enter (insertion) and leave (removal) animations are so common,
* the `transition` function accepts both `:enter` and `:leave` values which
* are aliases for the `void => *` and `* => void` state changes.
*
* ```
* transition(":enter", [
* style({ opacity: 0 }),
* animate(500, style({ opacity: 1 }))
* ])
* transition(":leave", [
* animate(500, style({ opacity: 0 }))
* ])
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} stateChangeExpr

@@ -724,54 +742,56 @@ * @param {?} steps

/**
* `trigger` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
* *
* `trigger` Creates an animation trigger which will a list of {@link state state} and {@link
* transition transition}
* entries that will be evaluated when the expression bound to the trigger changes.
* *
* Triggers are registered within the component annotation data under the
* {@link Component#animations-anchor animations section}. An animation trigger can
* be placed on an element within a template by referencing the name of the
* trigger followed by the expression value that the trigger is bound to
* (in the form of `[@triggerName]="expression"`.
* *
* ### Usage
* *
* `trigger` will create an animation trigger reference based on the provided `name` value.
* The provided `animation` value is expected to be an array consisting of {@link state state} and
* {@link transition transition}
* declarations.
* *
* ```typescript
* selector: 'my-component',
* templateUrl: 'my-component-tpl.html',
* animations: [
* trigger("myAnimationTrigger", [
* state(...),
* state(...),
* transition(...),
* transition(...)
* ])
* ]
* })
* class MyComponent {
* myStatusExp = "something";
* }
* ```
* *
* The template associated with this component will make use of the `myAnimationTrigger`
* animation trigger by binding to an element within its template code.
* *
* ```html
* <!-- somewhere inside of my-component-tpl.html -->
* <div [@myAnimationTrigger]="myStatusExp">...</div>
* ```
* *
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
* *
* {@example core/animation/ts/dsl/animation_example.ts region='Component'}
* *
* `trigger` is an animation-specific function that is designed to be used inside of Angular2's
* animation
* DSL language. If this information is new, please navigate to the
* {\@link Component#animations-anchor component animations metadata
* page} to gain a better understanding of how animations in Angular2 are used.
*
* `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link
* transition transition}
* entries that will be evaluated when the expression bound to the trigger changes.
*
* Triggers are registered within the component annotation data under the
* {\@link Component#animations-anchor animations section}. An animation trigger can
* be placed on an element within a template by referencing the name of the
* trigger followed by the expression value that the trigger is bound to
* (in the form of `[\@triggerName]="expression"`.
*
* ### Usage
*
* `trigger` will create an animation trigger reference based on the provided `name` value.
* The provided `animation` value is expected to be an array consisting of {\@link state state} and
* {\@link transition transition}
* declarations.
*
* ```typescript
* \@Component({
* selector: 'my-component',
* templateUrl: 'my-component-tpl.html',
* animations: [
* trigger("myAnimationTrigger", [
* state(...),
* state(...),
* transition(...),
* transition(...)
* ])
* ]
* })
* class MyComponent {
* myStatusExp = "something";
* }
* ```
*
* The template associated with this component will make use of the `myAnimationTrigger`
* animation trigger by binding to an element within its template code.
*
* ```html
* <!-- somewhere inside of my-component-tpl.html -->
* <div [\@myAnimationTrigger]="myStatusExp">...</div>
* ```
*
* ### Example ([live demo](http://plnkr.co/edit/Kez8XGWBxWue7qP7nNvF?p=preview))
*
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
*
* \@experimental Animation support is experimental.
* @param {?} name

@@ -778,0 +798,0 @@ * @param {?} animation

@@ -0,1 +1,2 @@

import { InjectionToken } from './di';
/**

@@ -5,3 +6,3 @@ * A function that will be executed when an application is initialized.

*/
export declare const APP_INITIALIZER: any;
export declare const APP_INITIALIZER: InjectionToken<(() => void)[]>;
/**

@@ -8,0 +9,0 @@ * A class that reflects the state of running {@link APP_INITIALIZER}s.

@@ -9,3 +9,3 @@ /**

import { isPromise } from '../src/util/lang';
import { Inject, Injectable, OpaqueToken, Optional } from './di';
import { Inject, Injectable, InjectionToken, Optional } from './di';
/**

@@ -15,6 +15,7 @@ * A function that will be executed when an application is initialized.

*/
export var /** @type {?} */ APP_INITIALIZER = new OpaqueToken('Application Initializer');
export var /** @type {?} */ APP_INITIALIZER = new InjectionToken('Application Initializer');
/**
* A class that reflects the state of running {@link APP_INITIALIZER}s.
* *
* A class that reflects the state of running {\@link APP_INITIALIZER}s.
*
* \@experimental
*/

@@ -21,0 +22,0 @@ export var ApplicationInitStatus = (function () {

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"APP_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Application Initializer"]},"ApplicationInitStatus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"APP_INITIALIZER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":29,"character":61}]}]}]}}}},{"__symbolic":"module","version":1,"metadata":{"APP_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Application Initializer"]},"ApplicationInitStatus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"APP_INITIALIZER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":29,"character":61}]}]}]}}}}]
[{"__symbolic":"module","version":3,"metadata":{"APP_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Application Initializer"]},"ApplicationInitStatus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"APP_INITIALIZER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":29,"character":61}]}]}]}}}},{"__symbolic":"module","version":1,"metadata":{"APP_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Application Initializer"]},"ApplicationInitStatus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"APP_INITIALIZER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":29,"character":61}]}]}]}}}}]

@@ -38,5 +38,6 @@ /**

/**
* This module includes the providers of @angular/core that are needed
* to bootstrap components via `ApplicationRef`.
* *
* This module includes the providers of \@angular/core that are needed
* to bootstrap components via `ApplicationRef`.
*
* \@experimental
*/

@@ -43,0 +44,0 @@ export var ApplicationModule = (function () {

@@ -21,3 +21,3 @@ /**

import { Console } from './console';
import { Injectable, Injector, OpaqueToken, Optional, ReflectiveInjector } from './di';
import { Injectable, InjectionToken, Injector, Optional, ReflectiveInjector } from './di';
import { CompilerFactory } from './linker/compiler';

@@ -33,9 +33,10 @@ import { ComponentFactory } from './linker/component_factory';

/**
* Disable Angular's development mode, which turns off assertions and other
* checks within the framework.
* *
* One important assertion this disables verifies that a change detection pass
* does not result in additional changes to any bindings (also known as
* unidirectional data flow).
* *
* Disable Angular's development mode, which turns off assertions and other
* checks within the framework.
*
* One important assertion this disables verifies that a change detection pass
* does not result in additional changes to any bindings (also known as
* unidirectional data flow).
*
* \@stable
* @return {?}

@@ -50,7 +51,8 @@ */

/**
* Returns whether Angular is in development mode. After called once,
* the value is locked and won't change any more.
* *
* By default, this is true, unless a user calls `enableProdMode` before calling this.
* *
* Returns whether Angular is in development mode. After called once,
* the value is locked and won't change any more.
*
* By default, this is true, unless a user calls `enableProdMode` before calling this.
*
* \@experimental APIs related to application bootstrap are currently under review.
* @return {?}

@@ -63,4 +65,5 @@ */

/**
* A token for third-party components that can register themselves with NgProbe.
* *
* A token for third-party components that can register themselves with NgProbe.
*
* \@experimental
*/

@@ -85,5 +88,6 @@ export var NgProbeToken = (function () {

/**
* Creates a platform.
* Platforms have to be eagerly created via this function.
* *
* Creates a platform.
* Platforms have to be eagerly created via this function.
*
* \@experimental APIs related to application bootstrap are currently under review.
* @param {?} injector

@@ -97,3 +101,3 @@ * @return {?}

_platform = injector.get(PlatformRef);
var /** @type {?} */ inits = (injector.get(PLATFORM_INITIALIZER, null));
var /** @type {?} */ inits = injector.get(PLATFORM_INITIALIZER, null);
if (inits)

@@ -104,4 +108,5 @@ inits.forEach(function (init) { return init(); });

/**
* Creates a factory for a platform
* *
* Creates a factory for a platform
*
* \@experimental APIs related to application bootstrap are currently under review.
* @param {?} parentPlatformFactory

@@ -114,3 +119,3 @@ * @param {?} name

if (providers === void 0) { providers = []; }
var /** @type {?} */ marker = new OpaqueToken("Platform: " + name);
var /** @type {?} */ marker = new InjectionToken("Platform: " + name);
return function (extraProviders) {

@@ -130,5 +135,6 @@ if (extraProviders === void 0) { extraProviders = []; }

/**
* Checks that there currently is a platform
* which contains the given token as a provider.
* *
* Checks that there currently is a platform
* which contains the given token as a provider.
*
* \@experimental APIs related to application bootstrap are currently under review.
* @param {?} requiredToken

@@ -148,4 +154,5 @@ * @return {?}

/**
* Destroy the existing platform.
* *
* Destroy the existing platform.
*
* \@experimental APIs related to application bootstrap are currently under review.
* @return {?}

@@ -159,4 +166,5 @@ */

/**
* Returns the current platform.
* *
* Returns the current platform.
*
* \@experimental APIs related to application bootstrap are currently under review.
* @return {?}

@@ -168,9 +176,10 @@ */

/**
* The Angular platform is the entry point for Angular on a web page. Each page
* has exactly one platform, and services (such as reflection) which are common
* to every Angular application running on the page are bound in its scope.
* *
* A page's platform is initialized implicitly when {@link bootstrap}() is called, or
* explicitly by calling {@link createPlatform}().
* *
* The Angular platform is the entry point for Angular on a web page. Each page
* has exactly one platform, and services (such as reflection) which are common
* to every Angular application running on the page are bound in its scope.
*
* A page's platform is initialized implicitly when {\@link bootstrap}() is called, or
* explicitly by calling {\@link createPlatform}().
*
* \@stable
* @abstract

@@ -182,21 +191,23 @@ */

/**
* Creates an instance of an `@NgModule` for the given platform
* for offline compilation.
* *
* ## Simple Example
* *
* ```typescript
* my_module.ts:
* *
* imports: [BrowserModule]
* })
* class MyModule {}
* *
* main.ts:
* import {MyModuleNgFactory} from './my_module.ngfactory';
* import {platformBrowser} from '@angular/platform-browser';
* *
* let moduleRef = platformBrowser().bootstrapModuleFactory(MyModuleNgFactory);
* ```
* *
* Creates an instance of an `\@NgModule` for the given platform
* for offline compilation.
*
* ## Simple Example
*
* ```typescript
* my_module.ts:
*
* \@NgModule({
* imports: [BrowserModule]
* })
* class MyModule {}
*
* main.ts:
* import {MyModuleNgFactory} from './my_module.ngfactory';
* import {platformBrowser} from '\@angular/platform-browser';
*
* let moduleRef = platformBrowser().bootstrapModuleFactory(MyModuleNgFactory);
* ```
*
* \@experimental APIs related to application bootstrap are currently under review.
* @param {?} moduleFactory

@@ -209,13 +220,15 @@ * @return {?}

/**
* Creates an instance of an `@NgModule` for a given platform using the given runtime compiler.
* *
* ## Simple Example
* *
* ```typescript
* imports: [BrowserModule]
* })
* class MyModule {}
* *
* let moduleRef = platformBrowser().bootstrapModule(MyModule);
* ```
* Creates an instance of an `\@NgModule` for a given platform using the given runtime compiler.
*
* ## Simple Example
*
* ```typescript
* \@NgModule({
* imports: [BrowserModule]
* })
* class MyModule {}
*
* let moduleRef = platformBrowser().bootstrapModule(MyModule);
* ```
* \@stable
* @param {?} moduleType

@@ -230,3 +243,3 @@ * @param {?=} compilerOptions

/**
* Register a listener to be called when the platform is disposed.
* Register a listener to be called when the platform is disposed.
* @abstract

@@ -239,4 +252,4 @@ * @param {?} callback

/**
* Retrieve the platform {@link Injector}, which is the parent injector for
* every Angular application on the page and provides singleton providers.
* Retrieve the platform {\@link Injector}, which is the parent injector for
* every Angular application on the page and provides singleton providers.
* @return {?}

@@ -250,3 +263,3 @@ */

/**
* Destroy the Angular platform and all Angular applications on the page.
* Destroy the Angular platform and all Angular applications on the page.
* @abstract

@@ -452,6 +465,7 @@ * @return {?}

/**
* A reference to an Angular application running on a page.
* *
* For more about Angular applications, see the documentation for {@link bootstrap}.
* *
* A reference to an Angular application running on a page.
*
* For more about Angular applications, see the documentation for {\@link bootstrap}.
*
* \@stable
* @abstract

@@ -463,12 +477,12 @@ */

/**
* Bootstrap a new component at the root level of the application.
* *
* ### Bootstrap process
* *
* When bootstrapping a new root component into an application, Angular mounts the
* specified application component onto DOM elements identified by the [componentType]'s
* selector and kicks off automatic change detection to finish initializing the component.
* *
* ### Example
* {@example core/ts/platform/platform.ts region='longform'}
* Bootstrap a new component at the root level of the application.
*
* ### Bootstrap process
*
* When bootstrapping a new root component into an application, Angular mounts the
* specified application component onto DOM elements identified by the [componentType]'s
* selector and kicks off automatic change detection to finish initializing the component.
*
* ### Example
* {\@example core/ts/platform/platform.ts region='longform'}
* @abstract

@@ -480,10 +494,10 @@ * @param {?} componentFactory

/**
* Invoke this method to explicitly process change detection and its side-effects.
* *
* In development mode, `tick()` also performs a second change detection cycle to ensure that no
* further changes are detected. If additional changes are picked up during this second cycle,
* bindings in the app have side-effects that cannot be resolved in a single change detection
* pass.
* In this case, Angular throws an error, since an Angular application can only have one change
* detection pass during which all change detection must complete.
* Invoke this method to explicitly process change detection and its side-effects.
*
* In development mode, `tick()` also performs a second change detection cycle to ensure that no
* further changes are detected. If additional changes are picked up during this second cycle,
* bindings in the app have side-effects that cannot be resolved in a single change detection
* pass.
* In this case, Angular throws an error, since an Angular application can only have one change
* detection pass during which all change detection must complete.
* @abstract

@@ -495,4 +509,4 @@ * @return {?}

/**
* Get a list of component types registered to this application.
* This list is populated even before the component is created.
* Get a list of component types registered to this application.
* This list is populated even before the component is created.
* @return {?}

@@ -507,3 +521,3 @@ */

/**
* Get a list of components registered to this application.
* Get a list of components registered to this application.
* @return {?}

@@ -517,5 +531,5 @@ */

/**
* Attaches a view so that it will be dirty checked.
* The view will be automatically detached when it is destroyed.
* This will throw if the view is already attached to a ViewContainer.
* Attaches a view so that it will be dirty checked.
* The view will be automatically detached when it is destroyed.
* This will throw if the view is already attached to a ViewContainer.
* @param {?} view

@@ -526,3 +540,3 @@ * @return {?}

/**
* Detaches a view from dirty checking again.
* Detaches a view from dirty checking again.
* @param {?} view

@@ -534,3 +548,3 @@ * @return {?}

/**
* Returns the number of attached views.
* Returns the number of attached views.
* @return {?}

@@ -633,4 +647,3 @@ */

// Get the listeners lazily to prevent DI cycles.
var /** @type {?} */ listeners = (this._injector.get(APP_BOOTSTRAP_LISTENER, [])
.concat(this._bootstrapListeners));
var /** @type {?} */ listeners = this._injector.get(APP_BOOTSTRAP_LISTENER, []).concat(this._bootstrapListeners);
listeners.forEach(function (listener) { return listener(componentRef); });

@@ -716,3 +729,6 @@ };

function ApplicationRef__tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ApplicationRef_._tickScope;

@@ -719,0 +735,0 @@ /** @type {?} */

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"enableProdMode":{"__symbolic":"function"},"isDevMode":{"__symbolic":"function"},"NgProbeToken":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}]}},"createPlatform":{"__symbolic":"function"},"createPlatformFactory":{"__symbolic":"function"},"assertPlatform":{"__symbolic":"function"},"destroyPlatform":{"__symbolic":"function"},"getPlatform":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}}}},"thenExpression":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}},"elseExpression":null}},"PlatformRef":{"__symbolic":"class","members":{"bootstrapModuleFactory":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"PlatformRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PlatformRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./di","name":"Injector"}]}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrapModuleFactory":[{"__symbolic":"method"}],"_bootstrapModuleFactoryWithZone":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"_bootstrapModuleWithZone":[{"__symbolic":"method"}],"_moduleDoBootstrap":[{"__symbolic":"method"}]}},"ApplicationRef":{"__symbolic":"class","members":{"bootstrap":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}]}},"ApplicationRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"./zone/ng_zone","name":"NgZone"},{"__symbolic":"reference","module":"./console","name":"Console"},{"__symbolic":"reference","module":"./di","name":"Injector"},{"__symbolic":"reference","module":"../src/error_handler","name":"ErrorHandler"},{"__symbolic":"reference","module":"./linker/component_factory_resolver","name":"ComponentFactoryResolver"},{"__symbolic":"reference","module":"./application_init","name":"ApplicationInitStatus"},{"__symbolic":"reference","module":"./testability/testability","name":"TestabilityRegistry"},{"__symbolic":"reference","module":"./testability/testability","name":"Testability"}]}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"_loadComponent":[{"__symbolic":"method"}],"_unloadComponent":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"_tickScope":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./profile/profile","name":"wtfCreateScope"},"arguments":["ApplicationRef#tick()"]}}}}},{"__symbolic":"module","version":1,"metadata":{"enableProdMode":{"__symbolic":"function"},"isDevMode":{"__symbolic":"function"},"NgProbeToken":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}]}},"createPlatform":{"__symbolic":"function"},"createPlatformFactory":{"__symbolic":"function"},"assertPlatform":{"__symbolic":"function"},"destroyPlatform":{"__symbolic":"function"},"getPlatform":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}}}},"thenExpression":{"__symbolic":"error","message":"Reference to a local symbol","line":32,"character":4,"context":{"name":"_platform"}},"elseExpression":null}},"PlatformRef":{"__symbolic":"class","members":{"bootstrapModuleFactory":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"PlatformRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PlatformRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./di","name":"Injector"}]}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrapModuleFactory":[{"__symbolic":"method"}],"_bootstrapModuleFactoryWithZone":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"_bootstrapModuleWithZone":[{"__symbolic":"method"}],"_moduleDoBootstrap":[{"__symbolic":"method"}]}},"ApplicationRef":{"__symbolic":"class","members":{"bootstrap":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}]}},"ApplicationRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"./zone/ng_zone","name":"NgZone"},{"__symbolic":"reference","module":"./console","name":"Console"},{"__symbolic":"reference","module":"./di","name":"Injector"},{"__symbolic":"reference","module":"../src/error_handler","name":"ErrorHandler"},{"__symbolic":"reference","module":"./linker/component_factory_resolver","name":"ComponentFactoryResolver"},{"__symbolic":"reference","module":"./application_init","name":"ApplicationInitStatus"},{"__symbolic":"reference","module":"./testability/testability","name":"TestabilityRegistry"},{"__symbolic":"reference","module":"./testability/testability","name":"Testability"}]}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"_loadComponent":[{"__symbolic":"method"}],"_unloadComponent":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"_tickScope":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./profile/profile","name":"wtfCreateScope"},"arguments":["ApplicationRef#tick()"]}}}}}]
[{"__symbolic":"module","version":3,"metadata":{"enableProdMode":{"__symbolic":"function"},"isDevMode":{"__symbolic":"function"},"NgProbeToken":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}]}},"createPlatform":{"__symbolic":"function"},"createPlatformFactory":{"__symbolic":"function"},"assertPlatform":{"__symbolic":"function"},"destroyPlatform":{"__symbolic":"function"},"getPlatform":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}}}},"thenExpression":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}},"elseExpression":null}},"PlatformRef":{"__symbolic":"class","members":{"bootstrapModuleFactory":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"PlatformRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PlatformRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./di","name":"Injector"}]}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrapModuleFactory":[{"__symbolic":"method"}],"_bootstrapModuleFactoryWithZone":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"_bootstrapModuleWithZone":[{"__symbolic":"method"}],"_moduleDoBootstrap":[{"__symbolic":"method"}]}},"ApplicationRef":{"__symbolic":"class","members":{"bootstrap":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}]}},"ApplicationRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"./zone/ng_zone","name":"NgZone"},{"__symbolic":"reference","module":"./console","name":"Console"},{"__symbolic":"reference","module":"./di","name":"Injector"},{"__symbolic":"reference","module":"../src/error_handler","name":"ErrorHandler"},{"__symbolic":"reference","module":"./linker/component_factory_resolver","name":"ComponentFactoryResolver"},{"__symbolic":"reference","module":"./application_init","name":"ApplicationInitStatus"},{"__symbolic":"reference","module":"./testability/testability","name":"TestabilityRegistry"},{"__symbolic":"reference","module":"./testability/testability","name":"Testability"}]}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"_loadComponent":[{"__symbolic":"method"}],"_unloadComponent":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"_tickScope":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./profile/profile","name":"wtfCreateScope"},"arguments":["ApplicationRef#tick()"]}}}}},{"__symbolic":"module","version":1,"metadata":{"enableProdMode":{"__symbolic":"function"},"isDevMode":{"__symbolic":"function"},"NgProbeToken":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}]}},"createPlatform":{"__symbolic":"function"},"createPlatformFactory":{"__symbolic":"function"},"assertPlatform":{"__symbolic":"function"},"destroyPlatform":{"__symbolic":"function"},"getPlatform":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}}}},"thenExpression":{"__symbolic":"error","message":"Reference to a local symbol","line":31,"character":4,"context":{"name":"_platform"}},"elseExpression":null}},"PlatformRef":{"__symbolic":"class","members":{"bootstrapModuleFactory":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"PlatformRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PlatformRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./di","name":"Injector"}]}],"onDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrapModuleFactory":[{"__symbolic":"method"}],"_bootstrapModuleFactoryWithZone":[{"__symbolic":"method"}],"bootstrapModule":[{"__symbolic":"method"}],"_bootstrapModuleWithZone":[{"__symbolic":"method"}],"_moduleDoBootstrap":[{"__symbolic":"method"}]}},"ApplicationRef":{"__symbolic":"class","members":{"bootstrap":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}]}},"ApplicationRef_":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationRef"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./di","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"./zone/ng_zone","name":"NgZone"},{"__symbolic":"reference","module":"./console","name":"Console"},{"__symbolic":"reference","module":"./di","name":"Injector"},{"__symbolic":"reference","module":"../src/error_handler","name":"ErrorHandler"},{"__symbolic":"reference","module":"./linker/component_factory_resolver","name":"ComponentFactoryResolver"},{"__symbolic":"reference","module":"./application_init","name":"ApplicationInitStatus"},{"__symbolic":"reference","module":"./testability/testability","name":"TestabilityRegistry"},{"__symbolic":"reference","module":"./testability/testability","name":"Testability"}]}],"attachView":[{"__symbolic":"method"}],"detachView":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"_loadComponent":[{"__symbolic":"method"}],"_unloadComponent":[{"__symbolic":"method"}],"tick":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"_tickScope":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./profile/profile","name":"wtfCreateScope"},"arguments":["ApplicationRef#tick()"]}}}}}]

@@ -8,3 +8,4 @@ /**

*/
import { OpaqueToken } from './di';
import { InjectionToken } from './di';
import { ComponentRef } from './linker/component_factory';
/**

@@ -20,3 +21,3 @@ * A DI Token representing a unique string id assigned to the application by Angular and used

*/
export declare const APP_ID: any;
export declare const APP_ID: InjectionToken<string>;
export declare function _appIdRandomProviderFactory(): string;

@@ -28,3 +29,3 @@ /**

export declare const APP_ID_RANDOM_PROVIDER: {
provide: any;
provide: InjectionToken<string>;
useFactory: () => string;

@@ -37,3 +38,3 @@ deps: any[];

*/
export declare const PLATFORM_INITIALIZER: any;
export declare const PLATFORM_INITIALIZER: InjectionToken<(() => void)[]>;
/**

@@ -47,3 +48,3 @@ * All callbacks provided via this token will be called for every component that is bootstrapped.

*/
export declare const APP_BOOTSTRAP_LISTENER: OpaqueToken;
export declare const APP_BOOTSTRAP_LISTENER: InjectionToken<((compRef: ComponentRef<any>) => void)[]>;
/**

@@ -53,2 +54,2 @@ * A token which indicates the root directory of the application

*/
export declare const PACKAGE_ROOT_URL: any;
export declare const PACKAGE_ROOT_URL: InjectionToken<string>;

@@ -8,3 +8,3 @@ /**

*/
import { OpaqueToken } from './di';
import { InjectionToken } from './di';
/**

@@ -20,3 +20,3 @@ * A DI Token representing a unique string id assigned to the application by Angular and used

*/
export var /** @type {?} */ APP_ID = new OpaqueToken('AppId');
export var /** @type {?} */ APP_ID = new InjectionToken('AppId');
/**

@@ -47,3 +47,3 @@ * @return {?}

*/
export var /** @type {?} */ PLATFORM_INITIALIZER = new OpaqueToken('Platform Initializer');
export var /** @type {?} */ PLATFORM_INITIALIZER = new InjectionToken('Platform Initializer');
/**

@@ -57,3 +57,3 @@ * All callbacks provided via this token will be called for every component that is bootstrapped.

*/
export var /** @type {?} */ APP_BOOTSTRAP_LISTENER = new OpaqueToken('appBootstrapListener');
export var /** @type {?} */ APP_BOOTSTRAP_LISTENER = new InjectionToken('appBootstrapListener');
/**

@@ -63,3 +63,3 @@ * A token which indicates the root directory of the application

*/
export var /** @type {?} */ PACKAGE_ROOT_URL = new OpaqueToken('Application Packages Root URL');
export var /** @type {?} */ PACKAGE_ROOT_URL = new InjectionToken('Application Packages Root URL');
//# sourceMappingURL=application_tokens.js.map

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"APP_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["AppId"]},"_appIdRandomProviderFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":24,"character":9}},"APP_ID_RANDOM_PROVIDER":{"provide":{"__symbolic":"reference","name":"APP_ID"},"useFactory":{"__symbolic":"reference","name":"_appIdRandomProviderFactory"},"deps":[]},"PLATFORM_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Platform Initializer"]},"APP_BOOTSTRAP_LISTENER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["appBootstrapListener"]},"PACKAGE_ROOT_URL":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Application Packages Root URL"]}}},{"__symbolic":"module","version":1,"metadata":{"APP_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["AppId"]},"_appIdRandomProviderFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":24,"character":9}},"APP_ID_RANDOM_PROVIDER":{"provide":{"__symbolic":"reference","name":"APP_ID"},"useFactory":{"__symbolic":"reference","name":"_appIdRandomProviderFactory"},"deps":[]},"PLATFORM_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Platform Initializer"]},"APP_BOOTSTRAP_LISTENER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["appBootstrapListener"]},"PACKAGE_ROOT_URL":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"OpaqueToken"},"arguments":["Application Packages Root URL"]}}}]
[{"__symbolic":"module","version":3,"metadata":{"APP_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["AppId"]},"_appIdRandomProviderFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":25,"character":9}},"APP_ID_RANDOM_PROVIDER":{"provide":{"__symbolic":"reference","name":"APP_ID"},"useFactory":{"__symbolic":"reference","name":"_appIdRandomProviderFactory"},"deps":[]},"PLATFORM_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Platform Initializer"]},"APP_BOOTSTRAP_LISTENER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["appBootstrapListener"]},"PACKAGE_ROOT_URL":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Application Packages Root URL"]}}},{"__symbolic":"module","version":1,"metadata":{"APP_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["AppId"]},"_appIdRandomProviderFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":25,"character":9}},"APP_ID_RANDOM_PROVIDER":{"provide":{"__symbolic":"reference","name":"APP_ID"},"useFactory":{"__symbolic":"reference","name":"_appIdRandomProviderFactory"},"deps":[]},"PLATFORM_INITIALIZER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Platform Initializer"]},"APP_BOOTSTRAP_LISTENER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["appBootstrapListener"]},"PACKAGE_ROOT_URL":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./di","name":"InjectionToken"},"arguments":["Application Packages Root URL"]}}}]

@@ -28,18 +28,19 @@ /**

/**
* Indicates that the result of a {@link Pipe} transformation has changed even though the
* reference
* has not changed.
* *
* The wrapped value will be unwrapped by change detection, and the unwrapped value will be stored.
* *
* Example:
* *
* ```
* if (this._latestValue === this._latestReturnedValue) {
* return this._latestReturnedValue;
* } else {
* this._latestReturnedValue = this._latestValue;
* return WrappedValue.wrap(this._latestValue); // this will force update
* }
* ```
* Indicates that the result of a {\@link Pipe} transformation has changed even though the
* reference
* has not changed.
*
* The wrapped value will be unwrapped by change detection, and the unwrapped value will be stored.
*
* Example:
*
* ```
* if (this._latestValue === this._latestReturnedValue) {
* return this._latestReturnedValue;
* } else {
* this._latestReturnedValue = this._latestValue;
* return WrappedValue.wrap(this._latestValue); // this will force update
* }
* ```
* \@stable
*/

@@ -65,3 +66,3 @@ export var WrappedValue = (function () {

/**
* Helper class for unwrapping WrappedValue s
* Helper class for unwrapping WrappedValue s
*/

@@ -94,3 +95,4 @@ export var ValueUnwrapper = (function () {

/**
* Represents a basic change from a previous to a new value.
* Represents a basic change from a previous to a new value.
* \@stable
*/

@@ -109,3 +111,3 @@ export var SimpleChange = (function () {

/**
* Check whether the new value is the first value assigned.
* Check whether the new value is the first value assigned.
* @return {?}

@@ -112,0 +114,0 @@ */

/**
* \@stable
* @abstract

@@ -8,34 +9,36 @@ */

/**
* Marks all {@link ChangeDetectionStrategy#OnPush} ancestors as to be checked.
* *
* <!-- TODO: Add a link to a chapter on OnPush components -->
* *
* ### Example ([live demo](http://plnkr.co/edit/GC512b?p=preview))
* *
* ```typescript
* selector: 'cmp',
* changeDetection: ChangeDetectionStrategy.OnPush,
* template: `Number of ticks: {{numberOfTicks}}`
* })
* class Cmp {
* numberOfTicks = 0;
* *
* constructor(ref: ChangeDetectorRef) {
* setInterval(() => {
* this.numberOfTicks ++
* // the following is required, otherwise the view will not be updated
* this.ref.markForCheck();
* }, 1000);
* }
* }
* *
* selector: 'app',
* changeDetection: ChangeDetectionStrategy.OnPush,
* template: `
* <cmp><cmp>
* `,
* })
* class App {
* }
* ```
* Marks all {\@link ChangeDetectionStrategy#OnPush} ancestors as to be checked.
*
* <!-- TODO: Add a link to a chapter on OnPush components -->
*
* ### Example ([live demo](http://plnkr.co/edit/GC512b?p=preview))
*
* ```typescript
* \@Component({
* selector: 'cmp',
* changeDetection: ChangeDetectionStrategy.OnPush,
* template: `Number of ticks: {{numberOfTicks}}`
* })
* class Cmp {
* numberOfTicks = 0;
*
* constructor(ref: ChangeDetectorRef) {
* setInterval(() => {
* this.numberOfTicks ++
* // the following is required, otherwise the view will not be updated
* this.ref.markForCheck();
* }, 1000);
* }
* }
*
* \@Component({
* selector: 'app',
* changeDetection: ChangeDetectionStrategy.OnPush,
* template: `
* <cmp><cmp>
* `,
* })
* class App {
* }
* ```
* @abstract

@@ -46,51 +49,53 @@ * @return {?}

/**
* Detaches the change detector from the change detector tree.
* *
* The detached change detector will not be checked until it is reattached.
* *
* This can also be used in combination with {@link ChangeDetectorRef#detectChanges} to implement
* local change
* detection checks.
* *
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
* *
* ### Example
* *
* The following example defines a component with a large list of readonly data.
* Imagine the data changes constantly, many times per second. For performance reasons,
* we want to check and update the list every five seconds. We can do that by detaching
* the component's change detector and doing a local check every five seconds.
* *
* ```typescript
* class DataProvider {
* // in a real application the returned data will be different every time
* get data() {
* return [1,2,3,4,5];
* }
* }
* *
* selector: 'giant-list',
* template: `
* <li *ngFor="let d of dataProvider.data">Data {{d}}</lig>
* `,
* })
* class GiantList {
* constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {
* ref.detach();
* setInterval(() => {
* this.ref.detectChanges();
* }, 5000);
* }
* }
* *
* selector: 'app',
* providers: [DataProvider],
* template: `
* <giant-list><giant-list>
* `,
* })
* class App {
* }
* ```
* Detaches the change detector from the change detector tree.
*
* The detached change detector will not be checked until it is reattached.
*
* This can also be used in combination with {\@link ChangeDetectorRef#detectChanges} to implement
* local change
* detection checks.
*
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
*
* ### Example
*
* The following example defines a component with a large list of readonly data.
* Imagine the data changes constantly, many times per second. For performance reasons,
* we want to check and update the list every five seconds. We can do that by detaching
* the component's change detector and doing a local check every five seconds.
*
* ```typescript
* class DataProvider {
* // in a real application the returned data will be different every time
* get data() {
* return [1,2,3,4,5];
* }
* }
*
* \@Component({
* selector: 'giant-list',
* template: `
* <li *ngFor="let d of dataProvider.data">Data {{d}}</lig>
* `,
* })
* class GiantList {
* constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {
* ref.detach();
* setInterval(() => {
* this.ref.detectChanges();
* }, 5000);
* }
* }
*
* \@Component({
* selector: 'app',
* providers: [DataProvider],
* template: `
* <giant-list><giant-list>
* `,
* })
* class App {
* }
* ```
* @abstract

@@ -101,22 +106,22 @@ * @return {?}

/**
* Checks the change detector and its children.
* *
* This can also be used in combination with {@link ChangeDetectorRef#detach} to implement local
* change detection
* checks.
* *
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
* *
* ### Example
* *
* The following example defines a component with a large list of readonly data.
* Imagine, the data changes constantly, many times per second. For performance reasons,
* we want to check and update the list every five seconds.
* *
* We can do that by detaching the component's change detector and doing a local change detection
* check
* every five seconds.
* *
* See {@link ChangeDetectorRef#detach} for more information.
* Checks the change detector and its children.
*
* This can also be used in combination with {\@link ChangeDetectorRef#detach} to implement local
* change detection
* checks.
*
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
*
* ### Example
*
* The following example defines a component with a large list of readonly data.
* Imagine, the data changes constantly, many times per second. For performance reasons,
* we want to check and update the list every five seconds.
*
* We can do that by detaching the component's change detector and doing a local change detection
* check
* every five seconds.
*
* See {\@link ChangeDetectorRef#detach} for more information.
* @abstract

@@ -127,6 +132,6 @@ * @return {?}

/**
* Checks the change detector and its children, and throws if any changes are detected.
* *
* This is used in development mode to verify that running change detection doesn't introduce
* other changes.
* Checks the change detector and its children, and throws if any changes are detected.
*
* This is used in development mode to verify that running change detection doesn't introduce
* other changes.
* @abstract

@@ -137,52 +142,54 @@ * @return {?}

/**
* Reattach the change detector to the change detector tree.
* *
* This also marks OnPush ancestors as to be checked. This reattached change detector will be
* checked during the next change detection run.
* *
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
* *
* ### Example ([live demo](http://plnkr.co/edit/aUhZha?p=preview))
* *
* The following example creates a component displaying `live` data. The component will detach
* its change detector from the main change detector tree when the component's live property
* is set to false.
* *
* ```typescript
* class DataProvider {
* data = 1;
* *
* constructor() {
* setInterval(() => {
* this.data = this.data * 2;
* }, 500);
* }
* }
* *
* selector: 'live-data',
* inputs: ['live'],
* template: 'Data: {{dataProvider.data}}'
* })
* class LiveData {
* constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {}
* *
* set live(value) {
* if (value)
* this.ref.reattach();
* else
* this.ref.detach();
* }
* }
* *
* selector: 'app',
* providers: [DataProvider],
* template: `
* Live Update: <input type="checkbox" [(ngModel)]="live">
* <live-data [live]="live"><live-data>
* `,
* })
* class App {
* live = true;
* }
* ```
* Reattach the change detector to the change detector tree.
*
* This also marks OnPush ancestors as to be checked. This reattached change detector will be
* checked during the next change detection run.
*
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
*
* ### Example ([live demo](http://plnkr.co/edit/aUhZha?p=preview))
*
* The following example creates a component displaying `live` data. The component will detach
* its change detector from the main change detector tree when the component's live property
* is set to false.
*
* ```typescript
* class DataProvider {
* data = 1;
*
* constructor() {
* setInterval(() => {
* this.data = this.data * 2;
* }, 500);
* }
* }
*
* \@Component({
* selector: 'live-data',
* inputs: ['live'],
* template: 'Data: {{dataProvider.data}}'
* })
* class LiveData {
* constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {}
*
* set live(value) {
* if (value)
* this.ref.reattach();
* else
* this.ref.detach();
* }
* }
*
* \@Component({
* selector: 'app',
* providers: [DataProvider],
* template: `
* Live Update: <input type="checkbox" [(ngModel)]="live">
* <live-data [live]="live"><live-data>
* `,
* })
* class App {
* live = true;
* }
* ```
* @abstract

@@ -189,0 +196,0 @@ * @return {?}

@@ -275,7 +275,8 @@ /**

/**
* Reset the state of the change objects to show no changes. This means set previousKey to
* currentKey, and clear all of the queues (additions, moves, removals).
* Set the previousIndexes of moved and added items to their currentIndexes
* Reset the list of additions, moves and removals
* *
* Reset the state of the change objects to show no changes. This means set previousKey to
* currentKey, and clear all of the queues (additions, moves, removals).
* Set the previousIndexes of moved and added items to their currentIndexes
* Reset the list of additions, moves and removals
*
* \@internal
* @return {?}

@@ -304,9 +305,10 @@ */

/**
* This is the core function which handles differences between collections.
* *
* - `record` is the record which we saw at this position last time. If null then it is a new
* item.
* - `item` is the current item in the collection
* - `index` is the position of the item in the collection
* *
* This is the core function which handles differences between collections.
*
* - `record` is the record which we saw at this position last time. If null then it is a new
* item.
* - `item` is the current item in the collection
* - `index` is the position of the item in the collection
*
* \@internal
* @param {?} record

@@ -357,26 +359,27 @@ * @param {?} item

/**
* This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)
* *
* Use case: `[a, a]` => `[b, a, a]`
* *
* If we did not have this check then the insertion of `b` would:
* 1) evict first `a`
* 2) insert `b` at `0` index.
* 3) leave `a` at index `1` as is. <-- this is wrong!
* 3) reinsert `a` at index 2. <-- this is wrong!
* *
* The correct behavior is:
* 1) evict first `a`
* 2) insert `b` at `0` index.
* 3) reinsert `a` at index 1.
* 3) move `a` at from `1` to `2`.
* *
* *
* Double check that we have not evicted a duplicate item. We need to check if the item type may
* have already been removed:
* The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted
* at the end. Which will show up as the two 'a's switching position. This is incorrect, since a
* better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'
* at the end.
* *
* This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)
*
* Use case: `[a, a]` => `[b, a, a]`
*
* If we did not have this check then the insertion of `b` would:
* 1) evict first `a`
* 2) insert `b` at `0` index.
* 3) leave `a` at index `1` as is. <-- this is wrong!
* 3) reinsert `a` at index 2. <-- this is wrong!
*
* The correct behavior is:
* 1) evict first `a`
* 2) insert `b` at `0` index.
* 3) reinsert `a` at index 1.
* 3) move `a` at from `1` to `2`.
*
*
* Double check that we have not evicted a duplicate item. We need to check if the item type may
* have already been removed:
* The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted
* at the end. Which will show up as the two 'a's switching position. This is incorrect, since a
* better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'
* at the end.
*
* \@internal
* @param {?} record

@@ -400,6 +403,7 @@ * @param {?} item

/**
* Get rid of any excess {@link IterableChangeRecord_}s from the previous collection
* *
* - `record` The first excess {@link IterableChangeRecord_}.
* *
* Get rid of any excess {\@link IterableChangeRecord_}s from the previous collection
*
* - `record` The first excess {\@link IterableChangeRecord_}.
*
* \@internal
* @param {?} record

@@ -435,2 +439,3 @@ * @return {?}

/**
* \@internal
* @param {?} record

@@ -464,2 +469,3 @@ * @param {?} prevRecord

/**
* \@internal
* @param {?} record

@@ -477,2 +483,3 @@ * @param {?} prevRecord

/**
* \@internal
* @param {?} record

@@ -499,2 +506,3 @@ * @param {?} prevRecord

/**
* \@internal
* @param {?} record

@@ -536,2 +544,3 @@ * @param {?} prevRecord

/**
* \@internal
* @param {?} record

@@ -544,2 +553,3 @@ * @return {?}

/**
* \@internal
* @param {?} record

@@ -572,2 +582,3 @@ * @return {?}

/**
* \@internal
* @param {?} record

@@ -622,2 +633,3 @@ * @param {?} toIndex

/**
* \@internal
* @param {?} record

@@ -697,3 +709,3 @@ * @param {?} item

/**
* @stable
* \@stable
*/

@@ -746,21 +758,51 @@ export var IterableChangeRecord_ = (function () {

IterableChangeRecord_.prototype.previousIndex;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextPrevious;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._prev;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._next;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._prevDup;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextDup;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._prevRemoved;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextRemoved;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextAdded;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextMoved;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
IterableChangeRecord_.prototype._nextIdentityChange;

@@ -772,3 +814,2 @@ /** @type {?} */

}
// A linked list of CollectionChangeRecords with the same IterableChangeRecord_.item
var _DuplicateItemRecordList = (function () {

@@ -782,5 +823,5 @@ function _DuplicateItemRecordList() {

/**
* Append the record to the list of duplicates.
* *
* Note: by design all records in the list of duplicates hold the same value in record.item.
* Append the record to the list of duplicates.
*
* Note: by design all records in the list of duplicates hold the same value in record.item.
* @param {?} record

@@ -821,5 +862,5 @@ * @return {?}

/**
* Remove one {@link IterableChangeRecord_} from the list of duplicates.
* *
* Returns whether the list of duplicates is empty.
* Remove one {\@link IterableChangeRecord_} from the list of duplicates.
*
* Returns whether the list of duplicates is empty.
* @param {?} record

@@ -856,5 +897,11 @@ * @return {?}

function _DuplicateItemRecordList_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
_DuplicateItemRecordList.prototype._head;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
_DuplicateItemRecordList.prototype._tail;

@@ -880,7 +927,7 @@ }

/**
* Retrieve the `value` using key. Because the IterableChangeRecord_ value may be one which we
* have already iterated over, we use the afterIndex to pretend it is not there.
* *
* Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we
* have any more `a`s needs to return the last `a` not the first or second.
* Retrieve the `value` using key. Because the IterableChangeRecord_ value may be one which we
* have already iterated over, we use the afterIndex to pretend it is not there.
*
* Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we
* have any more `a`s needs to return the last `a` not the first or second.
* @param {?} trackById

@@ -897,5 +944,5 @@ * @param {?=} afterIndex

/**
* Removes a {@link IterableChangeRecord_} from the list of duplicates.
* *
* The list of duplicates also is removed from the map if it gets empty.
* Removes a {\@link IterableChangeRecord_} from the list of duplicates.
*
* The list of duplicates also is removed from the map if it gets empty.
* @param {?} record

@@ -902,0 +949,0 @@ * @return {?}

@@ -170,2 +170,3 @@ /**

/**
* \@internal
* @return {?}

@@ -343,2 +344,3 @@ */

/**
* \@internal
* @param {?} obj

@@ -379,3 +381,3 @@ * @param {?} fn

/**
* @stable
* \@stable
*/

@@ -419,13 +421,31 @@ var KeyValueChangeRecord_ = (function () {

KeyValueChangeRecord_.prototype.currentValue;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._nextPrevious;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._next;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._nextAdded;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._nextRemoved;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._prevRemoved;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
KeyValueChangeRecord_.prototype._nextChanged;

@@ -432,0 +452,0 @@ /** @type {?} */

@@ -11,3 +11,4 @@ /**

/**
* A repository of different iterable diffing strategies used by NgFor, NgClass, and others.
* A repository of different iterable diffing strategies used by NgFor, NgClass, and others.
* \@stable
*/

@@ -37,18 +38,19 @@ export var IterableDiffers = (function () {

/**
* Takes an array of {@link IterableDifferFactory} and returns a provider used to extend the
* inherited {@link IterableDiffers} instance with the provided factories and return a new
* {@link IterableDiffers} instance.
* *
* The following example shows how to extend an existing list of factories,
* which will only be applied to the injector for this component and its children.
* This step is all that's required to make a new {@link IterableDiffer} available.
* *
* ### Example
* *
* ```
* viewProviders: [
* IterableDiffers.extend([new ImmutableListDiffer()])
* ]
* })
* ```
* Takes an array of {\@link IterableDifferFactory} and returns a provider used to extend the
* inherited {\@link IterableDiffers} instance with the provided factories and return a new
* {\@link IterableDiffers} instance.
*
* The following example shows how to extend an existing list of factories,
* which will only be applied to the injector for this component and its children.
* This step is all that's required to make a new {\@link IterableDiffer} available.
*
* ### Example
*
* ```
* \@Component({
* viewProviders: [
* IterableDiffers.extend([new ImmutableListDiffer()])
* ]
* })
* ```
* @param {?} factories

@@ -90,3 +92,3 @@ * @return {?}

/**
* @deprecated
* @deprecated v4.0.0 - Should be private
* @type {?}

@@ -93,0 +95,0 @@ */

@@ -10,3 +10,4 @@ /**

/**
* A repository of different Map diffing strategies used by NgClass, NgStyle, and others.
* A repository of different Map diffing strategies used by NgClass, NgStyle, and others.
* \@stable
*/

@@ -33,18 +34,19 @@ export var KeyValueDiffers = (function () {

/**
* Takes an array of {@link KeyValueDifferFactory} and returns a provider used to extend the
* inherited {@link KeyValueDiffers} instance with the provided factories and return a new
* {@link KeyValueDiffers} instance.
* *
* The following example shows how to extend an existing list of factories,
* which will only be applied to the injector for this component and its children.
* This step is all that's required to make a new {@link KeyValueDiffer} available.
* *
* ### Example
* *
* ```
* viewProviders: [
* KeyValueDiffers.extend([new ImmutableMapDiffer()])
* ]
* })
* ```
* Takes an array of {\@link KeyValueDifferFactory} and returns a provider used to extend the
* inherited {\@link KeyValueDiffers} instance with the provided factories and return a new
* {\@link KeyValueDiffers} instance.
*
* The following example shows how to extend an existing list of factories,
* which will only be applied to the injector for this component and its children.
* This step is all that's required to make a new {\@link KeyValueDiffer} available.
*
* ### Example
*
* ```
* \@Component({
* viewProviders: [
* KeyValueDiffers.extend([new ImmutableMapDiffer()])
* ]
* })
* ```
* @param {?} factories

@@ -83,3 +85,3 @@ * @return {?}

/**
* @deprecated
* @deprecated v4.0.0 - Should be private.
* @type {?}

@@ -86,0 +88,0 @@ */

@@ -16,3 +16,3 @@ /**

export { Class } from './util';
export { forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, OpaqueToken, Inject, Optional, Injectable, Self, SkipSelf, Host } from './di';
export { forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, OpaqueToken, Inject, Optional, Injectable, Self, SkipSelf, Host } from './di';
export { createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken } from './application_ref';

@@ -19,0 +19,0 @@ export { APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, APP_BOOTSTRAP_LISTENER } from './application_tokens';

@@ -32,3 +32,3 @@ /**

/**
* @experimental All debugging apis are currently experimental.
* \@experimental All debugging apis are currently experimental.
*/

@@ -115,3 +115,3 @@ export var DebugNode = (function () {

/**
* @experimental All debugging apis are currently experimental.
* \@experimental All debugging apis are currently experimental.
*/

@@ -242,2 +242,3 @@ export var DebugElement = (function (_super) {

/**
* \@experimental
* @param {?} debugEls

@@ -286,2 +287,3 @@ * @return {?}

/**
* \@experimental
* @param {?} nativeNode

@@ -288,0 +290,0 @@ * @return {?}

@@ -20,2 +20,2 @@ /**

export { ReflectiveKey } from './di/reflective_key';
export { OpaqueToken } from './di/opaque_token';
export { InjectionToken, OpaqueToken } from './di/injection_token';

@@ -19,3 +19,3 @@ /**

export { ReflectiveKey } from './di/reflective_key';
export { OpaqueToken } from './di/opaque_token';
export { InjectionToken, OpaqueToken } from './di/injection_token';
//# sourceMappingURL=di.js.map

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./di/metadata"},{"from":"./di/forward_ref","export":["forwardRef","resolveForwardRef","ForwardRefFn"]},{"from":"./di/injector","export":["Injector"]},{"from":"./di/reflective_injector","export":["ReflectiveInjector"]},{"from":"./di/provider","export":["Provider","TypeProvider","ValueProvider","ClassProvider","ExistingProvider","FactoryProvider"]},{"from":"./di/reflective_provider","export":["ResolvedReflectiveFactory","ResolvedReflectiveProvider"]},{"from":"./di/reflective_key","export":["ReflectiveKey"]},{"from":"./di/opaque_token","export":["OpaqueToken"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./di/metadata"},{"from":"./di/forward_ref","export":["forwardRef","resolveForwardRef","ForwardRefFn"]},{"from":"./di/injector","export":["Injector"]},{"from":"./di/reflective_injector","export":["ReflectiveInjector"]},{"from":"./di/provider","export":["Provider","TypeProvider","ValueProvider","ClassProvider","ExistingProvider","FactoryProvider"]},{"from":"./di/reflective_provider","export":["ResolvedReflectiveFactory","ResolvedReflectiveProvider"]},{"from":"./di/reflective_key","export":["ReflectiveKey"]},{"from":"./di/opaque_token","export":["OpaqueToken"]}]}]
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./di/metadata"},{"from":"./di/forward_ref","export":["forwardRef","resolveForwardRef","ForwardRefFn"]},{"from":"./di/injector","export":["Injector"]},{"from":"./di/reflective_injector","export":["ReflectiveInjector"]},{"from":"./di/provider","export":["Provider","TypeProvider","ValueProvider","ClassProvider","ExistingProvider","FactoryProvider"]},{"from":"./di/reflective_provider","export":["ResolvedReflectiveFactory","ResolvedReflectiveProvider"]},{"from":"./di/reflective_key","export":["ReflectiveKey"]},{"from":"./di/injection_token","export":["InjectionToken","OpaqueToken"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./di/metadata"},{"from":"./di/forward_ref","export":["forwardRef","resolveForwardRef","ForwardRefFn"]},{"from":"./di/injector","export":["Injector"]},{"from":"./di/reflective_injector","export":["ReflectiveInjector"]},{"from":"./di/provider","export":["Provider","TypeProvider","ValueProvider","ClassProvider","ExistingProvider","FactoryProvider"]},{"from":"./di/reflective_provider","export":["ResolvedReflectiveFactory","ResolvedReflectiveProvider"]},{"from":"./di/reflective_key","export":["ReflectiveKey"]},{"from":"./di/injection_token","export":["InjectionToken","OpaqueToken"]}]}]

@@ -10,11 +10,12 @@ /**

/**
* Allows to refer to references which are not yet defined.
* *
* For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of
* DI is declared,
* but not yet defined. It is also used when the `token` which we use when creating a query is not
* yet defined.
* *
* ### Example
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}
* Allows to refer to references which are not yet defined.
*
* For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of
* DI is declared,
* but not yet defined. It is also used when the `token` which we use when creating a query is not
* yet defined.
*
* ### Example
* {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}
* \@experimental
* @param {?} forwardRefFn

@@ -29,11 +30,12 @@ * @return {?}

/**
* Lazily retrieves the reference value from a forwardRef.
* *
* Acts as the identity function when given a non-forward-ref value.
* *
* ### Example ([live demo](http://plnkr.co/edit/GU72mJrk1fiodChcmiDR?p=preview))
* *
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}
* *
* See: {@link forwardRef}
* Lazily retrieves the reference value from a forwardRef.
*
* Acts as the identity function when given a non-forward-ref value.
*
* ### Example ([live demo](http://plnkr.co/edit/GU72mJrk1fiodChcmiDR?p=preview))
*
* {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}
*
* See: {\@link forwardRef}
* \@experimental
* @param {?} type

@@ -40,0 +42,0 @@ * @return {?}

@@ -0,1 +1,3 @@

import { Type } from '../type';
import { InjectionToken } from './injection_token';
export declare const THROW_IF_NOT_FOUND: Object;

@@ -32,3 +34,7 @@ /**

*/
get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T;
/**
* @deprecated from v4.0.0 use Type<T> or InjectToken<T>
*/
get(token: any, notFoundValue?: any): any;
}

@@ -30,16 +30,20 @@ /**

/**
* ```
* const injector: Injector = ...;
* injector.get(...);
* ```
* *
* For more details, see the {@linkDocs guide/dependency-injection "Dependency Injection Guide"}.
* *
* ### Example
* *
* {@example core/di/ts/injector_spec.ts region='Injector'}
* *
* `Injector` returns itself when given `Injector` as a token:
* {@example core/di/ts/injector_spec.ts region='injectInjector'}
* *
* \@whatItDoes Injector interface
* \@howToUse
* ```
* const injector: Injector = ...;
* injector.get(...);
* ```
*
* \@description
* For more details, see the {\@linkDocs guide/dependency-injection "Dependency Injection Guide"}.
*
* ### Example
*
* {\@example core/di/ts/injector_spec.ts region='Injector'}
*
* `Injector` returns itself when given `Injector` as a token:
* {\@example core/di/ts/injector_spec.ts region='injectInjector'}
*
* \@stable
* @abstract

@@ -51,7 +55,2 @@ */

/**
* Retrieves an instance from the injector based on the provided token.
* If not found:
* - Throws {@link NoProviderError} if no `notFoundValue` that is not equal to
* Injector.THROW_IF_NOT_FOUND is given
* - Returns the `notFoundValue` otherwise
* @param {?} token

@@ -58,0 +57,0 @@ * @param {?=} notFoundValue

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"Injector":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"}]},"statics":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"NULL":{"__symbolic":"error","message":"Reference to non-exported class","line":14,"character":0,"context":{"className":"_NullInjector"}}}}}},{"__symbolic":"module","version":1,"metadata":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"Injector":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"}]},"statics":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"NULL":{"__symbolic":"error","message":"Reference to non-exported class","line":14,"character":0,"context":{"className":"_NullInjector"}}}}}}]
[{"__symbolic":"module","version":3,"metadata":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"Injector":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"NULL":{"__symbolic":"error","message":"Reference to non-exported class","line":17,"character":0,"context":{"className":"_NullInjector"}}}}}},{"__symbolic":"module","version":1,"metadata":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"Injector":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"THROW_IF_NOT_FOUND":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}},"NULL":{"__symbolic":"error","message":"Reference to non-exported class","line":17,"character":0,"context":{"className":"_NullInjector"}}}}}}]

@@ -53,3 +53,3 @@ /**

/**
* An injection token. (Typically an instance of `Type` or `OpaqueToken`, but can be `any`).
* An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).
*/

@@ -95,3 +95,3 @@ provide: any;

/**
* An injection token. (Typically an instance of `Type` or `OpaqueToken`, but can be `any`).
* An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).
*/

@@ -131,3 +131,3 @@ provide: any;

/**
* An injection token. (Typically an instance of `Type` or `OpaqueToken`, but can be `any`).
* An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).
*/

@@ -173,3 +173,3 @@ provide: any;

/**
* An injection token. (Typically an instance of `Type` or `OpaqueToken`, but can be `any`).
* An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).
*/

@@ -176,0 +176,0 @@ provide: any;

@@ -43,3 +43,4 @@ /**

/**
* Base class for all errors arising from misconfigured providers.
* Base class for all errors arising from misconfigured providers.
* \@stable
*/

@@ -73,24 +74,37 @@ export var AbstractProviderError = (function (_super) {

function AbstractProviderError_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
AbstractProviderError.prototype.message;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
AbstractProviderError.prototype.keys;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
AbstractProviderError.prototype.injectors;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
AbstractProviderError.prototype.constructResolvingMessage;
}
/**
* Thrown when trying to retrieve a dependency by key from {@link Injector}, but the
* {@link Injector} does not have a {@link Provider} for the given key.
* *
* ### Example ([live demo](http://plnkr.co/edit/vq8D3FRB9aGbnWJqtEPE?p=preview))
* *
* ```typescript
* class A {
* constructor(b:B) {}
* }
* *
* expect(() => Injector.resolveAndCreate([A])).toThrowError();
* ```
* Thrown when trying to retrieve a dependency by key from {\@link Injector}, but the
* {\@link Injector} does not have a {\@link Provider} for the given key.
*
* ### Example ([live demo](http://plnkr.co/edit/vq8D3FRB9aGbnWJqtEPE?p=preview))
*
* ```typescript
* class A {
* constructor(b:B) {}
* }
*
* expect(() => Injector.resolveAndCreate([A])).toThrowError();
* ```
* \@stable
*/

@@ -112,16 +126,17 @@ export var NoProviderError = (function (_super) {

/**
* Thrown when dependencies form a cycle.
* *
* ### Example ([live demo](http://plnkr.co/edit/wYQdNos0Tzql3ei1EV9j?p=info))
* *
* ```typescript
* var injector = Injector.resolveAndCreate([
* {provide: "one", useFactory: (two) => "two", deps: [[new Inject("two")]]},
* {provide: "two", useFactory: (one) => "one", deps: [[new Inject("one")]]}
* ]);
* *
* expect(() => injector.get("one")).toThrowError();
* ```
* *
* Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.
* Thrown when dependencies form a cycle.
*
* ### Example ([live demo](http://plnkr.co/edit/wYQdNos0Tzql3ei1EV9j?p=info))
*
* ```typescript
* var injector = Injector.resolveAndCreate([
* {provide: "one", useFactory: (two) => "two", deps: [[new Inject("two")]]},
* {provide: "two", useFactory: (one) => "one", deps: [[new Inject("one")]]}
* ]);
*
* expect(() => injector.get("one")).toThrowError();
* ```
*
* Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.
* \@stable
*/

@@ -142,25 +157,26 @@ export var CyclicDependencyError = (function (_super) {

/**
* Thrown when a constructing type returns with an Error.
* *
* The `InstantiationError` class contains the original error plus the dependency graph which caused
* this object to be instantiated.
* *
* ### Example ([live demo](http://plnkr.co/edit/7aWYdcqTQsP0eNqEdUAf?p=preview))
* *
* ```typescript
* class A {
* constructor() {
* throw new Error('message');
* }
* }
* *
* var injector = Injector.resolveAndCreate([A]);
* try {
* injector.get(A);
* } catch (e) {
* expect(e instanceof InstantiationError).toBe(true);
* expect(e.originalException.message).toEqual("message");
* expect(e.originalStack).toBeDefined();
* }
* ```
* Thrown when a constructing type returns with an Error.
*
* The `InstantiationError` class contains the original error plus the dependency graph which caused
* this object to be instantiated.
*
* ### Example ([live demo](http://plnkr.co/edit/7aWYdcqTQsP0eNqEdUAf?p=preview))
*
* ```typescript
* class A {
* constructor() {
* throw new Error('message');
* }
* }
*
* var injector = Injector.resolveAndCreate([A]);
* try {
* injector.get(A);
* } catch (e) {
* expect(e instanceof InstantiationError).toBe(true);
* expect(e.originalException.message).toEqual("message");
* expect(e.originalStack).toBeDefined();
* }
* ```
* \@stable
*/

@@ -211,16 +227,23 @@ export var InstantiationError = (function (_super) {

function InstantiationError_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
InstantiationError.prototype.keys;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
InstantiationError.prototype.injectors;
}
/**
* Thrown when an object other then {@link Provider} (or `Type`) is passed to {@link Injector}
* creation.
* *
* ### Example ([live demo](http://plnkr.co/edit/YatCFbPAMCL0JSSQ4mvH?p=preview))
* *
* ```typescript
* expect(() => Injector.resolveAndCreate(["not a type"])).toThrowError();
* ```
* Thrown when an object other then {\@link Provider} (or `Type`) is passed to {\@link Injector}
* creation.
*
* ### Example ([live demo](http://plnkr.co/edit/YatCFbPAMCL0JSSQ4mvH?p=preview))
*
* ```typescript
* expect(() => Injector.resolveAndCreate(["not a type"])).toThrowError();
* ```
* \@stable
*/

@@ -238,28 +261,29 @@ export var InvalidProviderError = (function (_super) {

/**
* Thrown when the class has no annotation information.
* *
* Lack of annotation information prevents the {@link Injector} from determining which dependencies
* need to be injected into the constructor.
* *
* ### Example ([live demo](http://plnkr.co/edit/rHnZtlNS7vJOPQ6pcVkm?p=preview))
* *
* ```typescript
* class A {
* constructor(b) {}
* }
* *
* expect(() => Injector.resolveAndCreate([A])).toThrowError();
* ```
* *
* This error is also thrown when the class not marked with {@link Injectable} has parameter types.
* *
* ```typescript
* class B {}
* *
* class A {
* constructor(b:B) {} // no information about the parameter types of A is available at runtime.
* }
* *
* expect(() => Injector.resolveAndCreate([A,B])).toThrowError();
* ```
* Thrown when the class has no annotation information.
*
* Lack of annotation information prevents the {\@link Injector} from determining which dependencies
* need to be injected into the constructor.
*
* ### Example ([live demo](http://plnkr.co/edit/rHnZtlNS7vJOPQ6pcVkm?p=preview))
*
* ```typescript
* class A {
* constructor(b) {}
* }
*
* expect(() => Injector.resolveAndCreate([A])).toThrowError();
* ```
*
* This error is also thrown when the class not marked with {\@link Injectable} has parameter types.
*
* ```typescript
* class B {}
*
* class A {
* constructor(b:B) {} // no information about the parameter types of A is available at runtime.
* }
*
* expect(() => Injector.resolveAndCreate([A,B])).toThrowError();
* ```
* \@stable
*/

@@ -299,13 +323,14 @@ export var NoAnnotationError = (function (_super) {

/**
* Thrown when getting an object by index.
* *
* ### Example ([live demo](http://plnkr.co/edit/bRs0SX2OTQiJzqvjgl8P?p=preview))
* *
* ```typescript
* class A {}
* *
* var injector = Injector.resolveAndCreate([A]);
* *
* expect(() => injector.getAt(100)).toThrowError();
* ```
* Thrown when getting an object by index.
*
* ### Example ([live demo](http://plnkr.co/edit/bRs0SX2OTQiJzqvjgl8P?p=preview))
*
* ```typescript
* class A {}
*
* var injector = Injector.resolveAndCreate([A]);
*
* expect(() => injector.getAt(100)).toThrowError();
* ```
* \@stable
*/

@@ -323,12 +348,12 @@ export var OutOfBoundsError = (function (_super) {

/**
* Thrown when a multi provider and a regular provider are bound to the same token.
* *
* ### Example
* *
* ```typescript
* expect(() => Injector.resolveAndCreate([
* { provide: "Strings", useValue: "string1", multi: true},
* { provide: "Strings", useValue: "string2", multi: false}
* ])).toThrowError();
* ```
* Thrown when a multi provider and a regular provider are bound to the same token.
*
* ### Example
*
* ```typescript
* expect(() => Injector.resolveAndCreate([
* { provide: "Strings", useValue: "string1", multi: true},
* { provide: "Strings", useValue: "string2", multi: false}
* ])).toThrowError();
* ```
*/

@@ -335,0 +360,0 @@ export var MixingMultiProvidersWithRegularProvidersError = (function (_super) {

@@ -228,3 +228,6 @@ /**

function ReflectiveProtoInjector_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ReflectiveProtoInjector.prototype._strategy;

@@ -454,32 +457,35 @@ /** @type {?} */

/**
* A ReflectiveDependency injection container used for instantiating objects and resolving
* dependencies.
* *
* An `Injector` is a replacement for a `new` operator, which can automatically resolve the
* constructor dependencies.
* *
* In typical use, application code asks for the dependencies in the constructor and they are
* resolved by the `Injector`.
* *
* ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview))
* *
* The following example creates an `Injector` configured to create `Engine` and `Car`.
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);
* var car = injector.get(Car);
* expect(car instanceof Car).toBe(true);
* expect(car.engine instanceof Engine).toBe(true);
* ```
* *
* Notice, we don't use the `new` operator because we explicitly want to have the `Injector`
* resolve all of the object's dependencies automatically.
* *
* A ReflectiveDependency injection container used for instantiating objects and resolving
* dependencies.
*
* An `Injector` is a replacement for a `new` operator, which can automatically resolve the
* constructor dependencies.
*
* In typical use, application code asks for the dependencies in the constructor and they are
* resolved by the `Injector`.
*
* ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview))
*
* The following example creates an `Injector` configured to create `Engine` and `Car`.
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);
* var car = injector.get(Car);
* expect(car instanceof Car).toBe(true);
* expect(car.engine instanceof Engine).toBe(true);
* ```
*
* Notice, we don't use the `new` operator because we explicitly want to have the `Injector`
* resolve all of the object's dependencies automatically.
*
* \@stable
* @abstract

@@ -491,31 +497,33 @@ */

/**
* Turns an array of provider definitions into an array of resolved providers.
* *
* A resolution is a process of flattening multiple nested arrays and converting individual
* providers into an array of {@link ResolvedReflectiveProvider}s.
* *
* ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview))
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);
* *
* expect(providers.length).toEqual(2);
* *
* expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);
* expect(providers[0].key.displayName).toBe("Car");
* expect(providers[0].dependencies.length).toEqual(1);
* expect(providers[0].factory).toBeDefined();
* *
* expect(providers[1].key.displayName).toBe("Engine");
* });
* ```
* *
* See {@link ReflectiveInjector#fromResolvedProviders} for more info.
* Turns an array of provider definitions into an array of resolved providers.
*
* A resolution is a process of flattening multiple nested arrays and converting individual
* providers into an array of {\@link ResolvedReflectiveProvider}s.
*
* ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview))
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);
*
* expect(providers.length).toEqual(2);
*
* expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);
* expect(providers[0].key.displayName).toBe("Car");
* expect(providers[0].dependencies.length).toEqual(1);
* expect(providers[0].factory).toBeDefined();
*
* expect(providers[1].key.displayName).toBe("Engine");
* });
* ```
*
* See {\@link ReflectiveInjector#fromResolvedProviders} for more info.
* @param {?} providers

@@ -528,24 +536,26 @@ * @return {?}

/**
* Resolves an array of providers and creates an injector from those providers.
* *
* The passed-in providers can be an array of `Type`, {@link Provider},
* or a recursive array of more providers.
* *
* ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview))
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);
* expect(injector.get(Car) instanceof Car).toBe(true);
* ```
* *
* This function is slower than the corresponding `fromResolvedProviders`
* because it needs to resolve the passed-in providers first.
* See {@link Injector#resolve} and {@link Injector#fromResolvedProviders}.
* Resolves an array of providers and creates an injector from those providers.
*
* The passed-in providers can be an array of `Type`, {\@link Provider},
* or a recursive array of more providers.
*
* ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview))
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);
* expect(injector.get(Car) instanceof Car).toBe(true);
* ```
*
* This function is slower than the corresponding `fromResolvedProviders`
* because it needs to resolve the passed-in providers first.
* See {\@link Injector#resolve} and {\@link Injector#fromResolvedProviders}.
* @param {?} providers

@@ -561,20 +571,23 @@ * @param {?=} parent

/**
* Creates an injector from previously resolved providers.
* *
* This API is the recommended way to construct injectors in performance-sensitive parts.
* *
* ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview))
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var providers = ReflectiveInjector.resolve([Car, Engine]);
* var injector = ReflectiveInjector.fromResolvedProviders(providers);
* expect(injector.get(Car) instanceof Car).toBe(true);
* ```
* Creates an injector from previously resolved providers.
*
* This API is the recommended way to construct injectors in performance-sensitive parts.
*
* ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview))
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var providers = ReflectiveInjector.resolve([Car, Engine]);
* var injector = ReflectiveInjector.fromResolvedProviders(providers);
* expect(injector.get(Car) instanceof Car).toBe(true);
* ```
* \@experimental
* @param {?} providers

@@ -590,14 +603,14 @@ * @param {?=} parent

/**
* Parent of this injector.
* *
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
* *
* ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview))
* *
* ```typescript
* var parent = ReflectiveInjector.resolveAndCreate([]);
* var child = parent.resolveAndCreateChild([]);
* expect(child.parent).toBe(parent);
* ```
* Parent of this injector.
*
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
*
* ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview))
*
* ```typescript
* var parent = ReflectiveInjector.resolveAndCreate([]);
* var child = parent.resolveAndCreateChild([]);
* expect(child.parent).toBe(parent);
* ```
* @return {?}

@@ -610,27 +623,27 @@ */

/**
* Resolves an array of providers and creates a child injector from those providers.
* *
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
* *
* The passed-in providers can be an array of `Type`, {@link Provider},
* or a recursive array of more providers.
* *
* ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview))
* *
* ```typescript
* class ParentProvider {}
* class ChildProvider {}
* *
* var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);
* var child = parent.resolveAndCreateChild([ChildProvider]);
* *
* expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);
* expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);
* expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));
* ```
* *
* This function is slower than the corresponding `createChildFromResolved`
* because it needs to resolve the passed-in providers first.
* See {@link Injector#resolve} and {@link Injector#createChildFromResolved}.
* Resolves an array of providers and creates a child injector from those providers.
*
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
*
* The passed-in providers can be an array of `Type`, {\@link Provider},
* or a recursive array of more providers.
*
* ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview))
*
* ```typescript
* class ParentProvider {}
* class ChildProvider {}
*
* var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);
* var child = parent.resolveAndCreateChild([ChildProvider]);
*
* expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);
* expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);
* expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));
* ```
*
* This function is slower than the corresponding `createChildFromResolved`
* because it needs to resolve the passed-in providers first.
* See {\@link Injector#resolve} and {\@link Injector#createChildFromResolved}.
* @param {?} providers

@@ -641,25 +654,25 @@ * @return {?}

/**
* Creates a child injector from previously resolved providers.
* *
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
* *
* This API is the recommended way to construct injectors in performance-sensitive parts.
* *
* ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview))
* *
* ```typescript
* class ParentProvider {}
* class ChildProvider {}
* *
* var parentProviders = ReflectiveInjector.resolve([ParentProvider]);
* var childProviders = ReflectiveInjector.resolve([ChildProvider]);
* *
* var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);
* var child = parent.createChildFromResolved(childProviders);
* *
* expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);
* expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);
* expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));
* ```
* Creates a child injector from previously resolved providers.
*
* <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.
* -->
*
* This API is the recommended way to construct injectors in performance-sensitive parts.
*
* ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview))
*
* ```typescript
* class ParentProvider {}
* class ChildProvider {}
*
* var parentProviders = ReflectiveInjector.resolve([ParentProvider]);
* var childProviders = ReflectiveInjector.resolve([ChildProvider]);
*
* var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);
* var child = parent.createChildFromResolved(childProviders);
*
* expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);
* expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);
* expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));
* ```
* @param {?} providers

@@ -672,22 +685,24 @@ * @return {?}

/**
* Resolves a provider and instantiates an object in the context of the injector.
* *
* The created object does not get cached by the injector.
* *
* ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview))
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var injector = ReflectiveInjector.resolveAndCreate([Engine]);
* *
* var car = injector.resolveAndInstantiate(Car);
* expect(car.engine).toBe(injector.get(Engine));
* expect(car).not.toBe(injector.resolveAndInstantiate(Car));
* ```
* Resolves a provider and instantiates an object in the context of the injector.
*
* The created object does not get cached by the injector.
*
* ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview))
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var injector = ReflectiveInjector.resolveAndCreate([Engine]);
*
* var car = injector.resolveAndInstantiate(Car);
* expect(car.engine).toBe(injector.get(Engine));
* expect(car).not.toBe(injector.resolveAndInstantiate(Car));
* ```
* @param {?} provider

@@ -698,22 +713,24 @@ * @return {?}

/**
* Instantiates an object using a resolved provider in the context of the injector.
* *
* The created object does not get cached by the injector.
* *
* ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview))
* *
* ```typescript
* class Engine {
* }
* *
* class Car {
* constructor(public engine:Engine) {}
* }
* *
* var injector = ReflectiveInjector.resolveAndCreate([Engine]);
* var carProvider = ReflectiveInjector.resolve([Car])[0];
* var car = injector.instantiateResolved(carProvider);
* expect(car.engine).toBe(injector.get(Engine));
* expect(car).not.toBe(injector.instantiateResolved(carProvider));
* ```
* Instantiates an object using a resolved provider in the context of the injector.
*
* The created object does not get cached by the injector.
*
* ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview))
*
* ```typescript
* \@Injectable()
* class Engine {
* }
*
* \@Injectable()
* class Car {
* constructor(public engine:Engine) {}
* }
*
* var injector = ReflectiveInjector.resolveAndCreate([Engine]);
* var carProvider = ReflectiveInjector.resolve([Car])[0];
* var car = injector.instantiateResolved(carProvider);
* expect(car.engine).toBe(injector.get(Engine));
* expect(car).not.toBe(injector.instantiateResolved(carProvider));
* ```
* @param {?} provider

@@ -734,3 +751,3 @@ * @return {?}

/**
* Private
* Private
* @param {?} _proto

@@ -771,4 +788,5 @@ * @param {?=} _parent

/**
* Internal. Do not use.
* We return `any` not to export the InjectorStrategy type.
* \@internal
* Internal. Do not use.
* We return `any` not to export the InjectorStrategy type.
* @return {?}

@@ -813,2 +831,3 @@ */

/**
* \@internal
* @param {?} provider

@@ -998,2 +1017,3 @@ * @return {?}

/**
* \@internal
* @param {?} key

@@ -1012,2 +1032,3 @@ * @param {?} notFoundValue

/**
* \@internal
* @param {?} key

@@ -1022,2 +1043,3 @@ * @param {?} notFoundValue

/**
* \@internal
* @param {?} key

@@ -1071,7 +1093,16 @@ * @param {?} notFoundValue

ReflectiveInjector_.prototype._strategy;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ReflectiveInjector_.prototype._constructionCounter;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ReflectiveInjector_.prototype._proto;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ReflectiveInjector_.prototype._parent;

@@ -1078,0 +1109,0 @@ }

@@ -11,19 +11,20 @@ /**

/**
* A unique object used for retrieving items from the {@link ReflectiveInjector}.
* *
* Keys have:
* - a system-wide unique `id`.
* - a `token`.
* *
* `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows
* the
* injector to store created objects in a more efficient way.
* *
* `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when
* resolving
* providers.
* A unique object used for retrieving items from the {\@link ReflectiveInjector}.
*
* Keys have:
* - a system-wide unique `id`.
* - a `token`.
*
* `Key` is used internally by {\@link ReflectiveInjector} because its system-wide unique `id` allows
* the
* injector to store created objects in a more efficient way.
*
* `Key` should not be created directly. {\@link ReflectiveInjector} creates keys automatically when
* resolving
* providers.
* \@experimental
*/
export var ReflectiveKey = (function () {
/**
* Private
* Private
* @param {?} token

@@ -41,3 +42,3 @@ * @param {?} id

/**
* Returns a stringified token.
* Returns a stringified token.
* @return {?}

@@ -50,3 +51,3 @@ */

/**
* Retrieves a `Key` for a token.
* Retrieves a `Key` for a token.
* @param {?} token

@@ -75,3 +76,3 @@ * @return {?}

/**
* @internal
* \@internal
*/

@@ -78,0 +79,0 @@ export var KeyRegistry = (function () {

@@ -15,4 +15,4 @@ /**

/**
* `Dependency` is used by the framework to extend DI.
* This is internal to Angular and should not be used directly.
* `Dependency` is used by the framework to extend DI.
* This is internal to Angular and should not be used directly.
*/

@@ -86,4 +86,5 @@ export var ReflectiveDependency = (function () {

/**
* An internal resolved representation of a factory function created by resolving {@link
* Provider}.
* An internal resolved representation of a factory function created by resolving {\@link
* Provider}.
* \@experimental
*/

@@ -114,3 +115,3 @@ export var ResolvedReflectiveFactory = (function () {

/**
* Resolve a single provider.
* Resolve a single provider.
* @param {?} provider

@@ -142,6 +143,6 @@ * @return {?}

/**
* Converts the {@link Provider} into {@link ResolvedProvider}.
* *
* {@link Injector} internally only uses {@link ResolvedProvider}, {@link Provider} contains
* convenience provider syntax.
* Converts the {\@link Provider} into {\@link ResolvedProvider}.
*
* {\@link Injector} internally only uses {\@link ResolvedProvider}, {\@link Provider} contains
* convenience provider syntax.
* @param {?} provider

@@ -154,3 +155,3 @@ * @return {?}

/**
* Resolve a list of Providers.
* Resolve a list of Providers.
* @param {?} providers

@@ -166,5 +167,5 @@ * @return {?}

/**
* Merges a list of ResolvedProviders into a list where
* each key is contained exactly once and multi providers
* have been merged.
* Merges a list of ResolvedProviders into a list where
* each key is contained exactly once and multi providers
* have been merged.
* @param {?} providers

@@ -171,0 +172,0 @@ * @param {?} normalizedProvidersMap

@@ -9,22 +9,26 @@ /**

/**
* *
* *
* The default implementation of `ErrorHandler` prints error messages to the `console`. To
* intercept error handling, write a custom exception handler that replaces this default as
* appropriate for your app.
* *
* ### Example
* *
* ```
* class MyErrorHandler implements ErrorHandler {
* handleError(error) {
* // do something with the exception
* }
* }
* *
* providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]
* })
* class MyModule {}
* ```
* *
* \@whatItDoes Provides a hook for centralized exception handling.
*
* \@description
*
* The default implementation of `ErrorHandler` prints error messages to the `console`. To
* intercept error handling, write a custom exception handler that replaces this default as
* appropriate for your app.
*
* ### Example
*
* ```
* class MyErrorHandler implements ErrorHandler {
* handleError(error) {
* // do something with the exception
* }
* }
*
* \@NgModule({
* providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]
* })
* class MyModule {}
* ```
*
* \@stable
*/

@@ -69,2 +73,3 @@ export var ErrorHandler = (function () {

/**
* \@internal
* @param {?} error

@@ -77,2 +82,3 @@ * @return {?}

/**
* \@internal
* @param {?} error

@@ -89,2 +95,3 @@ * @return {?}

/**
* \@internal
* @param {?} error

@@ -101,2 +108,3 @@ * @return {?}

/**
* \@internal
* @param {?} error

@@ -121,7 +129,13 @@ * @return {?}

function ErrorHandler_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ErrorHandler.prototype._console;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ErrorHandler.prototype.rethrowError;
}
//# sourceMappingURL=error_handler.js.map

@@ -17,45 +17,47 @@ /**

/**
* Use by directives and components to emit custom Events.
* *
* ### Examples
* *
* In the following example, `Zippy` alternatively emits `open` and `close` events when its
* title gets clicked:
* *
* ```
* selector: 'zippy',
* template: `
* <div class="zippy">
* <div (click)="toggle()">Toggle</div>
* <div [hidden]="!visible">
* <ng-content></ng-content>
* </div>
* </div>`})
* export class Zippy {
* visible: boolean = true;
* @Output() open: EventEmitter<any> = new EventEmitter();
* @Output() close: EventEmitter<any> = new EventEmitter();
* *
* toggle() {
* this.visible = !this.visible;
* if (this.visible) {
* this.open.emit(null);
* } else {
* this.close.emit(null);
* }
* }
* }
* ```
* *
* The events payload can be accessed by the parameter `$event` on the components output event
* handler:
* *
* ```
* <zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
* ```
* *
* Uses Rx.Observable but provides an adapter to make it work as specified here:
* https://github.com/jhusain/observable-spec
* *
* Once a reference implementation of the spec is available, switch to it.
* Use by directives and components to emit custom Events.
*
* ### Examples
*
* In the following example, `Zippy` alternatively emits `open` and `close` events when its
* title gets clicked:
*
* ```
* \@Component({
* selector: 'zippy',
* template: `
* <div class="zippy">
* <div (click)="toggle()">Toggle</div>
* <div [hidden]="!visible">
* <ng-content></ng-content>
* </div>
* </div>`})
* export class Zippy {
* visible: boolean = true;
* \@Output() open: EventEmitter<any> = new EventEmitter();
* \@Output() close: EventEmitter<any> = new EventEmitter();
*
* toggle() {
* this.visible = !this.visible;
* if (this.visible) {
* this.open.emit(null);
* } else {
* this.close.emit(null);
* }
* }
* }
* ```
*
* The events payload can be accessed by the parameter `$event` on the components output event
* handler:
*
* ```
* <zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
* ```
*
* Uses Rx.Observable but provides an adapter to make it work as specified here:
* https://github.com/jhusain/observable-spec
*
* Once a reference implementation of the spec is available, switch to it.
* \@stable
*/

@@ -65,4 +67,4 @@ export var EventEmitter = (function (_super) {

/**
* Creates an instance of [EventEmitter], which depending on [isAsync],
* delivers events synchronously or asynchronously.
* Creates an instance of [EventEmitter], which depending on [isAsync],
* delivers events synchronously or asynchronously.
* @param {?=} isAsync

@@ -69,0 +71,0 @@ */

@@ -10,3 +10,3 @@ /**

/**
* Wraps Javascript Objects
* Wraps Javascript Objects
*/

@@ -13,0 +13,0 @@ export var StringMapWrapper = (function () {

@@ -7,7 +7,7 @@ var __extends = (this && this.__extends) || function (d, b) {

/**
* @license undefined
* 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
* @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
* @return {?}

@@ -19,3 +19,3 @@ */

/**
* @stable
* \@stable
*/

@@ -77,7 +77,10 @@ export var BaseError = (function (_super) {

function BaseError_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal *
* @type {?}
*/
BaseError.prototype._nativeError;
}
/**
* @stable
* \@stable
*/

@@ -84,0 +87,0 @@ export var WrappedError = (function (_super) {

@@ -8,14 +8,14 @@ /**

*/
import { OpaqueToken } from '../di/opaque_token';
import { InjectionToken } from '../di/injection_token';
/**
* @experimental i18n support is experimental.
*/
export declare const LOCALE_ID: OpaqueToken;
export declare const LOCALE_ID: InjectionToken<string>;
/**
* @experimental i18n support is experimental.
*/
export declare const TRANSLATIONS: OpaqueToken;
export declare const TRANSLATIONS: InjectionToken<string>;
/**
* @experimental i18n support is experimental.
*/
export declare const TRANSLATIONS_FORMAT: OpaqueToken;
export declare const TRANSLATIONS_FORMAT: InjectionToken<string>;

@@ -8,15 +8,15 @@ /**

*/
import { OpaqueToken } from '../di/opaque_token';
import { InjectionToken } from '../di/injection_token';
/**
* @experimental i18n support is experimental.
*/
export var /** @type {?} */ LOCALE_ID = new OpaqueToken('LocaleId');
export var /** @type {?} */ LOCALE_ID = new InjectionToken('LocaleId');
/**
* @experimental i18n support is experimental.
*/
export var /** @type {?} */ TRANSLATIONS = new OpaqueToken('Translations');
export var /** @type {?} */ TRANSLATIONS = new InjectionToken('Translations');
/**
* @experimental i18n support is experimental.
*/
export var /** @type {?} */ TRANSLATIONS_FORMAT = new OpaqueToken('TranslationsFormat');
export var /** @type {?} */ TRANSLATIONS_FORMAT = new InjectionToken('TranslationsFormat');
//# sourceMappingURL=tokens.js.map

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"LOCALE_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["LocaleId"]},"TRANSLATIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["Translations"]},"TRANSLATIONS_FORMAT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["TranslationsFormat"]}}},{"__symbolic":"module","version":1,"metadata":{"LOCALE_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["LocaleId"]},"TRANSLATIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["Translations"]},"TRANSLATIONS_FORMAT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["TranslationsFormat"]}}}]
[{"__symbolic":"module","version":3,"metadata":{"LOCALE_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["LocaleId"]},"TRANSLATIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["Translations"]},"TRANSLATIONS_FORMAT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["TranslationsFormat"]}}},{"__symbolic":"module","version":1,"metadata":{"LOCALE_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["LocaleId"]},"TRANSLATIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["Translations"]},"TRANSLATIONS_FORMAT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["TranslationsFormat"]}}}]

@@ -8,3 +8,3 @@ /**

*/
import { OpaqueToken } from '../di';
import { InjectionToken } from '../di';
import { BaseError } from '../facade/errors';

@@ -95,3 +95,8 @@ import { ViewEncapsulation } from '../metadata';

*/
export declare const COMPILER_OPTIONS: OpaqueToken;
export declare const COMPILER_OPTIONS: InjectionToken<{
useDebug?: boolean;
useJit?: boolean;
defaultEncapsulation?: ViewEncapsulation;
providers?: any[];
}[]>;
/**

@@ -98,0 +103,0 @@ * A factory for creating a Compiler

@@ -13,8 +13,9 @@ /**

};
import { Injectable, OpaqueToken } from '../di';
import { Injectable, InjectionToken } from '../di';
import { BaseError } from '../facade/errors';
import { stringify } from '../facade/lang';
/**
* Indicates that a component is still being loaded in a synchronous compile.
* *
* Indicates that a component is still being loaded in a synchronous compile.
*
* \@stable
*/

@@ -37,4 +38,5 @@ export var ComponentStillLoadingError = (function (_super) {

/**
* Combination of NgModuleFactory and ComponentFactorys.
* *
* Combination of NgModuleFactory and ComponentFactorys.
*
* \@experimental
*/

@@ -65,9 +67,10 @@ export var ModuleWithComponentFactories = (function () {

/**
* Low-level service for running the angular compiler during runtime
* to create {@link ComponentFactory}s, which
* can later be used to create and render a Component instance.
* *
* Each `@NgModule` provides an own `Compiler` to its injector,
* that will use the directives/pipes of the ng module for compilation
* of components.
* Low-level service for running the angular compiler during runtime
* to create {\@link ComponentFactory}s, which
* can later be used to create and render a Component instance.
*
* Each `\@NgModule` provides an own `Compiler` to its injector,
* that will use the directives/pipes of the ng module for compilation
* of components.
* \@stable
*/

@@ -78,5 +81,5 @@ export var Compiler = (function () {

/**
* Compiles the given NgModule and all of its components. All templates of the components listed
* in `entryComponents`
* have to be inlined. Otherwise throws a {@link ComponentStillLoadingError}.
* Compiles the given NgModule and all of its components. All templates of the components listed
* in `entryComponents`
* have to be inlined. Otherwise throws a {\@link ComponentStillLoadingError}.
* @param {?} moduleType

@@ -87,3 +90,3 @@ * @return {?}

/**
* Compiles the given NgModule and all of its components
* Compiles the given NgModule and all of its components
* @param {?} moduleType

@@ -94,3 +97,3 @@ * @return {?}

/**
* Same as {@link compileModuleSync} but also creates ComponentFactories for all components.
* Same as {\@link compileModuleSync} but also creates ComponentFactories for all components.
* @param {?} moduleType

@@ -103,3 +106,3 @@ * @return {?}

/**
* Same as {@link compileModuleAsync} but also creates ComponentFactories for all components.
* Same as {\@link compileModuleAsync} but also creates ComponentFactories for all components.
* @param {?} moduleType

@@ -112,6 +115,6 @@ * @return {?}

/**
* Exposes the CSS-style selectors that have been used in `ngContent` directives within
* the template of the given component.
* This is used by the `upgrade` library to compile the appropriate transclude content
* in the Angular 1 wrapper component.
* Exposes the CSS-style selectors that have been used in `ngContent` directives within
* the template of the given component.
* This is used by the `upgrade` library to compile the appropriate transclude content
* in the Angular 1 wrapper component.
* @param {?} component

@@ -122,3 +125,3 @@ * @return {?}

/**
* Clears all caches.
* Clears all caches.
* @return {?}

@@ -128,3 +131,3 @@ */

/**
* Clears the cache for the given component/ngModule.
* Clears the cache for the given component/ngModule.
* @param {?} type

@@ -155,6 +158,7 @@ * @return {?}

*/
export var /** @type {?} */ COMPILER_OPTIONS = new OpaqueToken('compilerOptions');
export var /** @type {?} */ COMPILER_OPTIONS = new InjectionToken('compilerOptions');
/**
* A factory for creating a Compiler
* *
* A factory for creating a Compiler
*
* \@experimental
* @abstract

@@ -161,0 +165,0 @@ */

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"ComponentStillLoadingError":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../facade/errors","name":"BaseError"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../type","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ModuleWithComponentFactories":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./ng_module_factory","name":"NgModuleFactory","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":37,"character":46,"context":{"typeName":"T"}}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./component_factory","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}]}},"Compiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../di","name":"Injectable"}}],"members":{"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"getNgContentSelectors":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}]}},"COMPILER_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di","name":"OpaqueToken"},"arguments":["compilerOptions"]},"CompilerFactory":{"__symbolic":"class","members":{"createCompiler":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"ComponentStillLoadingError":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../facade/errors","name":"BaseError"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../type","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ModuleWithComponentFactories":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./ng_module_factory","name":"NgModuleFactory","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":37,"character":46,"context":{"typeName":"T"}}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./component_factory","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}]}},"Compiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../di","name":"Injectable"}}],"members":{"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"getNgContentSelectors":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}]}},"COMPILER_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di","name":"OpaqueToken"},"arguments":["compilerOptions"]},"CompilerFactory":{"__symbolic":"class","members":{"createCompiler":[{"__symbolic":"method"}]}}}}]
[{"__symbolic":"module","version":3,"metadata":{"ComponentStillLoadingError":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../facade/errors","name":"BaseError"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../type","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ModuleWithComponentFactories":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./ng_module_factory","name":"NgModuleFactory","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":37,"character":46,"context":{"typeName":"T"}}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./component_factory","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}]}},"Compiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../di","name":"Injectable"}}],"members":{"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"getNgContentSelectors":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}]}},"COMPILER_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di","name":"InjectionToken"},"arguments":["compilerOptions"]},"CompilerFactory":{"__symbolic":"class","members":{"createCompiler":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"ComponentStillLoadingError":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../facade/errors","name":"BaseError"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../type","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ModuleWithComponentFactories":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./ng_module_factory","name":"NgModuleFactory","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":37,"character":46,"context":{"typeName":"T"}}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./component_factory","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}]}},"Compiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../di","name":"Injectable"}}],"members":{"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"getNgContentSelectors":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}]}},"COMPILER_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di","name":"InjectionToken"},"arguments":["compilerOptions"]},"CompilerFactory":{"__symbolic":"class","members":{"createCompiler":[{"__symbolic":"method"}]}}}}]

@@ -16,3 +16,3 @@ /**

/**
* @stable
* \@stable
*/

@@ -47,2 +47,3 @@ export var NoComponentFactoryError = (function (_super) {

/**
* \@stable
* @abstract

@@ -49,0 +50,0 @@ */

@@ -17,7 +17,8 @@ /**

/**
* Represents an instance of a Component created via a {@link ComponentFactory}.
* *
* `ComponentRef` provides access to the Component Instance as well other objects related to this
* Component Instance and allows you to destroy the Component Instance via the {@link #destroy}
* method.
* Represents an instance of a Component created via a {\@link ComponentFactory}.
*
* `ComponentRef` provides access to the Component Instance as well other objects related to this
* Component Instance and allows you to destroy the Component Instance via the {\@link #destroy}
* method.
* \@stable
* @abstract

@@ -30,3 +31,3 @@ */

/**
* Location of the Host Element of this Component Instance.
* Location of the Host Element of this Component Instance.
* @return {?}

@@ -40,3 +41,3 @@ */

/**
* The injector on which the component instance exists.
* The injector on which the component instance exists.
* @return {?}

@@ -50,3 +51,3 @@ */

/**
* The instance of the Component.
* The instance of the Component.
* @return {?}

@@ -61,3 +62,3 @@ */

/**
* The {@link ViewRef} of the Host View of this Component instance.
* The {\@link ViewRef} of the Host View of this Component instance.
* @return {?}

@@ -72,3 +73,3 @@ */

/**
* The {@link ChangeDetectorRef} of the Component instance.
* The {\@link ChangeDetectorRef} of the Component instance.
* @return {?}

@@ -82,3 +83,3 @@ */

/**
* The component type.
* The component type.
* @return {?}

@@ -91,3 +92,3 @@ */

/**
* Destroys the component instance and all of the data structures associated with it.
* Destroys the component instance and all of the data structures associated with it.
* @abstract

@@ -98,3 +99,3 @@ * @return {?}

/**
* Allows to register a callback that will be called when the component is destroyed.
* Allows to register a callback that will be called when the component is destroyed.
* @abstract

@@ -195,3 +196,3 @@ * @param {?} callback

/**
* @stable
* \@stable
*/

@@ -218,3 +219,3 @@ export var ComponentFactory = (function () {

/**
* Creates a new component.
* Creates a new component.
* @param {?} injector

@@ -238,3 +239,6 @@ * @param {?=} projectableNodes

function ComponentFactory_tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ComponentFactory.prototype._viewClass;

@@ -241,0 +245,0 @@ /** @type {?} */

@@ -1,23 +0,1 @@

/**
* @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
*/
/**
* A wrapper around a native element inside of a View.
*
* An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM
* element.
*
* @security Permitting direct access to the DOM can make your application more vulnerable to
* XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the
* [Security Guide](http://g.co/ng/security).
*
* @stable
*/
// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,
// i.e. users have to ask for what they need. With that, we can build better analysis tools
// and could do better codegen in the future.
export var ElementRef = (function () {

@@ -36,17 +14,18 @@ /**

* (e.g. when the application runs in a web worker).
* *
*
* <div class="callout is-critical">
* <header>Use with caution</header>
* <p>
* Use this API as the last resort when direct access to DOM is needed. Use templating and
* data-binding provided by Angular instead. Alternatively you take a look at {@link Renderer}
* which provides API that can safely be used even when direct access to native elements is not
* supported.
* </p>
* <p>
* Relying on direct DOM access creates tight coupling between your application and rendering
* layers which will make it impossible to separate the two and deploy your application into a
* web worker.
* </p>
* <header>Use with caution</header>
* <p>
* Use this API as the last resort when direct access to DOM is needed. Use templating and
* data-binding provided by Angular instead. Alternatively you take a look at {\@link Renderer}
* which provides API that can safely be used even when direct access to native elements is not
* supported.
* </p>
* <p>
* Relying on direct DOM access creates tight coupling between your application and rendering
* layers which will make it impossible to separate the two and deploy your application into a
* web worker.
* </p>
* </div>
* \@stable
* @type {?}

@@ -53,0 +32,0 @@ */

@@ -15,28 +15,31 @@ /**

/**
* An error thrown if application changes model breaking the top-down data flow.
* *
* This exception is only thrown in dev mode.
* *
* <!-- TODO: Add a link once the dev mode option is configurable -->
* *
* ### Example
* *
* ```typescript
* selector: 'parent',
* template: '<child [prop]="parentProp"></child>',
* })
* class Parent {
* parentProp = 'init';
* }
* *
* class Child {
* constructor(public parent: Parent) {}
* *
* set prop(v) {
* // this updates the parent property, which is disallowed during change detection
* // this will result in ExpressionChangedAfterItHasBeenCheckedError
* this.parent.parentProp = 'updated';
* }
* }
* ```
* An error thrown if application changes model breaking the top-down data flow.
*
* This exception is only thrown in dev mode.
*
* <!-- TODO: Add a link once the dev mode option is configurable -->
*
* ### Example
*
* ```typescript
* \@Component({
* selector: 'parent',
* template: '<child [prop]="parentProp"></child>',
* })
* class Parent {
* parentProp = 'init';
* }
*
* \@Directive({selector: 'child', inputs: ['prop']})
* class Child {
* constructor(public parent: Parent) {}
*
* set prop(v) {
* // this updates the parent property, which is disallowed during change detection
* // this will result in ExpressionChangedAfterItHasBeenCheckedError
* this.parent.parentProp = 'updated';
* }
* }
* ```
* \@stable
*/

@@ -62,6 +65,7 @@ export var ExpressionChangedAfterItHasBeenCheckedError = (function (_super) {

/**
* Thrown when an exception was raised during view creation, change detection or destruction.
* *
* This error wraps the original exception to attach additional contextual information that can
* be useful for debugging.
* Thrown when an exception was raised during view creation, change detection or destruction.
*
* This error wraps the original exception to attach additional contextual information that can
* be useful for debugging.
* \@stable
*/

@@ -88,7 +92,8 @@ export var ViewWrappedError = (function (_super) {

/**
* Thrown when a destroyed view is used.
* *
* This error indicates a bug in the framework.
* *
* This is an internal Angular error.
* Thrown when a destroyed view is used.
*
* This error indicates a bug in the framework.
*
* This is an internal Angular error.
* \@stable
*/

@@ -95,0 +100,0 @@ export var ViewDestroyedError = (function (_super) {

@@ -9,3 +9,4 @@ /**

/**
* Used to load ng module factories.
* Used to load ng module factories.
* \@stable
* @abstract

@@ -26,3 +27,4 @@ */

/**
* Registers a loaded module. Should only be called from generated NgModuleFactory code.
* Registers a loaded module. Should only be called from generated NgModuleFactory code.
* \@experimental
* @param {?} id

@@ -46,5 +48,6 @@ * @param {?} factory

/**
* Returns the NgModuleFactory with the given id, if it exists and has been loaded.
* Factories for modules that do not specify an `id` cannot be retrieved. Throws if the module
* cannot be found.
* Returns the NgModuleFactory with the given id, if it exists and has been loaded.
* Factories for modules that do not specify an `id` cannot be retrieved. Throws if the module
* cannot be found.
* \@experimental
* @param {?} id

@@ -51,0 +54,0 @@ * @return {?}

@@ -18,7 +18,8 @@ /**

/**
* Represents an instance of an NgModule created via a {@link NgModuleFactory}.
* *
* `NgModuleRef` provides access to the NgModule Instance as well other objects related to this
* NgModule Instance.
* *
* Represents an instance of an NgModule created via a {\@link NgModuleFactory}.
*
* `NgModuleRef` provides access to the NgModule Instance as well other objects related to this
* NgModule Instance.
*
* \@stable
* @abstract

@@ -31,3 +32,3 @@ */

/**
* The injector that contains all of the providers of the NgModule.
* The injector that contains all of the providers of the NgModule.
* @return {?}

@@ -41,4 +42,4 @@ */

/**
* The ComponentFactoryResolver to get hold of the ComponentFactories
* declared in the `entryComponents` property of the module.
* The ComponentFactoryResolver to get hold of the ComponentFactories
* declared in the `entryComponents` property of the module.
* @return {?}

@@ -52,3 +53,3 @@ */

/**
* The NgModule instance.
* The NgModule instance.
* @return {?}

@@ -61,3 +62,3 @@ */

/**
* Destroys the module instance and all of the data structures associated with it.
* Destroys the module instance and all of the data structures associated with it.
* @abstract

@@ -68,3 +69,3 @@ * @return {?}

/**
* Allows to register a callback that will be called when the module is destroyed.
* Allows to register a callback that will be called when the module is destroyed.
* @abstract

@@ -78,3 +79,3 @@ * @param {?} callback

/**
* @experimental
* \@experimental
*/

@@ -81,0 +82,0 @@ export var NgModuleFactory = (function () {

@@ -12,21 +12,23 @@ /**

/**
* An unmodifiable list of items that Angular keeps up to date when the state
* of the application changes.
* *
* The type of object that {@link Query} and {@link ViewQueryMetadata} provide.
* *
* Implements an iterable interface, therefore it can be used in both ES6
* javascript `for (var i of items)` loops as well as in Angular templates with
* `*ngFor="let i of myList"`.
* *
* Changes can be observed by subscribing to the changes `Observable`.
* *
* NOTE: In the future this class will implement an `Observable` interface.
* *
* ### Example ([live demo](http://plnkr.co/edit/RX8sJnQYl9FWuSCWme5z?p=preview))
* ```typescript
* class Container {
* @ViewChildren(Item) items:QueryList<Item>;
* }
* ```
* An unmodifiable list of items that Angular keeps up to date when the state
* of the application changes.
*
* The type of object that {\@link Query} and {\@link ViewQueryMetadata} provide.
*
* Implements an iterable interface, therefore it can be used in both ES6
* javascript `for (var i of items)` loops as well as in Angular templates with
* `*ngFor="let i of myList"`.
*
* Changes can be observed by subscribing to the changes `Observable`.
*
* NOTE: In the future this class will implement an `Observable` interface.
*
* ### Example ([live demo](http://plnkr.co/edit/RX8sJnQYl9FWuSCWme5z?p=preview))
* ```typescript
* \@Component({...})
* class Container {
* \@ViewChildren(Item) items:QueryList<Item>;
* }
* ```
* \@stable
*/

@@ -72,4 +74,4 @@ export var QueryList = (function () {

/**
* See
* [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
* See
* [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
* @param {?} fn

@@ -80,4 +82,4 @@ * @return {?}

/**
* See
* [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
* See
* [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
* @param {?} fn

@@ -90,4 +92,4 @@ * @return {?}

/**
* See
* [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)
* See
* [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)
* @param {?} fn

@@ -98,4 +100,4 @@ * @return {?}

/**
* See
* [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)
* See
* [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)
* @param {?} fn

@@ -109,4 +111,4 @@ * @param {?} init

/**
* See
* [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
* See
* [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
* @param {?} fn

@@ -117,4 +119,4 @@ * @return {?}

/**
* See
* [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
* See
* [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
* @param {?} fn

@@ -151,3 +153,3 @@ * @return {?}

/**
* internal
* internal
* @return {?}

@@ -158,3 +160,3 @@ */

/**
* internal
* internal
* @return {?}

@@ -161,0 +163,0 @@ */

@@ -13,5 +13,6 @@ /**

/**
* Configuration for SystemJsNgModuleLoader.
* token.
* *
* Configuration for SystemJsNgModuleLoader.
* token.
*
* \@experimental
* @abstract

@@ -41,3 +42,4 @@ */

/**
* NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory
* NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory
* \@experimental
*/

@@ -44,0 +46,0 @@ export var SystemJsNgModuleLoader = (function () {

@@ -15,12 +15,13 @@ /**

/**
* Represents an Embedded Template that can be used to instantiate Embedded Views.
* *
* You can access a `TemplateRef`, in two ways. Via a directive placed on a `<template>` element (or
* directive prefixed with `*`) and have the `TemplateRef` for this Embedded View injected into the
* constructor of the directive using the `TemplateRef` Token. Alternatively you can query for the
* `TemplateRef` from a Component or a Directive via {@link Query}.
* *
* To instantiate Embedded Views based on a Template, use
* {@link ViewContainerRef#createEmbeddedView}, which will create the View and attach it to the
* View Container.
* Represents an Embedded Template that can be used to instantiate Embedded Views.
*
* You can access a `TemplateRef`, in two ways. Via a directive placed on a `<template>` element (or
* directive prefixed with `*`) and have the `TemplateRef` for this Embedded View injected into the
* constructor of the directive using the `TemplateRef` Token. Alternatively you can query for the
* `TemplateRef` from a Component or a Directive via {\@link Query}.
*
* To instantiate Embedded Views based on a Template, use
* {\@link ViewContainerRef#createEmbeddedView}, which will create the View and attach it to the
* View Container.
* \@stable
* @abstract

@@ -27,0 +28,0 @@ */

@@ -12,17 +12,18 @@ /**

/**
* Represents a container where one or more Views can be attached.
* *
* The container can contain two kinds of Views. Host Views, created by instantiating a
* {@link Component} via {@link #createComponent}, and Embedded Views, created by instantiating an
* {@link TemplateRef Embedded Template} via {@link #createEmbeddedView}.
* *
* The location of the View Container within the containing View is specified by the Anchor
* `element`. Each View Container can have only one Anchor Element and each Anchor Element can only
* have a single View Container.
* *
* Root elements of Views attached to this container become siblings of the Anchor Element in
* the Rendered View.
* *
* To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected
* with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.
* Represents a container where one or more Views can be attached.
*
* The container can contain two kinds of Views. Host Views, created by instantiating a
* {\@link Component} via {\@link #createComponent}, and Embedded Views, created by instantiating an
* {\@link TemplateRef Embedded Template} via {\@link #createEmbeddedView}.
*
* The location of the View Container within the containing View is specified by the Anchor
* `element`. Each View Container can have only one Anchor Element and each Anchor Element can only
* have a single View Container.
*
* Root elements of Views attached to this container become siblings of the Anchor Element in
* the Rendered View.
*
* To access a `ViewContainerRef` of an Element, you can either place a {\@link Directive} injected
* with `ViewContainerRef` on the Element, or you obtain it via a {\@link ViewChild} query.
* \@stable
* @abstract

@@ -35,4 +36,4 @@ */

/**
* Anchor element that specifies the location of this container in the containing View.
* <!-- TODO: rename to anchorElement -->
* Anchor element that specifies the location of this container in the containing View.
* <!-- TODO: rename to anchorElement -->
* @return {?}

@@ -61,3 +62,3 @@ */

/**
* Destroys all Views in this container.
* Destroys all Views in this container.
* @abstract

@@ -68,3 +69,3 @@ * @return {?}

/**
* Returns the {@link ViewRef} for the View located in this container at the specified index.
* Returns the {\@link ViewRef} for the View located in this container at the specified index.
* @abstract

@@ -77,3 +78,3 @@ * @param {?} index

/**
* Returns the number of Views currently attached to this container.
* Returns the number of Views currently attached to this container.
* @return {?}

@@ -87,8 +88,8 @@ */

/**
* Instantiates an Embedded View based on the {@link TemplateRef `templateRef`} and inserts it
* into this container at the specified `index`.
* *
* If `index` is not specified, the new View will be inserted as the last View in the container.
* *
* Returns the {@link ViewRef} for the newly created View.
* Instantiates an Embedded View based on the {\@link TemplateRef `templateRef`} and inserts it
* into this container at the specified `index`.
*
* If `index` is not specified, the new View will be inserted as the last View in the container.
*
* Returns the {\@link ViewRef} for the newly created View.
* @abstract

@@ -102,13 +103,13 @@ * @param {?} templateRef

/**
* Instantiates a single {@link Component} and inserts its Host View into this container at the
* specified `index`.
* *
* The component is instantiated using its {@link ComponentFactory} which can be
* obtained via {@link ComponentFactoryResolver#resolveComponentFactory}.
* *
* If `index` is not specified, the new View will be inserted as the last View in the container.
* *
* You can optionally specify the {@link Injector} that will be used as parent for the Component.
* *
* Returns the {@link ComponentRef} of the Host View created for the newly instantiated Component.
* Instantiates a single {\@link Component} and inserts its Host View into this container at the
* specified `index`.
*
* The component is instantiated using its {\@link ComponentFactory} which can be
* obtained via {\@link ComponentFactoryResolver#resolveComponentFactory}.
*
* If `index` is not specified, the new View will be inserted as the last View in the container.
*
* You can optionally specify the {\@link Injector} that will be used as parent for the Component.
*
* Returns the {\@link ComponentRef} of the Host View created for the newly instantiated Component.
* @abstract

@@ -123,7 +124,7 @@ * @param {?} componentFactory

/**
* Inserts a View identified by a {@link ViewRef} into the container at the specified `index`.
* *
* If `index` is not specified, the new View will be inserted as the last View in the container.
* *
* Returns the inserted {@link ViewRef}.
* Inserts a View identified by a {\@link ViewRef} into the container at the specified `index`.
*
* If `index` is not specified, the new View will be inserted as the last View in the container.
*
* Returns the inserted {\@link ViewRef}.
* @abstract

@@ -136,5 +137,5 @@ * @param {?} viewRef

/**
* Moves a View identified by a {@link ViewRef} into the container at the specified `index`.
* *
* Returns the inserted {@link ViewRef}.
* Moves a View identified by a {\@link ViewRef} into the container at the specified `index`.
*
* Returns the inserted {\@link ViewRef}.
* @abstract

@@ -147,4 +148,4 @@ * @param {?} viewRef

/**
* Returns the index of the View, specified via {@link ViewRef}, within the current container or
* `-1` if this container doesn't contain the View.
* Returns the index of the View, specified via {\@link ViewRef}, within the current container or
* `-1` if this container doesn't contain the View.
* @abstract

@@ -156,5 +157,5 @@ * @param {?} viewRef

/**
* Destroys a View attached to this container at the specified `index`.
* *
* If `index` is not specified, the last View in the container will be removed.
* Destroys a View attached to this container at the specified `index`.
*
* If `index` is not specified, the last View in the container will be removed.
* @abstract

@@ -166,5 +167,5 @@ * @param {?=} index

/**
* Use along with {@link #insert} to move a View within the current container.
* *
* If the `index` param is omitted, the last {@link ViewRef} is detached.
* Use along with {\@link #insert} to move a View within the current container.
*
* If the `index` param is omitted, the last {\@link ViewRef} is detached.
* @abstract

@@ -333,9 +334,21 @@ * @param {?=} index

function ViewContainerRef__tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ViewContainerRef_.prototype._createComponentInContainerScope;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ViewContainerRef_.prototype._insertScope;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ViewContainerRef_.prototype._removeScope;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ViewContainerRef_.prototype._detachScope;

@@ -342,0 +355,0 @@ /** @type {?} */

@@ -12,4 +12,4 @@ /**

/**
* A ViewContainer is created for elements that have a ViewContainerRef
* to keep track of the nested views.
* A ViewContainer is created for elements that have a ViewContainerRef
* to keep track of the nested views.
*/

@@ -16,0 +16,0 @@ export var ViewContainer = (function () {

@@ -17,2 +17,3 @@ /**

/**
* \@stable
* @abstract

@@ -26,3 +27,3 @@ */

/**
* Destroys the view and all of the data structures associated with it.
* Destroys the view and all of the data structures associated with it.
* @abstract

@@ -49,53 +50,54 @@ * @return {?}

/**
* Represents an Angular View.
* *
* <!-- TODO: move the next two paragraphs to the dev guide -->
* A View is a fundamental building block of the application UI. It is the smallest grouping of
* Elements which are created and destroyed together.
* *
* Properties of elements in a View can change, but the structure (number and order) of elements in
* a View cannot. Changing the structure of Elements can only be done by inserting, moving or
* removing nested Views via a {@link ViewContainerRef}. Each View can contain many View Containers.
* <!-- /TODO -->
* *
* ### Example
* *
* Given this template...
* *
* ```
* Count: {{items.length}}
* <ul>
* <li *ngFor="let item of items">{{item}}</li>
* </ul>
* ```
* *
* We have two {@link TemplateRef}s:
* *
* Outer {@link TemplateRef}:
* ```
* Count: {{items.length}}
* <ul>
* <template ngFor let-item [ngForOf]="items"></template>
* </ul>
* ```
* *
* Inner {@link TemplateRef}:
* ```
* <li>{{item}}</li>
* ```
* *
* Notice that the original template is broken down into two separate {@link TemplateRef}s.
* *
* The outer/inner {@link TemplateRef}s are then assembled into views like so:
* *
* ```
* <!-- ViewRef: outer-0 -->
* Count: 2
* <ul>
* <template view-container-ref></template>
* <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->
* <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->
* </ul>
* <!-- /ViewRef: outer-0 -->
* ```
* Represents an Angular View.
*
* <!-- TODO: move the next two paragraphs to the dev guide -->
* A View is a fundamental building block of the application UI. It is the smallest grouping of
* Elements which are created and destroyed together.
*
* Properties of elements in a View can change, but the structure (number and order) of elements in
* a View cannot. Changing the structure of Elements can only be done by inserting, moving or
* removing nested Views via a {\@link ViewContainerRef}. Each View can contain many View Containers.
* <!-- /TODO -->
*
* ### Example
*
* Given this template...
*
* ```
* Count: {{items.length}}
* <ul>
* <li *ngFor="let item of items">{{item}}</li>
* </ul>
* ```
*
* We have two {\@link TemplateRef}s:
*
* Outer {\@link TemplateRef}:
* ```
* Count: {{items.length}}
* <ul>
* <template ngFor let-item [ngForOf]="items"></template>
* </ul>
* ```
*
* Inner {\@link TemplateRef}:
* ```
* <li>{{item}}</li>
* ```
*
* Notice that the original template is broken down into two separate {\@link TemplateRef}s.
*
* The outer/inner {\@link TemplateRef}s are then assembled into views like so:
*
* ```
* <!-- ViewRef: outer-0 -->
* Count: 2
* <ul>
* <template view-container-ref></template>
* <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->
* <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->
* </ul>
* <!-- /ViewRef: outer-0 -->
* ```
* \@experimental
* @abstract

@@ -213,3 +215,6 @@ */

function ViewRef__tsickle_Closure_declarations() {
/** @type {?} */
/**
* \@internal
* @type {?}
*/
ViewRef_.prototype._originalMode;

@@ -216,0 +221,0 @@ /** @type {?} */

@@ -28,2 +28,3 @@ /**

/**
* \@internal
* @param {?} renderComponentType

@@ -1103,3 +1104,3 @@ * @return {?}

/**
* This is a private API only used by the compiler to read the view class.
* This is a private API only used by the compiler to read the view class.
* @param {?} componentFactory

@@ -1106,0 +1107,0 @@ * @return {?}

@@ -31,4 +31,4 @@ /**

/**
* Cost of making objects: http://jsperf.com/instantiate-size-of-object
* *
* Cost of making objects: http://jsperf.com/instantiate-size-of-object
*
* @abstract

@@ -113,4 +113,4 @@ */

/**
* Overwritten by implementations.
* Returns the ComponentRef for the host element for ViewType.HOST.
* Overwritten by implementations.
* Returns the ComponentRef for the host element for ViewType.HOST.
* @param {?} rootSelectorOrNode

@@ -121,3 +121,3 @@ * @return {?}

/**
* Overwritten by implementations.
* Overwritten by implementations.
* @param {?} templateNodeIndex

@@ -164,3 +164,3 @@ * @return {?}

/**
* Overwritten by implementations
* Overwritten by implementations
* @param {?} token

@@ -219,3 +219,3 @@ * @param {?} nodeIndex

/**
* Overwritten by implementations
* Overwritten by implementations
* @return {?}

@@ -225,3 +225,3 @@ */

/**
* Overwritten by implementations
* Overwritten by implementations
* @return {?}

@@ -391,3 +391,3 @@ */

/**
* Overwritten by implementations
* Overwritten by implementations
* @param {?} cb

@@ -399,3 +399,3 @@ * @param {?} c

/**
* Overwritten by implementations
* Overwritten by implementations
* @param {?} nodeIndex

@@ -409,3 +409,3 @@ * @param {?} ngContentIndex

/**
* Overwritten by implementations
* Overwritten by implementations
* @return {?}

@@ -443,3 +443,3 @@ */

/**
* Overwritten by implementations
* Overwritten by implementations
* @return {?}

@@ -446,0 +446,0 @@ */

@@ -8,3 +8,3 @@ /**

*/
import { OpaqueToken } from '../di/opaque_token';
import { InjectionToken } from '../di/injection_token';
import { Type } from '../type';

@@ -45,3 +45,3 @@ /**

*/
export declare const ANALYZE_FOR_ENTRY_COMPONENTS: OpaqueToken;
export declare const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken<any>;
/**

@@ -48,0 +48,0 @@ * Type of the Attribute decorator / constructor function.

@@ -8,3 +8,3 @@ /**

*/
import { OpaqueToken } from '../di/opaque_token';
import { InjectionToken } from '../di/injection_token';
import { makeParamDecorator, makePropDecorator } from '../util/decorators';

@@ -45,3 +45,3 @@ /**

*/
export var /** @type {?} */ ANALYZE_FOR_ENTRY_COMPONENTS = new OpaqueToken('AnalyzeForEntryComponents');
export var /** @type {?} */ ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents');
/**

@@ -55,7 +55,8 @@ * Attribute decorator and metadata.

/**
* Base class for query metadata.
* *
* See {@link ContentChildren}, {@link ContentChild}, {@link ViewChildren}, {@link ViewChild} for
* more information.
* *
* Base class for query metadata.
*
* See {\@link ContentChildren}, {\@link ContentChild}, {\@link ViewChildren}, {\@link ViewChild} for
* more information.
*
* \@stable
* @abstract

@@ -62,0 +63,0 @@ */

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"ANALYZE_FOR_ENTRY_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["AnalyzeForEntryComponents"]},"Attribute":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makeParamDecorator"},"arguments":["Attribute",[["attributeName",{"__symbolic":"reference","name":"undefined"}]]]},"Query":{"__symbolic":"class"},"ContentChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":false,"descendants":false,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ContentChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":false,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]}}},{"__symbolic":"module","version":1,"metadata":{"ANALYZE_FOR_ENTRY_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/opaque_token","name":"OpaqueToken"},"arguments":["AnalyzeForEntryComponents"]},"Attribute":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makeParamDecorator"},"arguments":["Attribute",[["attributeName",{"__symbolic":"reference","name":"undefined"}]]]},"Query":{"__symbolic":"class"},"ContentChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":false,"descendants":false,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ContentChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":false,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]}}}]
[{"__symbolic":"module","version":3,"metadata":{"ANALYZE_FOR_ENTRY_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["AnalyzeForEntryComponents"]},"Attribute":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makeParamDecorator"},"arguments":["Attribute",[["attributeName",{"__symbolic":"reference","name":"undefined"}]]]},"Query":{"__symbolic":"class"},"ContentChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":false,"descendants":false,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ContentChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":false,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]}}},{"__symbolic":"module","version":1,"metadata":{"ANALYZE_FOR_ENTRY_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"../di/injection_token","name":"InjectionToken"},"arguments":["AnalyzeForEntryComponents"]},"Attribute":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makeParamDecorator"},"arguments":["Attribute",[["attributeName",{"__symbolic":"reference","name":"undefined"}]]]},"Query":{"__symbolic":"class"},"ContentChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":false,"descendants":false,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ContentChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ContentChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":false,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChildren":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChildren",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":false,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]},"ViewChild":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../util/decorators","name":"makePropDecorator"},"arguments":["ViewChild",[["selector",{"__symbolic":"reference","name":"undefined"}],{"first":true,"isViewQuery":true,"descendants":true,"read":{"__symbolic":"reference","name":"undefined"}}],{"__symbolic":"reference","name":"Query"}]}}}]

@@ -31,10 +31,14 @@ /**

/**
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnChanges'}
* *
* `ngOnChanges` is called right after the data-bound properties have been checked and before view
* and content children are checked if at least one of them has changed.
* The `changes` parameter contains the changed properties.
* *
* See {@linkDocs guide/lifecycle-hooks#onchanges "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called when any data-bound property of a directive changes.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnChanges'}
*
* \@description
* `ngOnChanges` is called right after the data-bound properties have been checked and before view
* and content children are checked if at least one of them has changed.
* The `changes` parameter contains the changed properties.
*
* See {\@linkDocs guide/lifecycle-hooks#onchanges "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -54,11 +58,15 @@ */

/**
* initialized.
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnInit'}
* *
* `ngOnInit` is called right after the directive's data-bound properties have been checked for the
* first time, and before any of its children have been checked. It is invoked only once when the
* directive is instantiated.
* *
* See {@linkDocs guide/lifecycle-hooks "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called after data-bound properties of a directive are
* initialized.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnInit'}
*
* \@description
* `ngOnInit` is called right after the directive's data-bound properties have been checked for the
* first time, and before any of its children have been checked. It is invoked only once when the
* directive is instantiated.
*
* See {\@linkDocs guide/lifecycle-hooks "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -77,17 +85,21 @@ */

/**
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='DoCheck'}
* *
* `ngDoCheck` gets called to check the changes in the directives in addition to the default
* algorithm. The default change detection algorithm looks for differences by comparing
* bound-property values by reference across change detection runs.
* *
* Note that a directive typically should not use both `DoCheck` and {@link OnChanges} to respond to
* changes on the same input, as `ngOnChanges` will continue to be called when the default change
* detector detects changes.
* *
* See {@link KeyValueDiffers} and {@link IterableDiffers} for implementing custom dirty checking
* for collections.
* *
* See {@linkDocs guide/lifecycle-hooks#docheck "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called when Angular dirty checks a directive.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='DoCheck'}
*
* \@description
* `ngDoCheck` gets called to check the changes in the directives in addition to the default
* algorithm. The default change detection algorithm looks for differences by comparing
* bound-property values by reference across change detection runs.
*
* Note that a directive typically should not use both `DoCheck` and {\@link OnChanges} to respond to
* changes on the same input, as `ngOnChanges` will continue to be called when the default change
* detector detects changes.
*
* See {\@link KeyValueDiffers} and {\@link IterableDiffers} for implementing custom dirty checking
* for collections.
*
* See {\@linkDocs guide/lifecycle-hooks#docheck "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -106,9 +118,13 @@ */

/**
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnDestroy'}
* *
* `ngOnDestroy` callback is typically used for any custom cleanup that needs to occur when the
* instance is destroyed.
* *
* See {@linkDocs guide/lifecycle-hooks "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called when a directive, pipe or service is destroyed.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnDestroy'}
*
* \@description
* `ngOnDestroy` callback is typically used for any custom cleanup that needs to occur when the
* instance is destroyed.
*
* See {\@linkDocs guide/lifecycle-hooks "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -127,8 +143,12 @@ */

/**
* *
* initialized.
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentInit'}
* *
* See {@linkDocs guide/lifecycle-hooks#aftercontent "Lifecycle Hooks Guide"}.
* *
*
* \@whatItDoes Lifecycle hook that is called after a directive's content has been fully
* initialized.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentInit'}
*
* \@description
* See {\@linkDocs guide/lifecycle-hooks#aftercontent "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -147,6 +167,10 @@ */

/**
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentChecked'}
* *
* See {@linkDocs guide/lifecycle-hooks#aftercontent "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called after every check of a directive's content.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentChecked'}
*
* \@description
* See {\@linkDocs guide/lifecycle-hooks#aftercontent "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -165,7 +189,11 @@ */

/**
* initialized.
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewInit'}
* *
* See {@linkDocs guide/lifecycle-hooks#afterview "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called after a component's view has been fully
* initialized.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewInit'}
*
* \@description
* See {\@linkDocs guide/lifecycle-hooks#afterview "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -184,6 +212,10 @@ */

/**
* {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewChecked'}
* *
* See {@linkDocs guide/lifecycle-hooks#afterview "Lifecycle Hooks Guide"}.
* *
* \@whatItDoes Lifecycle hook that is called after every check of a component's view.
* \@howToUse
* {\@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewChecked'}
*
* \@description
* See {\@linkDocs guide/lifecycle-hooks#afterview "Lifecycle Hooks Guide"}.
*
* \@stable
* @abstract

@@ -190,0 +222,0 @@ */

@@ -16,24 +16,25 @@ /**

/**
* Metadata properties available for configuring Views.
* *
* For details on the `@Component` annotation, see {@link Component}.
* *
* ### Example
* *
* ```
* selector: 'greet',
* template: 'Hello {{name}}!',
* })
* class Greet {
* name: string;
* *
* constructor() {
* this.name = 'World';
* }
* }
* ```
* *
* Metadata properties available for configuring Views.
*
* For details on the `\@Component` annotation, see {\@link Component}.
*
* ### Example
*
* ```
* \@Component({
* selector: 'greet',
* template: 'Hello {{name}}!',
* })
* class Greet {
* name: string;
*
* constructor() {
* this.name = 'World';
* }
* }
* ```
*
* @deprecated Use Component instead.
* *
* {@link Component}
*
* {\@link Component}
*/

@@ -58,3 +59,3 @@ export var ViewMetadata = (function () {

/**
* {@link Component.templateUrl}
* {\@link Component.templateUrl}
* @type {?}

@@ -64,3 +65,3 @@ */

/**
* {@link Component.template}
* {\@link Component.template}
* @type {?}

@@ -70,3 +71,3 @@ */

/**
* {@link Component.stylesUrl}
* {\@link Component.stylesUrl}
* @type {?}

@@ -76,3 +77,3 @@ */

/**
* {@link Component.styles}
* {\@link Component.styles}
* @type {?}

@@ -82,3 +83,3 @@ */

/**
* {@link Component.encapsulation}
* {\@link Component.encapsulation}
* @type {?}

@@ -88,3 +89,3 @@ */

/**
* {@link Component.animation}
* {\@link Component.animation}
* @type {?}

@@ -94,3 +95,3 @@ */

/**
* {@link Component.interpolation}
* {\@link Component.interpolation}
* @type {?}

@@ -97,0 +98,0 @@ */

@@ -37,2 +37,3 @@ /**

/**
* \@internal
* @param {?} paramTypes

@@ -39,0 +40,0 @@ * @param {?} paramAnnotations

/**
* Provides read-only access to reflection data about symbols. Used internally by Angular
* to power dependency injection and compilation.
* Provides read-only access to reflection data about symbols. Used internally by Angular
* to power dependency injection and compilation.
* @abstract

@@ -5,0 +5,0 @@ */

@@ -15,4 +15,4 @@ /**

/**
* Provides access to reflection data about symbols. Used internally by Angular
* to power dependency injection and compilation.
* Provides access to reflection data about symbols. Used internally by Angular
* to power dependency injection and compilation.
*/

@@ -19,0 +19,0 @@ export var Reflector = (function (_super) {

@@ -9,6 +9,2 @@ /**

import { unimplemented } from '../facade/errors';
/**
* @experimental
*/
// TODO (matsko): add typing for the animation function
export var RenderComponentType = (function () {

@@ -104,2 +100,3 @@ /**

/**
* \@experimental
* @abstract

@@ -206,3 +203,3 @@ */

/**
* Used only in debug mode to serialize property changes to dom nodes as attributes.
* Used only in debug mode to serialize property changes to dom nodes as attributes.
* @abstract

@@ -261,12 +258,13 @@ * @param {?} renderElement

/**
* Injectable service that provides a low-level interface for modifying the UI.
* *
* Use this service to bypass Angular's templating and make custom UI changes that can't be
* expressed declaratively. For example if you need to set a property or an attribute whose name is
* not statically known, use {@link #setElementProperty} or {@link #setElementAttribute}
* respectively.
* *
* If you are implementing a custom renderer, you must implement this interface.
* *
* The default Renderer implementation is `DomRenderer`. Also available is `WebWorkerRenderer`.
* Injectable service that provides a low-level interface for modifying the UI.
*
* Use this service to bypass Angular's templating and make custom UI changes that can't be
* expressed declaratively. For example if you need to set a property or an attribute whose name is
* not statically known, use {\@link #setElementProperty} or {\@link #setElementAttribute}
* respectively.
*
* If you are implementing a custom renderer, you must implement this interface.
*
* The default Renderer implementation is `DomRenderer`. Also available is `WebWorkerRenderer`.
* \@experimental
* @abstract

@@ -273,0 +271,0 @@ */

@@ -15,4 +15,5 @@ export var SecurityContext = {};

/**
* Sanitizer is used by the views to sanitize potentially dangerous values.
* *
* Sanitizer is used by the views to sanitize potentially dangerous values.
*
* \@stable
* @abstract

@@ -19,0 +20,0 @@ */

@@ -12,5 +12,6 @@ /**

/**
* The Testability service provides testing hooks that can be accessed from
* the browser and by services such as Protractor. Each bootstrapped Angular
* application on the page will have an instance of Testability.
* The Testability service provides testing hooks that can be accessed from
* the browser and by services such as Protractor. Each bootstrapped Angular
* application on the page will have an instance of Testability.
* \@experimental
*/

@@ -39,2 +40,3 @@ export var Testability = (function () {

/**
* \@internal
* @return {?}

@@ -88,2 +90,3 @@ */

/**
* \@internal
* @return {?}

@@ -157,5 +160,11 @@ */

Testability.ctorParameters;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
Testability.prototype._pendingCount;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
Testability.prototype._isZoneStable;

@@ -166,6 +175,10 @@ /**

* component while it is stabilizing.
* \@internal
* @type {?}
*/
Testability.prototype._didWork;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
Testability.prototype._callbacks;

@@ -176,3 +189,4 @@ /** @type {?} */

/**
* A global registry of {@link Testability} instances for specific elements.
* A global registry of {\@link Testability} instances for specific elements.
* \@experimental
*/

@@ -230,3 +244,6 @@ export var TestabilityRegistry = (function () {

TestabilityRegistry.ctorParameters;
/** @type {?} */
/**
* \@internal
* @type {?}
*/
TestabilityRegistry.prototype._applications;

@@ -254,3 +271,4 @@ }

/**
* Set the {@link GetTestability} implementation used by the Angular testing framework.
* Set the {\@link GetTestability} implementation used by the Angular testing framework.
* \@experimental
* @param {?} getter

@@ -257,0 +275,0 @@ * @return {?}

@@ -68,81 +68,82 @@ /**

/**
* Provides a way for expressing ES6 classes with parameter annotations in ES5.
* *
* ## Basic Example
* *
* ```
* var Greeter = ng.Class({
* constructor: function(name) {
* this.name = name;
* },
* *
* greet: function() {
* alert('Hello ' + this.name + '!');
* }
* });
* ```
* *
* is equivalent to ES6:
* *
* ```
* class Greeter {
* constructor(name) {
* this.name = name;
* }
* *
* greet() {
* alert('Hello ' + this.name + '!');
* }
* }
* ```
* *
* or equivalent to ES5:
* *
* ```
* var Greeter = function (name) {
* this.name = name;
* }
* *
* Greeter.prototype.greet = function () {
* alert('Hello ' + this.name + '!');
* }
* ```
* *
* ### Example with parameter annotations
* *
* ```
* var MyService = ng.Class({
* constructor: [String, [new Optional(), Service], function(name, myService) {
* ...
* }]
* });
* ```
* *
* is equivalent to ES6:
* *
* ```
* class MyService {
* constructor(name: string, @Optional() myService: Service) {
* ...
* }
* }
* ```
* *
* ### Example with inheritance
* *
* ```
* var Shape = ng.Class({
* constructor: (color) {
* this.color = color;
* }
* });
* *
* var Square = ng.Class({
* extends: Shape,
* constructor: function(color, size) {
* Shape.call(this, color);
* this.size = size;
* }
* });
* ```
* Provides a way for expressing ES6 classes with parameter annotations in ES5.
*
* ## Basic Example
*
* ```
* var Greeter = ng.Class({
* constructor: function(name) {
* this.name = name;
* },
*
* greet: function() {
* alert('Hello ' + this.name + '!');
* }
* });
* ```
*
* is equivalent to ES6:
*
* ```
* class Greeter {
* constructor(name) {
* this.name = name;
* }
*
* greet() {
* alert('Hello ' + this.name + '!');
* }
* }
* ```
*
* or equivalent to ES5:
*
* ```
* var Greeter = function (name) {
* this.name = name;
* }
*
* Greeter.prototype.greet = function () {
* alert('Hello ' + this.name + '!');
* }
* ```
*
* ### Example with parameter annotations
*
* ```
* var MyService = ng.Class({
* constructor: [String, [new Optional(), Service], function(name, myService) {
* ...
* }]
* });
* ```
*
* is equivalent to ES6:
*
* ```
* class MyService {
* constructor(name: string, \@Optional() myService: Service) {
* ...
* }
* }
* ```
*
* ### Example with inheritance
*
* ```
* var Shape = ng.Class({
* constructor: (color) {
* this.color = color;
* }
* });
*
* var Square = ng.Class({
* extends: Shape,
* constructor: function(color, size) {
* Shape.call(this, color);
* this.size = size;
* }
* });
* ```
* \@stable
* @param {?} clsDef

@@ -149,0 +150,0 @@ * @return {?}

/**
* @license undefined
* 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
* @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
* @param {?} obj

@@ -8,0 +8,0 @@ * @return {?}

/**
* *
* \@whatItDoes Represents the version of Angular
*
* \@stable
*/

@@ -44,3 +46,3 @@ export var Version = (function () {

*/
export var /** @type {?} */ VERSION = new Version('4.0.0-beta.3');
export var /** @type {?} */ VERSION = new Version('4.0.0-beta.4');
//# sourceMappingURL=version.js.map

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"Version":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Version"},"arguments":["4.0.0-beta.3"]}}},{"__symbolic":"module","version":1,"metadata":{"Version":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Version"},"arguments":["4.0.0-beta.3"]}}}]
[{"__symbolic":"module","version":3,"metadata":{"Version":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Version"},"arguments":["4.0.0-beta.4"]}}},{"__symbolic":"module","version":1,"metadata":{"Version":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Version"},"arguments":["4.0.0-beta.4"]}}}]

@@ -10,68 +10,70 @@ /**

/**
* An injectable service for executing work inside or outside of the Angular zone.
* *
* The most common use of this service is to optimize performance when starting a work consisting of
* one or more asynchronous tasks that don't require UI updates or error handling to be handled by
* Angular. Such tasks can be kicked off via {@link runOutsideAngular} and if needed, these tasks
* can reenter the Angular zone via {@link run}.
* *
* <!-- TODO: add/fix links to:
* - docs explaining zones and the use of zones in Angular and change-detection
* - link to runOutsideAngular/run (throughout this file!)
* -->
* *
* ### Example
* ```
* import {Component, NgZone} from '@angular/core';
* import {NgIf} from '@angular/common';
* *
* selector: 'ng-zone-demo'.
* template: `
* <h2>Demo: NgZone</h2>
* *
* <p>Progress: {{progress}}%</p>
* <p *ngIf="progress >= 100">Done processing {{label}} of Angular zone!</p>
* *
* <button (click)="processWithinAngularZone()">Process within Angular zone</button>
* <button (click)="processOutsideOfAngularZone()">Process outside of Angular zone</button>
* `,
* })
* export class NgZoneDemo {
* progress: number = 0;
* label: string;
* *
* constructor(private _ngZone: NgZone) {}
* *
* // Loop inside the Angular zone
* // so the UI DOES refresh after each setTimeout cycle
* processWithinAngularZone() {
* this.label = 'inside';
* this.progress = 0;
* this._increaseProgress(() => console.log('Inside Done!'));
* }
* *
* // Loop outside of the Angular zone
* // so the UI DOES NOT refresh after each setTimeout cycle
* processOutsideOfAngularZone() {
* this.label = 'outside';
* this.progress = 0;
* this._ngZone.runOutsideAngular(() => {
* this._increaseProgress(() => {
* // reenter the Angular zone and display done
* this._ngZone.run(() => {console.log('Outside Done!') });
* }}));
* }
* *
* _increaseProgress(doneCallback: () => void) {
* this.progress += 1;
* console.log(`Current progress: ${this.progress}%`);
* *
* if (this.progress < 100) {
* window.setTimeout(() => this._increaseProgress(doneCallback)), 10)
* } else {
* doneCallback();
* }
* }
* }
* ```
* An injectable service for executing work inside or outside of the Angular zone.
*
* The most common use of this service is to optimize performance when starting a work consisting of
* one or more asynchronous tasks that don't require UI updates or error handling to be handled by
* Angular. Such tasks can be kicked off via {\@link runOutsideAngular} and if needed, these tasks
* can reenter the Angular zone via {\@link run}.
*
* <!-- TODO: add/fix links to:
* - docs explaining zones and the use of zones in Angular and change-detection
* - link to runOutsideAngular/run (throughout this file!)
* -->
*
* ### Example
* ```
* import {Component, NgZone} from '\@angular/core';
* import {NgIf} from '\@angular/common';
*
* \@Component({
* selector: 'ng-zone-demo'.
* template: `
* <h2>Demo: NgZone</h2>
*
* <p>Progress: {{progress}}%</p>
* <p *ngIf="progress >= 100">Done processing {{label}} of Angular zone!</p>
*
* <button (click)="processWithinAngularZone()">Process within Angular zone</button>
* <button (click)="processOutsideOfAngularZone()">Process outside of Angular zone</button>
* `,
* })
* export class NgZoneDemo {
* progress: number = 0;
* label: string;
*
* constructor(private _ngZone: NgZone) {}
*
* // Loop inside the Angular zone
* // so the UI DOES refresh after each setTimeout cycle
* processWithinAngularZone() {
* this.label = 'inside';
* this.progress = 0;
* this._increaseProgress(() => console.log('Inside Done!'));
* }
*
* // Loop outside of the Angular zone
* // so the UI DOES NOT refresh after each setTimeout cycle
* processOutsideOfAngularZone() {
* this.label = 'outside';
* this.progress = 0;
* this._ngZone.runOutsideAngular(() => {
* this._increaseProgress(() => {
* // reenter the Angular zone and display done
* this._ngZone.run(() => {console.log('Outside Done!') });
* }}));
* }
*
* _increaseProgress(doneCallback: () => void) {
* this.progress += 1;
* console.log(`Current progress: ${this.progress}%`);
*
* if (this.progress < 100) {
* window.setTimeout(() => this._increaseProgress(doneCallback)), 10)
* } else {
* doneCallback();
* }
* }
* }
* ```
* \@experimental
*/

@@ -126,12 +128,12 @@ export var NgZone = (function () {

/**
* Executes the `fn` function synchronously within the Angular zone and returns value returned by
* the function.
* *
* Running functions via `run` allows you to reenter Angular zone from a task that was executed
* outside of the Angular zone (typically started via {@link runOutsideAngular}).
* *
* Any future tasks or microtasks scheduled from within this function will continue executing from
* within the Angular zone.
* *
* If a synchronous error happens it will be rethrown and not reported via `onError`.
* Executes the `fn` function synchronously within the Angular zone and returns value returned by
* the function.
*
* Running functions via `run` allows you to reenter Angular zone from a task that was executed
* outside of the Angular zone (typically started via {\@link runOutsideAngular}).
*
* Any future tasks or microtasks scheduled from within this function will continue executing from
* within the Angular zone.
*
* If a synchronous error happens it will be rethrown and not reported via `onError`.
* @param {?} fn

@@ -142,4 +144,4 @@ * @return {?}

/**
* Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
* rethrown.
* Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
* rethrown.
* @param {?} fn

@@ -150,12 +152,12 @@ * @return {?}

/**
* Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
* the function.
* *
* Running functions via `runOutsideAngular` allows you to escape Angular's zone and do work that
* doesn't trigger Angular change-detection or is subject to Angular's error handling.
* *
* Any future tasks or microtasks scheduled from within this function will continue executing from
* outside of the Angular zone.
* *
* Use {@link run} to reenter the Angular zone and do work that updates the application model.
* Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
* the function.
*
* Running functions via `runOutsideAngular` allows you to escape Angular's zone and do work that
* doesn't trigger Angular change-detection or is subject to Angular's error handling.
*
* Any future tasks or microtasks scheduled from within this function will continue executing from
* outside of the Angular zone.
*
* Use {\@link run} to reenter the Angular zone and do work that updates the application model.
* @param {?} fn

@@ -167,3 +169,3 @@ * @return {?}

/**
* Notifies when code enters Angular Zone. This gets fired first on VM Turn.
* Notifies when code enters Angular Zone. This gets fired first on VM Turn.
* @return {?}

@@ -177,5 +179,5 @@ */

/**
* Notifies when there is no more microtasks enqueue in the current VM Turn.
* This is a hint for Angular to do change detection, which may enqueue more microtasks.
* For this reason this event can fire multiple times per VM Turn.
* Notifies when there is no more microtasks enqueue in the current VM Turn.
* This is a hint for Angular to do change detection, which may enqueue more microtasks.
* For this reason this event can fire multiple times per VM Turn.
* @return {?}

@@ -189,5 +191,5 @@ */

/**
* Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
* implies we are about to relinquish VM turn.
* This event gets called just once.
* Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
* implies we are about to relinquish VM turn.
* This event gets called just once.
* @return {?}

@@ -201,3 +203,3 @@ */

/**
* Notify that an error has been delivered.
* Notify that an error has been delivered.
* @return {?}

@@ -211,3 +213,3 @@ */

/**
* Whether there are no outstanding microtasks or macrotasks.
* Whether there are no outstanding microtasks or macrotasks.
* @return {?}

@@ -214,0 +216,0 @@ */

@@ -8,3 +8,3 @@ /**

*/
import { Component, Directive, Injector, NgModule, OpaqueToken, Pipe, PlatformRef, SchemaMetadata, Type } from '@angular/core';
import { Component, Directive, InjectionToken, Injector, NgModule, Pipe, PlatformRef, SchemaMetadata, Type } from '@angular/core';
import { ComponentFixture } from './component_fixture';

@@ -23,7 +23,7 @@ import { MetadataOverride } from './metadata_override';

*/
export declare const ComponentFixtureAutoDetect: OpaqueToken;
export declare const ComponentFixtureAutoDetect: InjectionToken<boolean[]>;
/**
* @experimental
*/
export declare const ComponentFixtureNoNgZone: OpaqueToken;
export declare const ComponentFixtureNoNgZone: InjectionToken<boolean[]>;
/**

@@ -30,0 +30,0 @@ * @experimental

@@ -8,3 +8,3 @@ /**

*/
import { Injector, NgModule, NgZone, OpaqueToken, ReflectiveInjector } from '@angular/core';
import { InjectionToken, Injector, NgModule, NgZone, ReflectiveInjector } from '@angular/core';
import { AsyncTestCompleter } from './async_test_completer';

@@ -30,7 +30,7 @@ import { ComponentFixture } from './component_fixture';

*/
export var ComponentFixtureAutoDetect = new OpaqueToken('ComponentFixtureAutoDetect');
export var ComponentFixtureAutoDetect = new InjectionToken('ComponentFixtureAutoDetect');
/**
* @experimental
*/
export var ComponentFixtureNoNgZone = new OpaqueToken('ComponentFixtureNoNgZone');
export var ComponentFixtureNoNgZone = new InjectionToken('ComponentFixtureNoNgZone');
/**

@@ -37,0 +37,0 @@ * @whatItDoes Configures and initializes environment for unit testing and provides methods for

@@ -1,1 +0,1 @@

[{"__symbolic":"module","version":3,"metadata":{"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["ComponentFixtureNoNgZone"]},"TestBed":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"get":{"__symbolic":"function","parameters":["token","notFoundValue"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"get"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"}]},"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector"},"member":"THROW_IF_NOT_FOUND"}]},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"getTestBed":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":null,"right":{"__symbolic":"binop","operator":"||","left":null,"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TestBed"}}}}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":432,"character":34}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["ComponentFixtureNoNgZone"]},"TestBed":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"get":{"__symbolic":"function","parameters":["token","notFoundValue"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"get"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"}]},"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector"},"member":"THROW_IF_NOT_FOUND"}]},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"getTestBed":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":null,"right":{"__symbolic":"binop","operator":"||","left":null,"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TestBed"}}}}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":432,"character":34}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"}}}]
[{"__symbolic":"module","version":3,"metadata":{"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["ComponentFixtureNoNgZone"]},"TestBed":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"get":{"__symbolic":"function","parameters":["token","notFoundValue"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"get"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"}]},"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector"},"member":"THROW_IF_NOT_FOUND"}]},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"getTestBed":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":null,"right":{"__symbolic":"binop","operator":"||","left":null,"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TestBed"}}}}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":433,"character":34}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["ComponentFixtureNoNgZone"]},"TestBed":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"get":{"__symbolic":"function","parameters":["token","notFoundValue"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"get"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"}]},"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector"},"member":"THROW_IF_NOT_FOUND"}]},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"getTestBed":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":null,"right":{"__symbolic":"binop","operator":"||","left":null,"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TestBed"}}}}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":433,"character":34}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"}}}]

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc