Socket
Socket
Sign inDemoInstall

@angular/upgrade

Package Overview
Dependencies
0
Maintainers
1
Versions
813
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.3.0 to 4.0.0-beta.0

2

bundles/upgrade-static.umd.js
/**
* @license Angular v2.3.0
* @license Angular v4.0.0-beta.0
* (c) 2010-2016 Google, Inc. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

/**
* @license Angular v2.3.0
* @license Angular v4.0.0-beta.0
* (c) 2010-2016 Google, Inc. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

/**
* @license Angular v2.3.0
* @license Angular v4.0.0-beta.0
* (c) 2010-2016 Google, Inc. https://angular.io/
* License: MIT
*/
!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/core"),require("@angular/platform-browser-dynamic"),require("@angular/compiler")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/platform-browser-dynamic","@angular/compiler"],factory):factory((global.ng=global.ng||{},global.ng.upgrade=global.ng.upgrade||{}),global.ng.core,global.ng.platformBrowserDynamic,global.ng.compiler)}(this,function(exports,_angular_core,_angular_platformBrowserDynamic,_angular_compiler){"use strict";function noNg(){throw new Error("AngularJS v1.x is not loaded!")}function getComponentInfo(type){var resolvedMetadata=directiveResolver.resolve(type),selector=resolvedMetadata.selector;if(!selector.match(COMPONENT_SELECTOR))throw new Error("Only selectors matching element names are supported, got: "+selector);return selector=selector.replace(SKEWER_CASE,function(all,letter){return letter.toUpperCase()}),{type:type,selector:selector,inputs:parseFields(resolvedMetadata.inputs),outputs:parseFields(resolvedMetadata.outputs)}}function parseFields(names){var attrProps=[];if(names)for(var i=0;i<names.length;i++){var parts=names[i].split(":"),prop=parts[0].trim(),attr=(parts[1]||parts[0]).trim(),capitalAttr=attr.charAt(0).toUpperCase()+attr.substr(1);attrProps.push({prop:prop,attr:attr,bracketAttr:"["+attr+"]",parenAttr:"("+attr+")",bracketParenAttr:"[("+attr+")]",onAttr:"on"+capitalAttr,bindAttr:"bind"+capitalAttr,bindonAttr:"bindon"+capitalAttr})}return attrProps}function onError(e){throw console.error?console.error(e,e.stack):console.log(e,e.stack),e}function controllerKey(name){return"$"+name+"Controller"}function ng1ComponentDirective(info,idPrefix){function directiveFactory(ng1Injector,componentFactoryRefMap,parse){var idCount=0;return{restrict:"E",require:REQUIRE_INJECTOR,link:{post:function(scope,element,attrs,parentInjector,transclude){var componentFactory=componentFactoryRefMap[info.selector];if(!componentFactory)throw new Error("Expecting ComponentFactory for: "+info.selector);null===parentInjector&&(parentInjector=ng1Injector.get(NG2_INJECTOR));var facade=new DowngradeNg2ComponentAdapter(idPrefix+idCount++,info,element,attrs,scope,parentInjector,parse,componentFactory);facade.setupInputs(),facade.bootstrapNg2(),facade.projectContent(),facade.setupOutputs(),facade.registerCleanup()}}}}return directiveFactory.$inject=[NG1_INJECTOR,NG2_COMPONENT_FACTORY_REF_MAP,NG1_PARSE],directiveFactory}var angular={bootstrap:noNg,module:noNg,element:noNg,version:noNg,resumeBootstrap:noNg,getTestability:noNg};try{window.hasOwnProperty("angular")&&(angular=window.angular)}catch(e){}var bootstrap=angular.bootstrap,module$1=angular.module,element=angular.element,NG2_COMPILER="ng2.Compiler",NG2_INJECTOR="ng2.Injector",NG2_COMPONENT_FACTORY_REF_MAP="ng2.ComponentFactoryRefMap",NG2_ZONE="ng2.NgZone",NG1_CONTROLLER="$controller",NG1_SCOPE="$scope",NG1_ROOT_SCOPE="$rootScope",NG1_COMPILE="$compile",NG1_HTTP_BACKEND="$httpBackend",NG1_INJECTOR="$injector",NG1_PARSE="$parse",NG1_TEMPLATE_CACHE="$templateCache",NG1_TESTABILITY="$$testability",REQUIRE_INJECTOR="?^"+NG2_INJECTOR,INITIAL_VALUE={__UNINITIALIZED__:!0},DowngradeNg2ComponentAdapter=function(){function DowngradeNg2ComponentAdapter(id,info,element,attrs,scope,parentInjector,parse,componentFactory){this.id=id,this.info=info,this.element=element,this.attrs=attrs,this.scope=scope,this.parentInjector=parentInjector,this.parse=parse,this.componentFactory=componentFactory,this.component=null,this.inputChangeCount=0,this.inputChanges=null,this.componentRef=null,this.changeDetector=null,this.contentInsertionPoint=null,this.element[0].id=id,this.componentScope=scope.$new(),this.childNodes=element.contents()}return DowngradeNg2ComponentAdapter.prototype.bootstrapNg2=function(){var childInjector=_angular_core.ReflectiveInjector.resolveAndCreate([{provide:NG1_SCOPE,useValue:this.componentScope}],this.parentInjector);this.contentInsertionPoint=document.createComment("ng1 insertion point"),this.componentRef=this.componentFactory.create(childInjector,[[this.contentInsertionPoint]],this.element[0]),this.changeDetector=this.componentRef.changeDetectorRef,this.component=this.componentRef.instance},DowngradeNg2ComponentAdapter.prototype.setupInputs=function(){for(var _this=this,attrs=this.attrs,inputs=this.info.inputs||[],i=0;i<inputs.length;i++){var input=inputs[i],expr=null;if(attrs.hasOwnProperty(input.attr)){var observeFn=function(prop){var prevValue=INITIAL_VALUE;return function(value){null!==_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(value,prevValue===INITIAL_VALUE?value:prevValue),prevValue=value),_this.component[prop]=value}}(input.prop);attrs.$observe(input.attr,observeFn)}else attrs.hasOwnProperty(input.bindAttr)?expr=attrs[input.bindAttr]:attrs.hasOwnProperty(input.bracketAttr)?expr=attrs[input.bracketAttr]:attrs.hasOwnProperty(input.bindonAttr)?expr=attrs[input.bindonAttr]:attrs.hasOwnProperty(input.bracketParenAttr)&&(expr=attrs[input.bracketParenAttr]);if(null!=expr){var watchFn=function(prop){return function(value,prevValue){null!=_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(prevValue,value)),_this.component[prop]=value}}(input.prop);this.componentScope.$watch(expr,watchFn)}}var prototype=this.info.type.prototype;prototype&&prototype.ngOnChanges&&(this.inputChanges={},this.componentScope.$watch(function(){return _this.inputChangeCount},function(){var inputChanges=_this.inputChanges;_this.inputChanges={},_this.component.ngOnChanges(inputChanges)})),this.componentScope.$watch(function(){return _this.changeDetector&&_this.changeDetector.detectChanges()})},DowngradeNg2ComponentAdapter.prototype.projectContent=function(){var childNodes=this.childNodes,parent=this.contentInsertionPoint.parentNode;if(parent)for(var i=0,ii=childNodes.length;i<ii;i++)parent.insertBefore(childNodes[i],this.contentInsertionPoint)},DowngradeNg2ComponentAdapter.prototype.setupOutputs=function(){for(var _this=this,attrs=this.attrs,outputs=this.info.outputs||[],j=0;j<outputs.length;j++){var output=outputs[j],expr=null,assignExpr=!1,bindonAttr=output.bindonAttr?output.bindonAttr.substring(0,output.bindonAttr.length-6):null,bracketParenAttr=output.bracketParenAttr?"[("+output.bracketParenAttr.substring(2,output.bracketParenAttr.length-8)+")]":null;if(attrs.hasOwnProperty(output.onAttr)?expr=attrs[output.onAttr]:attrs.hasOwnProperty(output.parenAttr)?expr=attrs[output.parenAttr]:attrs.hasOwnProperty(bindonAttr)?(expr=attrs[bindonAttr],assignExpr=!0):attrs.hasOwnProperty(bracketParenAttr)&&(expr=attrs[bracketParenAttr],assignExpr=!0),null!=expr&&null!=assignExpr){var getter=this.parse(expr),setter=getter.assign;if(assignExpr&&!setter)throw new Error("Expression '"+expr+"' is not assignable!");var emitter=this.component[output.prop];if(!emitter)throw new Error("Missing emitter '"+output.prop+"' on component '"+this.info.selector+"'!");emitter.subscribe({next:assignExpr?function(setter){return function(v){return setter(_this.scope,v)}}(setter):function(getter){return function(v){return getter(_this.scope,{$event:v})}}(getter)})}}},DowngradeNg2ComponentAdapter.prototype.registerCleanup=function(){var _this=this;this.element.bind("$destroy",function(){_this.componentScope.$destroy(),_this.componentRef.destroy()})},DowngradeNg2ComponentAdapter}(),Ng1Change=function(){function Ng1Change(previousValue,currentValue){this.previousValue=previousValue,this.currentValue=currentValue}return Ng1Change.prototype.isFirstChange=function(){return this.previousValue===this.currentValue},Ng1Change}(),COMPONENT_SELECTOR=/^[\w|-]*$/,SKEWER_CASE=/-(\w)/g,directiveResolver=new _angular_compiler.DirectiveResolver,CAMEL_CASE=/([A-Z])/g,INITIAL_VALUE$1={__UNINITIALIZED__:!0},NOT_SUPPORTED="NOT_SUPPORTED",UpgradeNg1ComponentAdapterBuilder=function(){function UpgradeNg1ComponentAdapterBuilder(name){this.name=name,this.inputs=[],this.inputsRename=[],this.outputs=[],this.outputsRename=[],this.propertyOutputs=[],this.checkProperties=[],this.propertyMap={},this.linkFn=null,this.directive=null,this.$controller=null;var selector=name.replace(CAMEL_CASE,function(all,next){return"-"+next.toLowerCase()}),self=this;this.type=_angular_core.Directive({selector:selector,inputs:this.inputsRename,outputs:this.outputsRename}).Class({constructor:[new _angular_core.Inject(NG1_SCOPE),_angular_core.ElementRef,function(scope,elementRef){return new UpgradeNg1ComponentAdapter(self.linkFn,scope,self.directive,elementRef,self.$controller,self.inputs,self.outputs,self.propertyOutputs,self.checkProperties,self.propertyMap)}],ngOnInit:function(){},ngOnChanges:function(){},ngDoCheck:function(){},ngOnDestroy:function(){}})}return UpgradeNg1ComponentAdapterBuilder.prototype.extractDirective=function(injector){var directives=injector.get(this.name+"Directive");if(directives.length>1)throw new Error("Only support single directive definition for: "+this.name);var directive=directives[0];directive.replace&&this.notSupported("replace"),directive.terminal&&this.notSupported("terminal");var link=directive.link;return"object"==typeof link&&link.post&&this.notSupported("link.post"),directive},UpgradeNg1ComponentAdapterBuilder.prototype.notSupported=function(feature){throw new Error("Upgraded directive '"+this.name+"' does not support '"+feature+"'.")},UpgradeNg1ComponentAdapterBuilder.prototype.extractBindings=function(){var btcIsObject="object"==typeof this.directive.bindToController;if(btcIsObject&&Object.keys(this.directive.scope).length)throw new Error("Binding definitions on scope and controller at the same time are not supported.");var context=btcIsObject?this.directive.bindToController:this.directive.scope;if("object"==typeof context)for(var name_1 in context)if(context.hasOwnProperty(name_1)){var localName=context[name_1],type=localName.charAt(0),typeOptions=localName.charAt(1);localName="?"===typeOptions?localName.substr(2):localName.substr(1),localName=localName||name_1;var outputName="output_"+name_1,outputNameRename=outputName+": "+name_1,outputNameRenameChange=outputName+": "+name_1+"Change",inputName="input_"+name_1,inputNameRename=inputName+": "+name_1;switch(type){case"=":this.propertyOutputs.push(outputName),this.checkProperties.push(localName),this.outputs.push(outputName),this.outputsRename.push(outputNameRenameChange),this.propertyMap[outputName]=localName,this.inputs.push(inputName),this.inputsRename.push(inputNameRename),this.propertyMap[inputName]=localName;break;case"@":case"<":this.inputs.push(inputName),this.inputsRename.push(inputNameRename),this.propertyMap[inputName]=localName;break;case"&":this.outputs.push(outputName),this.outputsRename.push(outputNameRename),this.propertyMap[outputName]=localName;break;default:var json=JSON.stringify(context);throw new Error("Unexpected mapping '"+type+"' in '"+json+"' in '"+this.name+"' directive.")}}},UpgradeNg1ComponentAdapterBuilder.prototype.compileTemplate=function(compile,templateCache,httpBackend){function compileHtml(html){var div=document.createElement("div");return div.innerHTML=html,compile(div.childNodes)}var _this=this;if(void 0!==this.directive.template)this.linkFn=compileHtml("function"==typeof this.directive.template?this.directive.template():this.directive.template);else{if(!this.directive.templateUrl)throw new Error("Directive '"+this.name+"' is not a component, it is missing template.");var url_1="function"==typeof this.directive.templateUrl?this.directive.templateUrl():this.directive.templateUrl,html=templateCache.get(url_1);if(void 0===html)return new Promise(function(resolve,err){httpBackend("GET",url_1,null,function(status,response){200==status?resolve(_this.linkFn=compileHtml(templateCache.put(url_1,response))):err("GET "+url_1+" returned "+status+": "+response)})});this.linkFn=compileHtml(html)}return null},UpgradeNg1ComponentAdapterBuilder.resolve=function(exportedComponents,injector){var promises=[],compile=injector.get(NG1_COMPILE),templateCache=injector.get(NG1_TEMPLATE_CACHE),httpBackend=injector.get(NG1_HTTP_BACKEND),$controller=injector.get(NG1_CONTROLLER);for(var name_2 in exportedComponents)if(exportedComponents.hasOwnProperty(name_2)){var exportedComponent=exportedComponents[name_2];exportedComponent.directive=exportedComponent.extractDirective(injector),exportedComponent.$controller=$controller,exportedComponent.extractBindings();var promise=exportedComponent.compileTemplate(compile,templateCache,httpBackend);promise&&promises.push(promise)}return Promise.all(promises)},UpgradeNg1ComponentAdapterBuilder}(),UpgradeNg1ComponentAdapter=function(){function UpgradeNg1ComponentAdapter(linkFn,scope,directive,elementRef,$controller,inputs,outputs,propOuts,checkProperties,propertyMap){this.linkFn=linkFn,this.directive=directive,this.$controller=$controller,this.inputs=inputs,this.outputs=outputs,this.propOuts=propOuts,this.checkProperties=checkProperties,this.propertyMap=propertyMap,this.destinationObj=null,this.checkLastValues=[],this.$element=null,this.element=elementRef.nativeElement,this.componentScope=scope.$new(!!directive.scope),this.$element=element(this.element);var controllerType=directive.controller;directive.bindToController&&controllerType?this.destinationObj=this.buildController(controllerType):this.destinationObj=this.componentScope;for(var i=0;i<inputs.length;i++)this[inputs[i]]=null;for(var j=0;j<outputs.length;j++){var emitter=this[outputs[j]]=new _angular_core.EventEmitter;this.setComponentProperty(outputs[j],function(emitter){return function(value){return emitter.emit(value)}}(emitter))}for(var k=0;k<propOuts.length;k++)this[propOuts[k]]=new _angular_core.EventEmitter,this.checkLastValues.push(INITIAL_VALUE$1)}return UpgradeNg1ComponentAdapter.prototype.ngOnInit=function(){var _this=this;!this.directive.bindToController&&this.directive.controller&&this.buildController(this.directive.controller);var link=this.directive.link;if("object"==typeof link&&(link=link.pre),link){var attrs=NOT_SUPPORTED,transcludeFn=NOT_SUPPORTED,linkController=this.resolveRequired(this.$element,this.directive.require);this.directive.link(this.componentScope,this.$element,attrs,linkController,transcludeFn)}for(var childNode,childNodes=[];childNode=this.element.firstChild;)this.element.removeChild(childNode),childNodes.push(childNode);this.linkFn(this.componentScope,function(clonedElement,scope){for(var i=0,ii=clonedElement.length;i<ii;i++)_this.element.appendChild(clonedElement[i])},{parentBoundTranscludeFn:function(scope,cloneAttach){cloneAttach(childNodes)}}),this.destinationObj.$onInit&&this.destinationObj.$onInit()},UpgradeNg1ComponentAdapter.prototype.ngOnChanges=function(changes){var _this=this,ng1Changes={};Object.keys(changes).forEach(function(name){var change=changes[name];_this.setComponentProperty(name,change.currentValue),ng1Changes[_this.propertyMap[name]]=change}),this.destinationObj.$onChanges&&this.destinationObj.$onChanges(ng1Changes)},UpgradeNg1ComponentAdapter.prototype.ngDoCheck=function(){for(var destinationObj=this.destinationObj,lastValues=this.checkLastValues,checkProperties=this.checkProperties,i=0;i<checkProperties.length;i++){var value=destinationObj[checkProperties[i]],last=lastValues[i];if(value!==last)if("number"==typeof value&&isNaN(value)&&"number"==typeof last&&isNaN(last));else{var eventEmitter=this[this.propOuts[i]];eventEmitter.emit(lastValues[i]=value)}}this.destinationObj.$doCheck&&this.directive.controller&&this.destinationObj.$doCheck()},UpgradeNg1ComponentAdapter.prototype.ngOnDestroy=function(){this.destinationObj.$onDestroy&&this.directive.controller&&this.destinationObj.$onDestroy()},UpgradeNg1ComponentAdapter.prototype.setComponentProperty=function(name,value){this.destinationObj[this.propertyMap[name]]=value},UpgradeNg1ComponentAdapter.prototype.buildController=function(controllerType){var locals={$scope:this.componentScope,$element:this.$element},controller=this.$controller(controllerType,locals,null,this.directive.controllerAs);return this.$element.data(controllerKey(this.directive.name),controller),controller},UpgradeNg1ComponentAdapter.prototype.resolveRequired=function($element,require){if(require){if("string"==typeof require){var name_3=require,isOptional=!1,startParent=!1,searchParents=!1;"?"==name_3.charAt(0)&&(isOptional=!0,name_3=name_3.substr(1)),"^"==name_3.charAt(0)&&(searchParents=!0,name_3=name_3.substr(1)),"^"==name_3.charAt(0)&&(startParent=!0,name_3=name_3.substr(1));var key=controllerKey(name_3);startParent&&($element=$element.parent());var dep=searchParents?$element.inheritedData(key):$element.data(key);if(!dep&&!isOptional)throw new Error("Can not locate '"+require+"' in '"+this.directive.name+"'.");return dep}if(require instanceof Array){for(var deps=[],i=0;i<require.length;i++)deps.push(this.resolveRequired($element,require[i]));return deps}throw new Error("Directive '"+this.directive.name+"' require syntax unrecognized: "+this.directive.require)}},UpgradeNg1ComponentAdapter}(),upgradeCount=0,UpgradeAdapter=function(){function UpgradeAdapter(ng2AppModule,compilerOptions){if(this.ng2AppModule=ng2AppModule,this.compilerOptions=compilerOptions,this.idPrefix="NG2_UPGRADE_"+upgradeCount++ +"_",this.upgradedComponents=[],this.ng1ComponentsToBeUpgraded={},this.providers=[],!ng2AppModule)throw new Error("UpgradeAdapter cannot be instantiated without an NgModule of the Angular 2 app.")}return UpgradeAdapter.prototype.downgradeNg2Component=function(type){this.upgradedComponents.push(type);var info=getComponentInfo(type);return ng1ComponentDirective(info,""+this.idPrefix+info.selector+"_c")},UpgradeAdapter.prototype.upgradeNg1Component=function(name){return this.ng1ComponentsToBeUpgraded.hasOwnProperty(name)?this.ng1ComponentsToBeUpgraded[name].type:(this.ng1ComponentsToBeUpgraded[name]=new UpgradeNg1ComponentAdapterBuilder(name)).type},UpgradeAdapter.prototype.bootstrap=function(element$$,modules,config){var original$applyFn,rootScopePrototype,rootScope,ng1BootstrapPromise,ng1compilePromise,_this=this,ngZone=new _angular_core.NgZone({enableLongStackTrace:Zone.hasOwnProperty("longStackTraceZoneSpec")}),upgrade=new UpgradeAdapterRef,ng1Injector=null,moduleRef=null,delayApplyExps=[],componentFactoryRefMap={},ng1Module=module$1(this.idPrefix,modules);ng1Module.factory(NG2_INJECTOR,function(){return moduleRef.injector.get(_angular_core.Injector)}).value(NG2_ZONE,ngZone).factory(NG2_COMPILER,function(){return moduleRef.injector.get(_angular_core.Compiler)}).value(NG2_COMPONENT_FACTORY_REF_MAP,componentFactoryRefMap).config(["$provide","$injector",function(provide,ng1Injector){provide.decorator(NG1_ROOT_SCOPE,["$delegate",function(rootScopeDelegate){if(rootScopePrototype=rootScopeDelegate.constructor.prototype,!rootScopePrototype.hasOwnProperty("$apply"))throw new Error("Failed to find '$apply' on '$rootScope'!");return original$applyFn=rootScopePrototype.$apply,rootScopePrototype.$apply=function(exp){return delayApplyExps.push(exp)},rootScope=rootScopeDelegate}]),ng1Injector.has(NG1_TESTABILITY)&&provide.decorator(NG1_TESTABILITY,["$delegate",function(testabilityDelegate){var originalWhenStable=testabilityDelegate.whenStable,newWhenStable=function(callback){originalWhenStable.call(this,function(){var ng2Testability=moduleRef.injector.get(_angular_core.Testability);ng2Testability.isStable()?callback.apply(this,arguments):ng2Testability.whenStable(newWhenStable.bind(this,callback))})};return testabilityDelegate.whenStable=newWhenStable,testabilityDelegate}])}]),ng1compilePromise=new Promise(function(resolve,reject){ng1Module.run(["$injector","$rootScope",function(injector,rootScope){ng1Injector=injector,UpgradeNg1ComponentAdapterBuilder.resolve(_this.ng1ComponentsToBeUpgraded,injector).then(function(){var DynamicNgUpgradeModule=_angular_core.NgModule({providers:[{provide:NG1_INJECTOR,useFactory:function(){return ng1Injector}},{provide:NG1_COMPILE,useFactory:function(){return ng1Injector.get(NG1_COMPILE)}},_this.providers],imports:[_this.ng2AppModule]}).Class({constructor:function(){},ngDoBootstrap:function(){}});_angular_platformBrowserDynamic.platformBrowserDynamic()._bootstrapModuleWithZone(DynamicNgUpgradeModule,_this.compilerOptions,ngZone,function(componentFactories){componentFactories.forEach(function(componentFactory){var type=componentFactory.componentType;_this.upgradedComponents.indexOf(type)!==-1&&(componentFactoryRefMap[getComponentInfo(type).selector]=componentFactory)})}).then(function(ref){moduleRef=ref,element(element$$).data(controllerKey(NG2_INJECTOR),moduleRef.injector),ngZone.onMicrotaskEmpty.subscribe({next:function(_){return ngZone.runOutsideAngular(function(){return rootScope.$evalAsync()})}})}).then(resolve,reject)}).catch(reject)}])});var windowAngular=window.angular;return windowAngular.resumeBootstrap=void 0,ngZone.run(function(){bootstrap(element$$,[_this.idPrefix],config)}),ng1BootstrapPromise=new Promise(function(resolve){if(windowAngular.resumeBootstrap){var originalResumeBootstrap_1=windowAngular.resumeBootstrap;windowAngular.resumeBootstrap=function(){var _this=this,args=arguments;windowAngular.resumeBootstrap=originalResumeBootstrap_1,ngZone.run(function(){windowAngular.resumeBootstrap.apply(_this,args)}),resolve()}}else resolve()}),Promise.all([ng1BootstrapPromise,ng1compilePromise]).then(function(){moduleRef.injector.get(_angular_core.NgZone).run(function(){if(rootScopePrototype){for(rootScopePrototype.$apply=original$applyFn;delayApplyExps.length;)rootScope.$apply(delayApplyExps.shift());upgrade._bootstrapDone(moduleRef,ng1Injector),rootScopePrototype=null}})},onError),upgrade},UpgradeAdapter.prototype.upgradeNg1Provider=function(name,options){var token=options&&options.asToken||name;this.providers.push({provide:token,useFactory:function(ng1Injector){return ng1Injector.get(name)},deps:[NG1_INJECTOR]})},UpgradeAdapter.prototype.downgradeNg2Provider=function(token){var factory=function(injector){return injector.get(token)};return factory.$inject=[NG2_INJECTOR],factory},UpgradeAdapter}(),UpgradeAdapterRef=function(){function UpgradeAdapterRef(){this._readyFn=null,this.ng1RootScope=null,this.ng1Injector=null,this.ng2ModuleRef=null,this.ng2Injector=null}return UpgradeAdapterRef.prototype._bootstrapDone=function(ngModuleRef,ng1Injector){this.ng2ModuleRef=ngModuleRef,this.ng2Injector=ngModuleRef.injector,this.ng1Injector=ng1Injector,this.ng1RootScope=ng1Injector.get(NG1_ROOT_SCOPE),this._readyFn&&this._readyFn(this)},UpgradeAdapterRef.prototype.ready=function(fn){this._readyFn=fn},UpgradeAdapterRef.prototype.dispose=function(){this.ng1Injector.get(NG1_ROOT_SCOPE).$destroy(),this.ng2ModuleRef.destroy()},UpgradeAdapterRef}(),VERSION=new _angular_core.Version("2.3.0");exports.UpgradeAdapter=UpgradeAdapter,exports.UpgradeAdapterRef=UpgradeAdapterRef,exports.VERSION=VERSION});
!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/compiler"),require("@angular/core"),require("@angular/platform-browser-dynamic")):"function"==typeof define&&define.amd?define(["exports","@angular/compiler","@angular/core","@angular/platform-browser-dynamic"],factory):factory((global.ng=global.ng||{},global.ng.upgrade=global.ng.upgrade||{}),global.ng.compiler,global.ng.core,global.ng.platformBrowserDynamic)}(this,function(exports,_angular_compiler,_angular_core,_angular_platformBrowserDynamic){"use strict";function noNg(){throw new Error("AngularJS v1.x is not loaded!")}function getComponentInfo(type){var resolvedMetadata=directiveResolver.resolve(type),selector=resolvedMetadata.selector;if(!selector.match(COMPONENT_SELECTOR))throw new Error("Only selectors matching element names are supported, got: "+selector);return selector=selector.replace(SKEWER_CASE,function(all,letter){return letter.toUpperCase()}),{type:type,selector:selector,inputs:parseFields(resolvedMetadata.inputs),outputs:parseFields(resolvedMetadata.outputs)}}function parseFields(names){var attrProps=[];if(names)for(var i=0;i<names.length;i++){var parts=names[i].split(":"),prop=parts[0].trim(),attr=(parts[1]||parts[0]).trim(),capitalAttr=attr.charAt(0).toUpperCase()+attr.substr(1);attrProps.push({prop:prop,attr:attr,bracketAttr:"["+attr+"]",parenAttr:"("+attr+")",bracketParenAttr:"[("+attr+")]",onAttr:"on"+capitalAttr,bindAttr:"bind"+capitalAttr,bindonAttr:"bindon"+capitalAttr})}return attrProps}/**
* @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
* @param {?} e
* @return {?}
*/
function onError(e){throw console.error?console.error(e,e.stack):console.log(e,e.stack),e}function controllerKey(name){return"$"+name+"Controller"}function getAttributesAsArray(node){var asArray,attributes=node.attributes;if(attributes){var attrLen=attributes.length;asArray=new Array(attrLen);for(var i=0;i<attrLen;i++)asArray[i]=[attributes[i].nodeName,attributes[i].nodeValue]}return asArray||[]}function ng1ComponentDirective(info,idPrefix){function directiveFactory(ng1Injector,ng1Compile,componentFactoryRefMap,parse){function compileProjectedNodes(templateElement,ngContentSelectors){if(!ngContentSelectors)throw new Error("Expecting ngContentSelectors for: "+info.selector);var projectableTemplateNodes=sortProjectableNodes(ngContentSelectors,templateElement.contents());return projectableTemplateNodes.map(function(nodes){return ng1Compile(nodes)})}var idCount=0;info.selector.replace(/[A-Z]/g,function(char){return"-"+char.toLowerCase()});return{restrict:"E",terminal:!0,require:REQUIRE_INJECTOR,compile:function(templateElement,templateAttributes,transclude){return{post:function(scope,element,attrs,parentInjector,transclude){function downgrade(injector){var facade=new DowngradeNg2ComponentAdapter(info,element,attrs,scope,injector,parse,componentFactory);facade.setupInputs(),facade.bootstrapNg2(projectableNodes),facade.setupOutputs(),facade.registerCleanup(),injectorPromise.resolve(facade.componentRef.injector)}var id=idPrefix+idCount++;element[0].id=id;var injectorPromise=new ParentInjectorPromise(element),ng2Compiler=ng1Injector.get(NG2_COMPILER),ngContentSelectors=ng2Compiler.getNgContentSelectors(info.type),linkFns=compileProjectedNodes(templateElement,ngContentSelectors),componentFactory=componentFactoryRefMap[info.selector];if(!componentFactory)throw new Error("Expecting ComponentFactory for: "+info.selector);element.empty();var projectableNodes=linkFns.map(function(link){var projectedClone;return link(scope,function(clone){projectedClone=clone,element.append(clone)}),projectedClone});parentInjector=parentInjector||ng1Injector.get(NG2_INJECTOR),parentInjector instanceof ParentInjectorPromise?parentInjector.then(function(resolvedInjector){return downgrade(resolvedInjector)}):downgrade(parentInjector)}}}}}return directiveFactory.$inject=[NG1_INJECTOR,NG1_COMPILE,NG2_COMPONENT_FACTORY_REF_MAP,NG1_PARSE],directiveFactory}function sortProjectableNodes(ngContentSelectors,childNodes){for(var wildcardNgContentIndex,projectableNodes=[],matcher=new _angular_compiler.SelectorMatcher,i=0,ii=ngContentSelectors.length;i<ii;i++)projectableNodes[i]=[],"*"===ngContentSelectors[i]?wildcardNgContentIndex=i:matcher.addSelectables(_angular_compiler.CssSelector.parse(ngContentSelectors[i]),i);for(var _loop_1=function(node){var ngContentIndices=[],selector=_angular_compiler.createElementCssSelector(node.nodeName.toLowerCase(),getAttributesAsArray(node));matcher.match(selector,function(selector,ngContentIndex){ngContentIndices.push(ngContentIndex)}),ngContentIndices.sort(),void 0!==wildcardNgContentIndex&&ngContentIndices.push(wildcardNgContentIndex),ngContentIndices.length>0&&projectableNodes[ngContentIndices[0]].push(node)},_i=0,childNodes_1=childNodes;_i<childNodes_1.length;_i++){var node=childNodes_1[_i];_loop_1(node)}return projectableNodes}var angular={bootstrap:noNg,module:noNg,element:noNg,version:noNg,resumeBootstrap:noNg,getTestability:noNg};try{window.hasOwnProperty("angular")&&(angular=window.angular)}catch(e){}var bootstrap=angular.bootstrap,module$1=angular.module,element=angular.element,NG2_COMPILER="ng2.Compiler",NG2_INJECTOR="ng2.Injector",NG2_COMPONENT_FACTORY_REF_MAP="ng2.ComponentFactoryRefMap",NG2_ZONE="ng2.NgZone",NG1_CONTROLLER="$controller",NG1_SCOPE="$scope",NG1_ROOT_SCOPE="$rootScope",NG1_COMPILE="$compile",NG1_HTTP_BACKEND="$httpBackend",NG1_INJECTOR="$injector",NG1_PARSE="$parse",NG1_TEMPLATE_CACHE="$templateCache",NG1_TESTABILITY="$$testability",REQUIRE_INJECTOR="?^^"+NG2_INJECTOR,INITIAL_VALUE={__UNINITIALIZED__:!0},DowngradeNg2ComponentAdapter=function(){function DowngradeNg2ComponentAdapter(info,element,attrs,scope,parentInjector,parse,componentFactory){this.info=info,this.element=element,this.attrs=attrs,this.scope=scope,this.parentInjector=parentInjector,this.parse=parse,this.componentFactory=componentFactory,this.component=null,this.inputChangeCount=0,this.inputChanges=null,this.componentRef=null,this.changeDetector=null,this.componentScope=scope.$new()}return DowngradeNg2ComponentAdapter.prototype.bootstrapNg2=function(projectableNodes){var childInjector=_angular_core.ReflectiveInjector.resolveAndCreate([{provide:NG1_SCOPE,useValue:this.componentScope}],this.parentInjector);this.componentRef=this.componentFactory.create(childInjector,projectableNodes,this.element[0]),this.changeDetector=this.componentRef.changeDetectorRef,this.component=this.componentRef.instance},DowngradeNg2ComponentAdapter.prototype.setupInputs=function(){for(var _this=this,attrs=this.attrs,inputs=this.info.inputs||[],i=0;i<inputs.length;i++){var input=inputs[i],expr=null;if(attrs.hasOwnProperty(input.attr)){var observeFn=function(prop){var prevValue=INITIAL_VALUE;return function(value){null!==_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(value,prevValue===INITIAL_VALUE?value:prevValue),prevValue=value),_this.component[prop]=value}}(input.prop);attrs.$observe(input.attr,observeFn)}else attrs.hasOwnProperty(input.bindAttr)?expr=attrs[input.bindAttr]:attrs.hasOwnProperty(input.bracketAttr)?expr=attrs[input.bracketAttr]:attrs.hasOwnProperty(input.bindonAttr)?expr=attrs[input.bindonAttr]:attrs.hasOwnProperty(input.bracketParenAttr)&&(expr=attrs[input.bracketParenAttr]);if(null!=expr){var watchFn=function(prop){return function(value,prevValue){null!=_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(prevValue,value)),_this.component[prop]=value}}(input.prop);this.componentScope.$watch(expr,watchFn)}}var prototype=this.info.type.prototype;prototype&&prototype.ngOnChanges&&(this.inputChanges={},this.componentScope.$watch(function(){return _this.inputChangeCount},function(){var inputChanges=_this.inputChanges;_this.inputChanges={},_this.component.ngOnChanges(inputChanges)})),this.componentScope.$watch(function(){return _this.changeDetector&&_this.changeDetector.detectChanges()})},DowngradeNg2ComponentAdapter.prototype.setupOutputs=function(){for(var _this=this,attrs=this.attrs,outputs=this.info.outputs||[],j=0;j<outputs.length;j++){var output=outputs[j],expr=null,assignExpr=!1,bindonAttr=output.bindonAttr?output.bindonAttr.substring(0,output.bindonAttr.length-6):null,bracketParenAttr=output.bracketParenAttr?"[("+output.bracketParenAttr.substring(2,output.bracketParenAttr.length-8)+")]":null;if(attrs.hasOwnProperty(output.onAttr)?expr=attrs[output.onAttr]:attrs.hasOwnProperty(output.parenAttr)?expr=attrs[output.parenAttr]:attrs.hasOwnProperty(bindonAttr)?(expr=attrs[bindonAttr],assignExpr=!0):attrs.hasOwnProperty(bracketParenAttr)&&(expr=attrs[bracketParenAttr],assignExpr=!0),null!=expr&&null!=assignExpr){var getter=this.parse(expr),setter=getter.assign;if(assignExpr&&!setter)throw new Error("Expression '"+expr+"' is not assignable!");var emitter=this.component[output.prop];if(!emitter)throw new Error("Missing emitter '"+output.prop+"' on component '"+this.info.selector+"'!");emitter.subscribe({next:assignExpr?function(setter){return function(v){return setter(_this.scope,v)}}(setter):function(getter){return function(v){return getter(_this.scope,{$event:v})}}(getter)})}}},DowngradeNg2ComponentAdapter.prototype.registerCleanup=function(){var _this=this;this.element.bind("$destroy",function(){_this.componentScope.$destroy(),_this.componentRef.destroy()})},DowngradeNg2ComponentAdapter}(),Ng1Change=function(){function Ng1Change(previousValue,currentValue){this.previousValue=previousValue,this.currentValue=currentValue}return Ng1Change.prototype.isFirstChange=function(){return this.previousValue===this.currentValue},Ng1Change}(),COMPONENT_SELECTOR=/^[\w|-]*$/,SKEWER_CASE=/-(\w)/g,directiveResolver=new _angular_compiler.DirectiveResolver,Deferred=function(){function Deferred(){var _this=this;this.promise=new Promise(function(res,rej){_this.resolve=res,_this.reject=rej})}return Deferred}(),CAMEL_CASE=/([A-Z])/g,INITIAL_VALUE$1={__UNINITIALIZED__:!0},NOT_SUPPORTED="NOT_SUPPORTED",UpgradeNg1ComponentAdapterBuilder=function(){function UpgradeNg1ComponentAdapterBuilder(name){this.name=name,this.inputs=[],this.inputsRename=[],this.outputs=[],this.outputsRename=[],this.propertyOutputs=[],this.checkProperties=[],this.propertyMap={},this.linkFn=null,this.directive=null,this.$controller=null;var selector=name.replace(CAMEL_CASE,function(all,next){return"-"+next.toLowerCase()}),self=this;this.type=_angular_core.Directive({selector:selector,inputs:this.inputsRename,outputs:this.outputsRename}).Class({constructor:[new _angular_core.Inject(NG1_SCOPE),_angular_core.ElementRef,function(scope,elementRef){return new UpgradeNg1ComponentAdapter(self.linkFn,scope,self.directive,elementRef,self.$controller,self.inputs,self.outputs,self.propertyOutputs,self.checkProperties,self.propertyMap)}],ngOnInit:function(){},ngOnChanges:function(){},ngDoCheck:function(){},ngOnDestroy:function(){}})}return UpgradeNg1ComponentAdapterBuilder.prototype.extractDirective=function(injector){var directives=injector.get(this.name+"Directive");if(directives.length>1)throw new Error("Only support single directive definition for: "+this.name);var directive=directives[0];directive.replace&&this.notSupported("replace"),directive.terminal&&this.notSupported("terminal");var link=directive.link;return"object"==typeof link&&link.post&&this.notSupported("link.post"),directive},UpgradeNg1ComponentAdapterBuilder.prototype.notSupported=function(feature){throw new Error("Upgraded directive '"+this.name+"' does not support '"+feature+"'.")},UpgradeNg1ComponentAdapterBuilder.prototype.extractBindings=function(){var btcIsObject="object"==typeof this.directive.bindToController;if(btcIsObject&&Object.keys(this.directive.scope).length)throw new Error("Binding definitions on scope and controller at the same time are not supported.");var context=btcIsObject?this.directive.bindToController:this.directive.scope;if("object"==typeof context)for(var name_1 in context)if(context.hasOwnProperty(name_1)){var localName=context[name_1],type=localName.charAt(0),typeOptions=localName.charAt(1);localName="?"===typeOptions?localName.substr(2):localName.substr(1),localName=localName||name_1;var outputName="output_"+name_1,outputNameRename=outputName+": "+name_1,outputNameRenameChange=outputName+": "+name_1+"Change",inputName="input_"+name_1,inputNameRename=inputName+": "+name_1;switch(type){case"=":this.propertyOutputs.push(outputName),this.checkProperties.push(localName),this.outputs.push(outputName),this.outputsRename.push(outputNameRenameChange),this.propertyMap[outputName]=localName,this.inputs.push(inputName),this.inputsRename.push(inputNameRename),this.propertyMap[inputName]=localName;break;case"@":case"<":this.inputs.push(inputName),this.inputsRename.push(inputNameRename),this.propertyMap[inputName]=localName;break;case"&":this.outputs.push(outputName),this.outputsRename.push(outputNameRename),this.propertyMap[outputName]=localName;break;default:var json=JSON.stringify(context);throw new Error("Unexpected mapping '"+type+"' in '"+json+"' in '"+this.name+"' directive.")}}},UpgradeNg1ComponentAdapterBuilder.prototype.compileTemplate=function(compile,templateCache,httpBackend){function compileHtml(html){var div=document.createElement("div");return div.innerHTML=html,compile(div.childNodes)}var _this=this;if(void 0!==this.directive.template)this.linkFn=compileHtml("function"==typeof this.directive.template?this.directive.template():this.directive.template);else{if(!this.directive.templateUrl)throw new Error("Directive '"+this.name+"' is not a component, it is missing template.");var url_1="function"==typeof this.directive.templateUrl?this.directive.templateUrl():this.directive.templateUrl,html=templateCache.get(url_1);if(void 0===html)return new Promise(function(resolve,err){httpBackend("GET",url_1,null,function(status,response){200==status?resolve(_this.linkFn=compileHtml(templateCache.put(url_1,response))):err("GET "+url_1+" returned "+status+": "+response)})});this.linkFn=compileHtml(html)}return null},UpgradeNg1ComponentAdapterBuilder.resolve=function(exportedComponents,injector){var promises=[],compile=injector.get(NG1_COMPILE),templateCache=injector.get(NG1_TEMPLATE_CACHE),httpBackend=injector.get(NG1_HTTP_BACKEND),$controller=injector.get(NG1_CONTROLLER);for(var name_2 in exportedComponents)if(exportedComponents.hasOwnProperty(name_2)){var exportedComponent=exportedComponents[name_2];exportedComponent.directive=exportedComponent.extractDirective(injector),exportedComponent.$controller=$controller,exportedComponent.extractBindings();var promise=exportedComponent.compileTemplate(compile,templateCache,httpBackend);promise&&promises.push(promise)}return Promise.all(promises)},UpgradeNg1ComponentAdapterBuilder}(),UpgradeNg1ComponentAdapter=function(){function UpgradeNg1ComponentAdapter(linkFn,scope,directive,elementRef,$controller,inputs,outputs,propOuts,checkProperties,propertyMap){this.linkFn=linkFn,this.directive=directive,this.$controller=$controller,this.inputs=inputs,this.outputs=outputs,this.propOuts=propOuts,this.checkProperties=checkProperties,this.propertyMap=propertyMap,this.destinationObj=null,this.checkLastValues=[],this.$element=null,this.element=elementRef.nativeElement,this.componentScope=scope.$new(!!directive.scope),this.$element=element(this.element);var controllerType=directive.controller;directive.bindToController&&controllerType?this.destinationObj=this.buildController(controllerType):this.destinationObj=this.componentScope;for(var i=0;i<inputs.length;i++)this[inputs[i]]=null;for(var j=0;j<outputs.length;j++){var emitter=this[outputs[j]]=new _angular_core.EventEmitter;this.setComponentProperty(outputs[j],function(emitter){return function(value){return emitter.emit(value)}}(emitter))}for(var k=0;k<propOuts.length;k++)this[propOuts[k]]=new _angular_core.EventEmitter,this.checkLastValues.push(INITIAL_VALUE$1)}return UpgradeNg1ComponentAdapter.prototype.ngOnInit=function(){var _this=this;!this.directive.bindToController&&this.directive.controller&&this.buildController(this.directive.controller);var link=this.directive.link;if("object"==typeof link&&(link=link.pre),link){var attrs=NOT_SUPPORTED,transcludeFn=NOT_SUPPORTED,linkController=this.resolveRequired(this.$element,this.directive.require);this.directive.link(this.componentScope,this.$element,attrs,linkController,transcludeFn)}for(var childNode,childNodes=[];childNode=this.element.firstChild;)this.element.removeChild(childNode),childNodes.push(childNode);this.linkFn(this.componentScope,function(clonedElement,scope){for(var i=0,ii=clonedElement.length;i<ii;i++)_this.element.appendChild(clonedElement[i])},{parentBoundTranscludeFn:function(scope,cloneAttach){cloneAttach(childNodes)}}),this.destinationObj.$onInit&&this.destinationObj.$onInit()},UpgradeNg1ComponentAdapter.prototype.ngOnChanges=function(changes){var _this=this,ng1Changes={};Object.keys(changes).forEach(function(name){var change=changes[name];_this.setComponentProperty(name,change.currentValue),ng1Changes[_this.propertyMap[name]]=change}),this.destinationObj.$onChanges&&this.destinationObj.$onChanges(ng1Changes)},UpgradeNg1ComponentAdapter.prototype.ngDoCheck=function(){for(var destinationObj=this.destinationObj,lastValues=this.checkLastValues,checkProperties=this.checkProperties,i=0;i<checkProperties.length;i++){var value=destinationObj[checkProperties[i]],last=lastValues[i];if(value!==last)if("number"==typeof value&&isNaN(value)&&"number"==typeof last&&isNaN(last));else{var eventEmitter=this[this.propOuts[i]];eventEmitter.emit(lastValues[i]=value)}}this.destinationObj.$doCheck&&this.directive.controller&&this.destinationObj.$doCheck()},UpgradeNg1ComponentAdapter.prototype.ngOnDestroy=function(){this.destinationObj.$onDestroy&&this.directive.controller&&this.destinationObj.$onDestroy()},UpgradeNg1ComponentAdapter.prototype.setComponentProperty=function(name,value){this.destinationObj[this.propertyMap[name]]=value},UpgradeNg1ComponentAdapter.prototype.buildController=function(controllerType){var locals={$scope:this.componentScope,$element:this.$element},controller=this.$controller(controllerType,locals,null,this.directive.controllerAs);return this.$element.data(controllerKey(this.directive.name),controller),controller},UpgradeNg1ComponentAdapter.prototype.resolveRequired=function($element,require){if(require){if("string"==typeof require){var name_3=require,isOptional=!1,startParent=!1,searchParents=!1;"?"==name_3.charAt(0)&&(isOptional=!0,name_3=name_3.substr(1)),"^"==name_3.charAt(0)&&(searchParents=!0,name_3=name_3.substr(1)),"^"==name_3.charAt(0)&&(startParent=!0,name_3=name_3.substr(1));var key=controllerKey(name_3);startParent&&($element=$element.parent());var dep=searchParents?$element.inheritedData(key):$element.data(key);if(!dep&&!isOptional)throw new Error("Can not locate '"+require+"' in '"+this.directive.name+"'.");return dep}if(require instanceof Array){for(var deps=[],i=0;i<require.length;i++)deps.push(this.resolveRequired($element,require[i]));return deps}throw new Error("Directive '"+this.directive.name+"' require syntax unrecognized: "+this.directive.require)}},UpgradeNg1ComponentAdapter}(),upgradeCount=0,UpgradeAdapter=function(){function UpgradeAdapter(ng2AppModule,compilerOptions){if(this.ng2AppModule=ng2AppModule,this.compilerOptions=compilerOptions,this.idPrefix="NG2_UPGRADE_"+upgradeCount++ +"_",this.upgradedComponents=[],this.ng1ComponentsToBeUpgraded={},this.providers=[],this.moduleRef=null,!ng2AppModule)throw new Error("UpgradeAdapter cannot be instantiated without an NgModule of the Angular 2 app.")}return UpgradeAdapter.prototype.downgradeNg2Component=function(type){this.upgradedComponents.push(type);var info=getComponentInfo(type);return ng1ComponentDirective(info,""+this.idPrefix+info.selector+"_c")},UpgradeAdapter.prototype.upgradeNg1Component=function(name){return this.ng1ComponentsToBeUpgraded.hasOwnProperty(name)?this.ng1ComponentsToBeUpgraded[name].type:(this.ng1ComponentsToBeUpgraded[name]=new UpgradeNg1ComponentAdapterBuilder(name)).type},UpgradeAdapter.prototype.registerForNg1Tests=function(modules){var _this=this,windowNgMock=window.angular.mock;if(!windowNgMock||!windowNgMock.module)throw new Error("Failed to find 'angular.mock.module'.");this.declareNg1Module(modules),windowNgMock.module(this.ng1Module.name);var upgrade=new UpgradeAdapterRef;return this.ng2BootstrapDeferred.promise.then(function(){upgrade._bootstrapDone(_this.moduleRef,upgrade.ng1Injector)},onError),upgrade},UpgradeAdapter.prototype.bootstrap=function(element$$,modules,config){var _this=this;this.declareNg1Module(modules);var upgrade=new UpgradeAdapterRef,windowAngular=window.angular;windowAngular.resumeBootstrap=void 0,this.ngZone.run(function(){bootstrap(element$$,[_this.ng1Module.name],config)});var ng1BootstrapPromise=new Promise(function(resolve){if(windowAngular.resumeBootstrap){var originalResumeBootstrap_1=windowAngular.resumeBootstrap;windowAngular.resumeBootstrap=function(){windowAngular.resumeBootstrap=originalResumeBootstrap_1,windowAngular.resumeBootstrap.apply(this,arguments),resolve()}}else resolve()});return Promise.all([this.ng2BootstrapDeferred.promise,ng1BootstrapPromise]).then(function(_a){var ng1Injector=_a[0];element(element$$).data(controllerKey(NG2_INJECTOR),_this.moduleRef.injector),_this.moduleRef.injector.get(_angular_core.NgZone).run(function(){upgrade._bootstrapDone(_this.moduleRef,ng1Injector)})},onError),upgrade},UpgradeAdapter.prototype.upgradeNg1Provider=function(name,options){var token=options&&options.asToken||name;this.providers.push({provide:token,useFactory:function(ng1Injector){return ng1Injector.get(name)},deps:[NG1_INJECTOR]})},UpgradeAdapter.prototype.downgradeNg2Provider=function(token){var factory=function(injector){return injector.get(token)};return factory.$inject=[NG2_INJECTOR],factory},UpgradeAdapter.prototype.declareNg1Module=function(modules){var _this=this;void 0===modules&&(modules=[]);var original$applyFn,rootScopePrototype,rootScope,delayApplyExps=[],componentFactoryRefMap={},upgradeAdapter=this,ng1Module=this.ng1Module=module$1(this.idPrefix,modules),platformRef=_angular_platformBrowserDynamic.platformBrowserDynamic();return this.ngZone=new _angular_core.NgZone({enableLongStackTrace:Zone.hasOwnProperty("longStackTraceZoneSpec")}),this.ng2BootstrapDeferred=new Deferred,ng1Module.factory(NG2_INJECTOR,function(){return _this.moduleRef.injector.get(_angular_core.Injector)}).constant(NG2_ZONE,this.ngZone).constant(NG2_COMPONENT_FACTORY_REF_MAP,componentFactoryRefMap).factory(NG2_COMPILER,function(){return _this.moduleRef.injector.get(_angular_core.Compiler)}).config(["$provide","$injector",function(provide,ng1Injector){provide.decorator(NG1_ROOT_SCOPE,["$delegate",function(rootScopeDelegate){if(rootScopePrototype=rootScopeDelegate.constructor.prototype,!rootScopePrototype.hasOwnProperty("$apply"))throw new Error("Failed to find '$apply' on '$rootScope'!");return original$applyFn=rootScopePrototype.$apply,rootScopePrototype.$apply=function(exp){return delayApplyExps.push(exp)},rootScope=rootScopeDelegate}]),ng1Injector.has(NG1_TESTABILITY)&&provide.decorator(NG1_TESTABILITY,["$delegate",function(testabilityDelegate){var originalWhenStable=testabilityDelegate.whenStable,newWhenStable=function(callback){originalWhenStable.call(this,function(){var ng2Testability=upgradeAdapter.moduleRef.injector.get(_angular_core.Testability);ng2Testability.isStable()?callback.apply(this,arguments):ng2Testability.whenStable(newWhenStable.bind(this,callback))})};return testabilityDelegate.whenStable=newWhenStable,testabilityDelegate}])}]),ng1Module.run(["$injector","$rootScope",function(ng1Injector,rootScope){UpgradeNg1ComponentAdapterBuilder.resolve(_this.ng1ComponentsToBeUpgraded,ng1Injector).then(function(){var DynamicNgUpgradeModule=_angular_core.NgModule({providers:[{provide:NG1_INJECTOR,useFactory:function(){return ng1Injector}},{provide:NG1_COMPILE,useFactory:function(){return ng1Injector.get(NG1_COMPILE)}},_this.providers],imports:[_this.ng2AppModule]}).Class({constructor:function(){},ngDoBootstrap:function(){}});platformRef._bootstrapModuleWithZone(DynamicNgUpgradeModule,_this.compilerOptions,_this.ngZone,function(componentFactories){componentFactories.forEach(function(componentFactory){var type=componentFactory.componentType;_this.upgradedComponents.indexOf(type)!==-1&&(componentFactoryRefMap[getComponentInfo(type).selector]=componentFactory)})}).then(function(ref){_this.moduleRef=ref;var subscription=_this.ngZone.onMicrotaskEmpty.subscribe({next:function(_){return _this.ngZone.runOutsideAngular(function(){return rootScope.$evalAsync()})}});rootScope.$on("$destroy",function(){subscription.unsubscribe()}),_this.ngZone.run(function(){if(rootScopePrototype){for(rootScopePrototype.$apply=original$applyFn;delayApplyExps.length;)rootScope.$apply(delayApplyExps.shift());rootScopePrototype=null}})}).then(function(){return _this.ng2BootstrapDeferred.resolve(ng1Injector)},onError)}).catch(function(e){return _this.ng2BootstrapDeferred.reject(e)})}]),ng1Module},UpgradeAdapter}(),ParentInjectorPromise=function(){function ParentInjectorPromise(element){this.element=element,this.callbacks=[],element.data(controllerKey(NG2_INJECTOR),this)}return ParentInjectorPromise.prototype.then=function(callback){this.injector?callback(this.injector):this.callbacks.push(callback)},ParentInjectorPromise.prototype.resolve=function(injector){this.injector=injector,this.element.data(controllerKey(NG2_INJECTOR),injector),this.element=null,this.callbacks.forEach(function(callback){return callback(injector)}),this.callbacks.length=0},ParentInjectorPromise}(),UpgradeAdapterRef=function(){function UpgradeAdapterRef(){this._readyFn=null,this.ng1RootScope=null,this.ng1Injector=null,this.ng2ModuleRef=null,this.ng2Injector=null}return UpgradeAdapterRef.prototype._bootstrapDone=function(ngModuleRef,ng1Injector){this.ng2ModuleRef=ngModuleRef,this.ng2Injector=ngModuleRef.injector,this.ng1Injector=ng1Injector,this.ng1RootScope=ng1Injector.get(NG1_ROOT_SCOPE),this._readyFn&&this._readyFn(this)},UpgradeAdapterRef.prototype.ready=function(fn){this._readyFn=fn},UpgradeAdapterRef.prototype.dispose=function(){this.ng1Injector.get(NG1_ROOT_SCOPE).$destroy(),this.ng2ModuleRef.destroy()},UpgradeAdapterRef}(),VERSION=new _angular_core.Version("4.0.0-beta.0");exports.UpgradeAdapter=UpgradeAdapter,exports.UpgradeAdapterRef=UpgradeAdapterRef,exports.VERSION=VERSION});

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

[{"__symbolic":"module","version":2,"metadata":{},"exports":[{"from":"./src/upgrade"}]},{"__symbolic":"module","exports":[{"from":"./src/upgrade"}],"metadata":{},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./src/upgrade"}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/upgrade"}]}]
{
"name": "@angular/upgrade",
"version": "2.3.0",
"version": "4.0.0-beta.0",
"description": "Angular - the library for easing update from v1 to v2",

@@ -11,6 +11,6 @@ "main": "bundles/upgrade.umd.js",

"peerDependencies": {
"@angular/core": "2.3.0",
"@angular/compiler": "2.3.0",
"@angular/platform-browser": "2.3.0",
"@angular/platform-browser-dynamic": "2.3.0"
"@angular/core": "4.0.0-beta.0",
"@angular/compiler": "4.0.0-beta.0",
"@angular/platform-browser": "4.0.0-beta.0",
"@angular/platform-browser-dynamic": "4.0.0-beta.0"
},

@@ -17,0 +17,0 @@ "repository": {

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

value(key: Ng1Token, value: any): IModule;
constant(token: Ng1Token, value: any): IModule;
run(a: IInjectable): IModule;
}
export interface ICompileService {
(element: Element | NodeList | string, transclude?: Function): ILinkFn;
(element: Element | NodeList | Node[] | string, transclude?: Function): ILinkFn;
}

@@ -47,2 +48,3 @@ export interface ILinkFn {

$watch(expr: any, fn?: (a1?: any, a2?: any) => void): Function;
$on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;
$destroy(): any;

@@ -131,2 +133,3 @@ $apply(): any;

isolateScope?: () => IScope;
injector?: () => IInjectorService;
};

@@ -133,0 +136,0 @@ export interface IProvider {

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

[{"__symbolic":"module","version":2,"metadata":{"bootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"module":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"element":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"version":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"resumeBootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"getTestability":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}}}},{"__symbolic":"module","metadata":{"bootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"module":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"element":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"version":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"resumeBootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}},"getTestability":{"__symbolic":"error","message":"Reference to a local symbol","line":164,"character":4,"context":{"name":"angular"}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"bootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"module":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"element":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"version":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"resumeBootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"getTestability":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}}}},{"__symbolic":"module","version":1,"metadata":{"bootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"module":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"element":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"version":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"resumeBootstrap":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}},"getTestability":{"__symbolic":"error","message":"Reference to a local symbol","line":167,"character":4,"context":{"name":"angular"}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"setTempInjectorRef":{"__symbolic":"function"},"injectorFactory":{"__symbolic":"function"},"rootScopeFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$rootScope"]}},"compileFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$compile"]}},"parseFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$parse"]}},"angular1Providers":[{"provide":"$injector","useFactory":{"__symbolic":"reference","name":"injectorFactory"}},{"provide":"$rootScope","useFactory":{"__symbolic":"reference","name":"rootScopeFactory"},"deps":["$injector"]},{"provide":"$compile","useFactory":{"__symbolic":"reference","name":"compileFactory"},"deps":["$injector"]},{"provide":"$parse","useFactory":{"__symbolic":"reference","name":"parseFactory"},"deps":["$injector"]}]}},{"__symbolic":"module","metadata":{"setTempInjectorRef":{"__symbolic":"function"},"injectorFactory":{"__symbolic":"function"},"rootScopeFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$rootScope"]}},"compileFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$compile"]}},"parseFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$parse"]}},"angular1Providers":[{"provide":"$injector","useFactory":{"__symbolic":"reference","name":"injectorFactory"}},{"provide":"$rootScope","useFactory":{"__symbolic":"reference","name":"rootScopeFactory"},"deps":["$injector"]},{"provide":"$compile","useFactory":{"__symbolic":"reference","name":"compileFactory"},"deps":["$injector"]},{"provide":"$parse","useFactory":{"__symbolic":"reference","name":"parseFactory"},"deps":["$injector"]}]},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"setTempInjectorRef":{"__symbolic":"function"},"injectorFactory":{"__symbolic":"function"},"rootScopeFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$rootScope"]}},"compileFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$compile"]}},"parseFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$parse"]}},"angular1Providers":[{"provide":"$injector","useFactory":{"__symbolic":"reference","name":"injectorFactory"}},{"provide":"$rootScope","useFactory":{"__symbolic":"reference","name":"rootScopeFactory"},"deps":["$injector"]},{"provide":"$compile","useFactory":{"__symbolic":"reference","name":"compileFactory"},"deps":["$injector"]},{"provide":"$parse","useFactory":{"__symbolic":"reference","name":"parseFactory"},"deps":["$injector"]}]}},{"__symbolic":"module","version":1,"metadata":{"setTempInjectorRef":{"__symbolic":"function"},"injectorFactory":{"__symbolic":"function"},"rootScopeFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$rootScope"]}},"compileFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$compile"]}},"parseFactory":{"__symbolic":"function","parameters":["i"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"i"},"member":"get"},"arguments":["$parse"]}},"angular1Providers":[{"provide":"$injector","useFactory":{"__symbolic":"reference","name":"injectorFactory"}},{"provide":"$rootScope","useFactory":{"__symbolic":"reference","name":"rootScopeFactory"},"deps":["$injector"]},{"provide":"$compile","useFactory":{"__symbolic":"reference","name":"compileFactory"},"deps":["$injector"]},{"provide":"$parse","useFactory":{"__symbolic":"reference","name":"parseFactory"},"deps":["$injector"]}]}}]

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

[{"__symbolic":"module","version":2,"metadata":{"PropertyBinding":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"parseBinding":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"PropertyBinding":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"parseBinding":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"PropertyBinding":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"parseBinding":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"PropertyBinding":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"parseBinding":[{"__symbolic":"method"}]}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"UPGRADE_MODULE_NAME":"$$UpgradeModule","INJECTOR_KEY":"$$angularInjector","$INJECTOR":"$injector","$PARSE":"$parse","$ROOT_SCOPE":"$rootScope","$SCOPE":"$scope","$PROVIDE":"$provide","$DELEGATE":"$delegate","$$TESTABILITY":"$$testability","$COMPILE":"$compile","$TEMPLATE_CACHE":"$templateCache","$HTTP_BACKEND":"$httpBackend","$CONTROLLER":"$controller"}},{"__symbolic":"module","metadata":{"UPGRADE_MODULE_NAME":"$$UpgradeModule","INJECTOR_KEY":"$$angularInjector","$INJECTOR":"$injector","$PARSE":"$parse","$ROOT_SCOPE":"$rootScope","$SCOPE":"$scope","$PROVIDE":"$provide","$DELEGATE":"$delegate","$$TESTABILITY":"$$testability","$COMPILE":"$compile","$TEMPLATE_CACHE":"$templateCache","$HTTP_BACKEND":"$httpBackend","$CONTROLLER":"$controller"},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"UPGRADE_MODULE_NAME":"$$UpgradeModule","INJECTOR_KEY":"$$angularInjector","$INJECTOR":"$injector","$PARSE":"$parse","$ROOT_SCOPE":"$rootScope","$SCOPE":"$scope","$PROVIDE":"$provide","$DELEGATE":"$delegate","$$TESTABILITY":"$$testability","$COMPILE":"$compile","$TEMPLATE_CACHE":"$templateCache","$HTTP_BACKEND":"$httpBackend","$CONTROLLER":"$controller"}},{"__symbolic":"module","version":1,"metadata":{"UPGRADE_MODULE_NAME":"$$UpgradeModule","INJECTOR_KEY":"$$angularInjector","$INJECTOR":"$injector","$PARSE":"$parse","$ROOT_SCOPE":"$rootScope","$SCOPE":"$scope","$PROVIDE":"$provide","$DELEGATE":"$delegate","$$TESTABILITY":"$$testability","$COMPILE":"$compile","$TEMPLATE_CACHE":"$templateCache","$HTTP_BACKEND":"$httpBackend","$CONTROLLER":"$controller"}}]

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

[{"__symbolic":"module","version":2,"metadata":{"DowngradeComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./component_info","name":"ComponentInfo"},{"__symbolic":"reference","module":"../angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"../angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"../angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"../angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"createComponent":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"DowngradeComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./component_info","name":"ComponentInfo"},{"__symbolic":"reference","module":"../angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"../angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"../angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"../angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"createComponent":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"DowngradeComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./component_info","name":"ComponentInfo"},{"__symbolic":"reference","module":"../angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"../angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"../angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"../angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"createComponent":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DowngradeComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./component_info","name":"ComponentInfo"},{"__symbolic":"reference","module":"../angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"../angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"../angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"../angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"createComponent":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"downgradeComponent":{"__symbolic":"function"}}},{"__symbolic":"module","metadata":{"downgradeComponent":{"__symbolic":"function"}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"downgradeComponent":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"downgradeComponent":{"__symbolic":"function"}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"downgradeInjectable":{"__symbolic":"function","parameters":["token"],"value":{"__symbolic":"error","message":"Function call not supported","line":54,"character":24}}}},{"__symbolic":"module","metadata":{"downgradeInjectable":{"__symbolic":"function","parameters":["token"],"value":{"__symbolic":"error","message":"Function call not supported","line":54,"character":24}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"downgradeInjectable":{"__symbolic":"function","parameters":["token"],"value":{"__symbolic":"error","message":"Function call not supported","line":54,"character":24}}}},{"__symbolic":"module","version":1,"metadata":{"downgradeInjectable":{"__symbolic":"function","parameters":["token"],"value":{"__symbolic":"error","message":"Function call not supported","line":54,"character":24}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"UpgradeComponent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"callLifecycleHook":[{"__symbolic":"method"}],"getDirective":[{"__symbolic":"method"}],"getDirectiveRequire":[{"__symbolic":"method"}],"initializeBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}],"buildController":[{"__symbolic":"method"}],"resolveRequire":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"compileHtml":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"UpgradeComponent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"callLifecycleHook":[{"__symbolic":"method"}],"getDirective":[{"__symbolic":"method"}],"getDirectiveRequire":[{"__symbolic":"method"}],"initializeBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}],"buildController":[{"__symbolic":"method"}],"resolveRequire":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"compileHtml":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"UpgradeComponent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"callLifecycleHook":[{"__symbolic":"method"}],"getDirective":[{"__symbolic":"method"}],"getDirectiveRequire":[{"__symbolic":"method"}],"initializeBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}],"buildController":[{"__symbolic":"method"}],"resolveRequire":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"compileHtml":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"UpgradeComponent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"callLifecycleHook":[{"__symbolic":"method"}],"getDirective":[{"__symbolic":"method"}],"getDirectiveRequire":[{"__symbolic":"method"}],"initializeBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}],"buildController":[{"__symbolic":"method"}],"resolveRequire":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"compileHtml":[{"__symbolic":"method"}]}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"UpgradeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"providers":{"__symbolic":"reference","module":"./angular1_providers","name":"angular1Providers"}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"}]}],"bootstrap":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"UpgradeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"providers":{"__symbolic":"reference","module":"./angular1_providers","name":"angular1Providers"}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"}]}],"bootstrap":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"UpgradeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"providers":{"__symbolic":"reference","module":"./angular1_providers","name":"angular1Providers"}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"}]}],"bootstrap":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"UpgradeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"providers":{"__symbolic":"reference","module":"./angular1_providers","name":"angular1Providers"}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"}]}],"bootstrap":[{"__symbolic":"method"}]}}}}]

@@ -22,3 +22,3 @@ /**

export var /** @type {?} */ NG1_TESTABILITY = '$$testability';
export var /** @type {?} */ REQUIRE_INJECTOR = '?^' + NG2_INJECTOR;
export var /** @type {?} */ REQUIRE_INJECTOR = '?^^' + NG2_INJECTOR;
//# sourceMappingURL=constants.js.map

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

[{"__symbolic":"module","version":2,"metadata":{"NG2_COMPILER":"ng2.Compiler","NG2_INJECTOR":"ng2.Injector","NG2_COMPONENT_FACTORY_REF_MAP":"ng2.ComponentFactoryRefMap","NG2_ZONE":"ng2.NgZone","NG1_PROVIDE":"$provide","NG1_CONTROLLER":"$controller","NG1_SCOPE":"$scope","NG1_ROOT_SCOPE":"$rootScope","NG1_COMPILE":"$compile","NG1_HTTP_BACKEND":"$httpBackend","NG1_INJECTOR":"$injector","NG1_PARSE":"$parse","NG1_TEMPLATE_CACHE":"$templateCache","NG1_TESTABILITY":"$$testability","REQUIRE_INJECTOR":"?^ng2.Injector"}},{"__symbolic":"module","metadata":{"NG2_COMPILER":"ng2.Compiler","NG2_INJECTOR":"ng2.Injector","NG2_COMPONENT_FACTORY_REF_MAP":"ng2.ComponentFactoryRefMap","NG2_ZONE":"ng2.NgZone","NG1_PROVIDE":"$provide","NG1_CONTROLLER":"$controller","NG1_SCOPE":"$scope","NG1_ROOT_SCOPE":"$rootScope","NG1_COMPILE":"$compile","NG1_HTTP_BACKEND":"$httpBackend","NG1_INJECTOR":"$injector","NG1_PARSE":"$parse","NG1_TEMPLATE_CACHE":"$templateCache","NG1_TESTABILITY":"$$testability","REQUIRE_INJECTOR":"?^ng2.Injector"},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"NG2_COMPILER":"ng2.Compiler","NG2_INJECTOR":"ng2.Injector","NG2_COMPONENT_FACTORY_REF_MAP":"ng2.ComponentFactoryRefMap","NG2_ZONE":"ng2.NgZone","NG1_PROVIDE":"$provide","NG1_CONTROLLER":"$controller","NG1_SCOPE":"$scope","NG1_ROOT_SCOPE":"$rootScope","NG1_COMPILE":"$compile","NG1_HTTP_BACKEND":"$httpBackend","NG1_INJECTOR":"$injector","NG1_PARSE":"$parse","NG1_TEMPLATE_CACHE":"$templateCache","NG1_TESTABILITY":"$$testability","REQUIRE_INJECTOR":"?^^ng2.Injector"}},{"__symbolic":"module","version":1,"metadata":{"NG2_COMPILER":"ng2.Compiler","NG2_INJECTOR":"ng2.Injector","NG2_COMPONENT_FACTORY_REF_MAP":"ng2.ComponentFactoryRefMap","NG2_ZONE":"ng2.NgZone","NG1_PROVIDE":"$provide","NG1_CONTROLLER":"$controller","NG1_SCOPE":"$scope","NG1_ROOT_SCOPE":"$rootScope","NG1_COMPILE":"$compile","NG1_HTTP_BACKEND":"$httpBackend","NG1_INJECTOR":"$injector","NG1_PARSE":"$parse","NG1_TEMPLATE_CACHE":"$templateCache","NG1_TESTABILITY":"$$testability","REQUIRE_INJECTOR":"?^^ng2.Injector"}}]

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

export declare class DowngradeNg2ComponentAdapter {
private id;
private info;

@@ -27,10 +26,7 @@ private element;

componentScope: angular.IScope;
childNodes: Node[];
contentInsertionPoint: Node;
constructor(id: string, info: ComponentInfo, element: angular.IAugmentedJQuery, attrs: angular.IAttributes, scope: angular.IScope, parentInjector: Injector, parse: angular.IParseService, componentFactory: ComponentFactory<any>);
bootstrapNg2(): void;
constructor(info: ComponentInfo, element: angular.IAugmentedJQuery, attrs: angular.IAttributes, scope: angular.IScope, parentInjector: Injector, parse: angular.IParseService, componentFactory: ComponentFactory<any>);
bootstrapNg2(projectableNodes: Node[][]): void;
setupInputs(): void;
projectContent(): void;
setupOutputs(): void;
registerCleanup(): void;
}

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

/**
* @param {?} id
* @param {?} info

@@ -25,4 +24,3 @@ * @param {?} element

*/
function DowngradeNg2ComponentAdapter(id, info, element, attrs, scope, parentInjector, parse, componentFactory) {
this.id = id;
function DowngradeNg2ComponentAdapter(info, element, attrs, scope, parentInjector, parse, componentFactory) {
this.info = info;

@@ -40,14 +38,12 @@ this.element = element;

this.changeDetector = null;
this.contentInsertionPoint = null;
this.element[0].id = id;
this.componentScope = scope.$new();
this.childNodes = element.contents();
}
/**
* @param {?} projectableNodes
* @return {?}
*/
DowngradeNg2ComponentAdapter.prototype.bootstrapNg2 = function () {
DowngradeNg2ComponentAdapter.prototype.bootstrapNg2 = function (projectableNodes) {
var /** @type {?} */ childInjector = ReflectiveInjector.resolveAndCreate([{ provide: NG1_SCOPE, useValue: this.componentScope }], this.parentInjector);
this.contentInsertionPoint = document.createComment('ng1 insertion point');
this.componentRef = this.componentFactory.create(childInjector, [[this.contentInsertionPoint]], this.element[0]);
this.componentRef =
this.componentFactory.create(childInjector, projectableNodes, this.element[0]);
this.changeDetector = this.componentRef.changeDetectorRef;

@@ -121,14 +117,2 @@ this.component = this.componentRef.instance;

*/
DowngradeNg2ComponentAdapter.prototype.projectContent = function () {
var /** @type {?} */ childNodes = this.childNodes;
var /** @type {?} */ parent = this.contentInsertionPoint.parentNode;
if (parent) {
for (var /** @type {?} */ i = 0, /** @type {?} */ ii = childNodes.length; i < ii; i++) {
parent.insertBefore(childNodes[i], this.contentInsertionPoint);
}
}
};
/**
* @return {?}
*/
DowngradeNg2ComponentAdapter.prototype.setupOutputs = function () {

@@ -208,8 +192,2 @@ var _this = this;

/** @type {?} */
DowngradeNg2ComponentAdapter.prototype.childNodes;
/** @type {?} */
DowngradeNg2ComponentAdapter.prototype.contentInsertionPoint;
/** @type {?} */
DowngradeNg2ComponentAdapter.prototype.id;
/** @type {?} */
DowngradeNg2ComponentAdapter.prototype.info;

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

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

[{"__symbolic":"module","version":2,"metadata":{"DowngradeNg2ComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./metadata","name":"ComponentInfo"},{"__symbolic":"reference","module":"./angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"./angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"./angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"bootstrapNg2":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"DowngradeNg2ComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./metadata","name":"ComponentInfo"},{"__symbolic":"reference","module":"./angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"./angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"./angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"bootstrapNg2":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"projectContent":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"DowngradeNg2ComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./metadata","name":"ComponentInfo"},{"__symbolic":"reference","module":"./angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"./angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"./angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"bootstrapNg2":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DowngradeNg2ComponentAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./metadata","name":"ComponentInfo"},{"__symbolic":"reference","module":"./angular_js","name":"IAugmentedJQuery"},{"__symbolic":"reference","module":"./angular_js","name":"IAttributes"},{"__symbolic":"reference","module":"./angular_js","name":"IScope"},{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./angular_js","name":"IParseService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactory","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"bootstrapNg2":[{"__symbolic":"method"}],"setupInputs":[{"__symbolic":"method"}],"setupOutputs":[{"__symbolic":"method"}],"registerCleanup":[{"__symbolic":"method"}]}}}}]

@@ -86,6 +86,6 @@ /**

if (token.overriddenName) {
return token.overriddenName;
return "" + token.overriddenName;
}
if (token.name) {
return token.name;
return "" + token.name;
}

@@ -92,0 +92,0 @@ var /** @type {?} */ res = token.toString();

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

[{"__symbolic":"module","version":2,"metadata":{"scheduleMicroTask":{"__symbolic":"function"},"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":60,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"stringify":{"__symbolic":"function"},"NumberWrapper":{"__symbolic":"class","statics":{"isNumeric":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"binop","operator":"-","left":{"__symbolic":"reference","name":"value"},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"parseFloat"},"arguments":[{"__symbolic":"reference","name":"value"}]}}]}}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":51},"right":"object"}}}},"print":{"__symbolic":"function"},"warn":{"__symbolic":"function"},"setValueOnPath":{"__symbolic":"function"},"getSymbolIterator":{"__symbolic":"function"},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":183,"character":19}}}},{"__symbolic":"module","metadata":{"scheduleMicroTask":{"__symbolic":"function"},"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":60,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"stringify":{"__symbolic":"function"},"NumberWrapper":{"__symbolic":"class","statics":{"isNumeric":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"binop","operator":"-","left":{"__symbolic":"reference","name":"value"},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"parseFloat"},"arguments":[{"__symbolic":"reference","name":"value"}]}}]}}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":51},"right":"object"}}}},"print":{"__symbolic":"function"},"warn":{"__symbolic":"function"},"setValueOnPath":{"__symbolic":"function"},"getSymbolIterator":{"__symbolic":"function"},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":183,"character":19}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"scheduleMicroTask":{"__symbolic":"function"},"global":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":6,"context":{"name":"_global"}},"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":60,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"stringify":{"__symbolic":"function"},"NumberWrapper":{"__symbolic":"class","statics":{"isNumeric":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"binop","operator":"-","left":{"__symbolic":"reference","name":"value"},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"parseFloat"},"arguments":[{"__symbolic":"reference","name":"value"}]}}]}}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":51},"right":"object"}}}},"print":{"__symbolic":"function"},"warn":{"__symbolic":"function"},"setValueOnPath":{"__symbolic":"function"},"getSymbolIterator":{"__symbolic":"function"},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":183,"character":19}}}},{"__symbolic":"module","version":1,"metadata":{"scheduleMicroTask":{"__symbolic":"function"},"global":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":6,"context":{"name":"_global"}},"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":60,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"stringify":{"__symbolic":"function"},"NumberWrapper":{"__symbolic":"class","statics":{"isNumeric":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"binop","operator":"-","left":{"__symbolic":"reference","name":"value"},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"parseFloat"},"arguments":[{"__symbolic":"reference","name":"value"}]}}]}}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":51},"right":"object"}}}},"print":{"__symbolic":"function"},"warn":{"__symbolic":"function"},"setValueOnPath":{"__symbolic":"function"},"getSymbolIterator":{"__symbolic":"function"},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":183,"character":19}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"getComponentInfo":{"__symbolic":"function"},"parseFields":{"__symbolic":"function"}}},{"__symbolic":"module","metadata":{"getComponentInfo":{"__symbolic":"function"},"parseFields":{"__symbolic":"function"}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"getComponentInfo":{"__symbolic":"function"},"parseFields":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"getComponentInfo":{"__symbolic":"function"},"parseFields":{"__symbolic":"function"}}}]

@@ -1,17 +0,10 @@

/**
* @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
*/
import { CompilerOptions, Injector, NgModuleRef, Type } from '@angular/core';
import * as angular from './angular_js';
/**
* Use `UpgradeAdapter` to allow AngularJS v1 and Angular v2 to coexist in a single application.
* Use `UpgradeAdapter` to allow Angular 1 and Angular 2+ to coexist in a single application.
*
* The `UpgradeAdapter` allows:
* 1. creation of Angular v2 component from AngularJS v1 component directive
* 1. creation of Angular 2+ component from Angular 1 component directive
* (See [UpgradeAdapter#upgradeNg1Component()])
* 2. creation of AngularJS v1 directive from Angular v2 component.
* 2. creation of Angular 1 directive from Angular 2+ component.
* (See [UpgradeAdapter#downgradeNg2Component()])

@@ -31,16 +24,16 @@ * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks

* DOM elements and ignores others.
* 3. AngularJS v1 directives always execute inside AngularJS v1 framework codebase regardless of
* 3. Angular 1 directives always execute inside Angular 1 framework codebase regardless of
* where they are instantiated.
* 4. Angular v2 components always execute inside Angular v2 framework codebase regardless of
* 4. Angular 2+ components always execute inside Angular 2+ framework codebase regardless of
* where they are instantiated.
* 5. An AngularJS v1 component can be upgraded to an Angular v2 component. This creates an
* Angular v2 directive, which bootstraps the AngularJS v1 component directive in that location.
* 6. An Angular v2 component can be downgraded to an AngularJS v1 component directive. This creates
* an AngularJS v1 directive, which bootstraps the Angular v2 component in that location.
* 5. An Angular 1 component can be upgraded to an Angular 2+ component. This creates an
* Angular 2+ directive, which bootstraps the Angular 1 component directive in that location.
* 6. An Angular 2+ component can be downgraded to an Angular 1 component directive. This creates
* an Angular 1 directive, which bootstraps the Angular 2+ component in that location.
* 7. Whenever an adapter component is instantiated the host element is owned by the framework
* doing the instantiation. The other framework then instantiates and owns the view for that
* component. This implies that component bindings will always follow the semantics of the
* instantiation framework. The syntax is always that of Angular v2 syntax.
* 8. AngularJS v1 is always bootstrapped first and owns the bottom most view.
* 9. The new application is running in Angular v2 zone, and therefore it no longer needs calls to
* instantiation framework. The syntax is always that of Angular 2+ syntax.
* 8. Angular 1 is always bootstrapped first and owns the bottom most view.
* 9. The new application is running in Angular 2+ zone, and therefore it no longer needs calls to
* `$apply()`.

@@ -51,4 +44,4 @@ *

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);
* const module = angular.module('myExample', []);
* module.directive('ng2Comp', adapter.downgradeNg2Component(Ng2Component));

@@ -94,17 +87,24 @@ *

private compilerOptions;
private idPrefix;
private upgradedComponents;
private providers;
private ngZone;
private ng1Module;
private moduleRef;
private ng2BootstrapDeferred;
constructor(ng2AppModule: Type<any>, compilerOptions?: CompilerOptions);
/**
* Allows Angular v2 Component to be used from AngularJS v1.
* Allows Angular 2+ Component to be used from Angular 1.
*
* Use `downgradeNg2Component` to create an AngularJS v1 Directive Definition Factory from
* Angular v2 Component. The adapter will bootstrap Angular v2 component from within the
* AngularJS v1 template.
* Use `downgradeNg2Component` to create an Angular 1 Directive Definition Factory from
* Angular 2+ Component. The adapter will bootstrap Angular 2+ component from within the
* Angular 1 template.
*
* ## Mental Model
*
* 1. The component is instantiated by being listed in AngularJS v1 template. This means that the
* host element is controlled by AngularJS v1, but the component's view will be controlled by
* Angular v2.
* 2. Even thought the component is instantiated in AngularJS v1, it will be using Angular v2
* syntax. This has to be done, this way because we must follow Angular v2 components do not
* 1. The component is instantiated by being listed in Angular 1 template. This means that the
* host element is controlled by Angular 1, but the component's view will be controlled by
* Angular 2+.
* 2. Even thought the component is instantiated in Angular 1, it will be using Angular 2+
* syntax. This has to be done, this way because we must follow Angular 2+ components do not
* declare how the attributes should be interpreted.

@@ -124,4 +124,4 @@ *

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* const module = angular.module('myExample', []);
* module.directive('greet', adapter.downgradeNg2Component(Greeter));

@@ -154,6 +154,6 @@ *

/**
* Allows AngularJS v1 Component to be used from Angular v2.
* Allows Angular 1 Component to be used from Angular 2+.
*
* Use `upgradeNg1Component` to create an Angular v2 component from AngularJS v1 Component
* directive. The adapter will bootstrap AngularJS v1 component from within the Angular v2
* Use `upgradeNg1Component` to create an Angular 2+ component from Angular 1 Component
* directive. The adapter will bootstrap Angular 1 component from within the Angular 2+
* template.

@@ -163,5 +163,5 @@ *

*
* 1. The component is instantiated by being listed in Angular v2 template. This means that the
* host element is controlled by Angular v2, but the component's view will be controlled by
* AngularJS v1.
* 1. The component is instantiated by being listed in Angular 2+ template. This means that the
* host element is controlled by Angular 2+, but the component's view will be controlled by
* Angular 1.
*

@@ -179,3 +179,3 @@ * ## Supported Features

* supported:
* - `compile`: not supported because the host element is owned by Angular v2, which does
* - `compile`: not supported because the host element is owned by Angular 2+, which does
* not allow modifying DOM structure during compilation.

@@ -201,4 +201,4 @@ * - `controller`: supported. (NOTE: injection of `$attrs` and `$transclude` is not supported.)

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* const module = angular.module('myExample', []);
*

@@ -236,7 +236,49 @@ * module.directive('greet', function() {

/**
* Bootstrap a hybrid AngularJS v1 / Angular v2 application.
* Registers the adapter's Angular 1 upgrade module for unit testing in Angular 1.
* Use this instead of `angular.mock.module()` to load the upgrade module into
* the Angular 1 testing injector.
*
* This `bootstrap` method is a direct replacement (takes same arguments) for AngularJS v1
* ### Example
*
* ```
* const upgradeAdapter = new UpgradeAdapter(MyNg2Module);
*
* // configure the adapter with upgrade/downgrade components and services
* upgradeAdapter.downgradeNg2Component(MyComponent);
*
* let upgradeAdapterRef: UpgradeAdapterRef;
* let $compile, $rootScope;
*
* // We must register the adapter before any calls to `inject()`
* beforeEach(() => {
* upgradeAdapterRef = upgradeAdapter.registerForNg1Tests(['heroApp']);
* });
*
* beforeEach(inject((_$compile_, _$rootScope_) => {
* $compile = _$compile_;
* $rootScope = _$rootScope_;
* }));
*
* it("says hello", (done) => {
* upgradeAdapterRef.ready(() => {
* const element = $compile("<my-component></my-component>")($rootScope);
* $rootScope.$apply();
* expect(element.html()).toContain("Hello World");
* done();
* })
* });
*
* ```
*
* @param modules any Angular 1 modules that the upgrade module should depend upon
* @returns an {@link UpgradeAdapterRef}, which lets you register a `ready()` callback to
* run assertions once the Angular 2+ components are ready to test through Angular 1.
*/
registerForNg1Tests(modules?: string[]): UpgradeAdapterRef;
/**
* Bootstrap a hybrid Angular 1 / Angular 2+ application.
*
* This `bootstrap` method is a direct replacement (takes same arguments) for Angular 1
* [`bootstrap`](https://docs.angularjs.org/api/ng/function/angular.bootstrap) method. Unlike
* AngularJS v1, this bootstrap is asynchronous.
* Angular 1, this bootstrap is asynchronous.
*

@@ -246,4 +288,4 @@ * ### Example

* ```
* var adapter = new UpgradeAdapter();
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(MyNg2Module);
* const module = angular.module('myExample', []);
* module.directive('ng2', adapter.downgradeNg2Component(Ng2));

@@ -283,3 +325,3 @@ *

/**
* Allows AngularJS v1 service to be accessible from Angular v2.
* Allows Angular 1 service to be accessible from Angular 2+.
*

@@ -300,7 +342,7 @@ *

*
* var module = angular.module('myExample', []);
* const module = angular.module('myExample', []);
* module.service('server', Server);
* module.service('login', Login);
*
* var adapter = new UpgradeAdapter();
* const adapter = new UpgradeAdapter(MyNg2Module);
* adapter.upgradeNg1Provider('server');

@@ -310,3 +352,3 @@ * adapter.upgradeNg1Provider('login', {asToken: Login});

* adapter.bootstrap(document.body, ['myExample']).ready((ref) => {
* var example: Example = ref.ng2Injector.get(Example);
* const example: Example = ref.ng2Injector.get(Example);
* });

@@ -320,3 +362,3 @@ *

/**
* Allows Angular v2 service to be accessible from AngularJS v1.
* Allows Angular 2+ service to be accessible from Angular 1.
*

@@ -330,9 +372,9 @@ *

*
* var adapter = new UpgradeAdapter();
* const adapter = new UpgradeAdapter(MyNg2Module);
*
* var module = angular.module('myExample', []);
* const module = angular.module('myExample', []);
* module.factory('example', adapter.downgradeNg2Provider(Example));
*
* adapter.bootstrap(document.body, ['myExample']).ready((ref) => {
* var example: Example = ref.ng1Injector.get('example');
* const example: Example = ref.ng1Injector.get('example');
* });

@@ -343,5 +385,22 @@ *

downgradeNg2Provider(token: any): Function;
/**
* Declare the Angular 1 upgrade module for this adapter without bootstrapping the whole
* hybrid application.
*
* This method is automatically called by `bootstrap()` and `registerForNg1Tests()`.
*
* @param modules The Angular 1 modules that this upgrade module should depend upon.
* @returns The Angular 1 upgrade module that is declared by this method
*
* ### Example
*
* ```
* const upgradeAdapter = new UpgradeAdapter(MyNg2Module);
* upgradeAdapter.declareNg1Module(['heroApp']);
* ```
*/
private declareNg1Module(modules?);
}
/**
* Use `UpgradeAdapterRef` to control a hybrid AngularJS v1 / Angular v2 application.
* Use `UpgradeAdapterRef` to control a hybrid Angular 1 / Angular 2+ application.
*

@@ -356,6 +415,6 @@ * @stable

/**
* Register a callback function which is notified upon successful hybrid AngularJS v1 / Angular v2
* Register a callback function which is notified upon successful hybrid Angular 1 / Angular 2+
* application has been bootstrapped.
*
* The `ready` callback function is invoked inside the Angular v2 zone, therefore it does not
* The `ready` callback function is invoked inside the Angular 2+ zone, therefore it does not
* require a call to `$apply()`.

@@ -365,5 +424,9 @@ */

/**
* Dispose of running hybrid AngularJS v1 / Angular v2 application.
* Dispose of running hybrid Angular 1 / Angular 2+ application.
*/
dispose(): void;
}
/**
* Sort a set of DOM nodes that into groups based on the given content selectors
*/
export declare function sortProjectableNodes(ngContentSelectors: string[], childNodes: Node[]): Node[][];

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

*/
import { CssSelector, SelectorMatcher, createElementCssSelector } from '@angular/compiler';
import { Compiler, Injector, NgModule, NgZone, Testability } from '@angular/core';

@@ -16,11 +17,11 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { UpgradeNg1ComponentAdapterBuilder } from './upgrade_ng1_adapter';
import { controllerKey, onError } from './util';
import { Deferred, controllerKey, getAttributesAsArray, onError } from './util';
var /** @type {?} */ upgradeCount = 0;
/**
* Use `UpgradeAdapter` to allow AngularJS v1 and Angular v2 to coexist in a single application.
* Use `UpgradeAdapter` to allow Angular 1 and Angular 2+ to coexist in a single application.
* *
* The `UpgradeAdapter` allows:
* 1. creation of Angular v2 component from AngularJS v1 component directive
* 1. creation of Angular 2+ component from Angular 1 component directive
* (See [UpgradeAdapter#upgradeNg1Component()])
* 2. creation of AngularJS v1 directive from Angular v2 component.
* 2. creation of Angular 1 directive from Angular 2+ component.
* (See [UpgradeAdapter#downgradeNg2Component()])

@@ -40,16 +41,16 @@ * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks

* DOM elements and ignores others.
* 3. AngularJS v1 directives always execute inside AngularJS v1 framework codebase regardless of
* 3. Angular 1 directives always execute inside Angular 1 framework codebase regardless of
* where they are instantiated.
* 4. Angular v2 components always execute inside Angular v2 framework codebase regardless of
* 4. Angular 2+ components always execute inside Angular 2+ framework codebase regardless of
* where they are instantiated.
* 5. An AngularJS v1 component can be upgraded to an Angular v2 component. This creates an
* Angular v2 directive, which bootstraps the AngularJS v1 component directive in that location.
* 6. An Angular v2 component can be downgraded to an AngularJS v1 component directive. This creates
* an AngularJS v1 directive, which bootstraps the Angular v2 component in that location.
* 5. An Angular 1 component can be upgraded to an Angular 2+ component. This creates an
* Angular 2+ directive, which bootstraps the Angular 1 component directive in that location.
* 6. An Angular 2+ component can be downgraded to an Angular 1 component directive. This creates
* an Angular 1 directive, which bootstraps the Angular 2+ component in that location.
* 7. Whenever an adapter component is instantiated the host element is owned by the framework
* doing the instantiation. The other framework then instantiates and owns the view for that
* component. This implies that component bindings will always follow the semantics of the
* instantiation framework. The syntax is always that of Angular v2 syntax.
* 8. AngularJS v1 is always bootstrapped first and owns the bottom most view.
* 9. The new application is running in Angular v2 zone, and therefore it no longer needs calls to
* instantiation framework. The syntax is always that of Angular 2+ syntax.
* 8. Angular 1 is always bootstrapped first and owns the bottom most view.
* 9. The new application is running in Angular 2+ zone, and therefore it no longer needs calls to
* `$apply()`.

@@ -60,4 +61,4 @@ * *

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);
* const module = angular.module('myExample', []);
* module.directive('ng2Comp', adapter.downgradeNg2Component(Ng2Component));

@@ -109,2 +110,3 @@ * *

this.providers = [];
this.moduleRef = null;
if (!ng2AppModule) {

@@ -115,15 +117,15 @@ throw new Error('UpgradeAdapter cannot be instantiated without an NgModule of the Angular 2 app.');

/**
* Allows Angular v2 Component to be used from AngularJS v1.
* Allows Angular 2+ Component to be used from Angular 1.
* *
* Use `downgradeNg2Component` to create an AngularJS v1 Directive Definition Factory from
* Angular v2 Component. The adapter will bootstrap Angular v2 component from within the
* AngularJS v1 template.
* Use `downgradeNg2Component` to create an Angular 1 Directive Definition Factory from
* Angular 2+ Component. The adapter will bootstrap Angular 2+ component from within the
* Angular 1 template.
* *
* ## Mental Model
* *
* 1. The component is instantiated by being listed in AngularJS v1 template. This means that the
* host element is controlled by AngularJS v1, but the component's view will be controlled by
* Angular v2.
* 2. Even thought the component is instantiated in AngularJS v1, it will be using Angular v2
* syntax. This has to be done, this way because we must follow Angular v2 components do not
* 1. The component is instantiated by being listed in Angular 1 template. This means that the
* host element is controlled by Angular 1, but the component's view will be controlled by
* Angular 2+.
* 2. Even thought the component is instantiated in Angular 1, it will be using Angular 2+
* syntax. This has to be done, this way because we must follow Angular 2+ components do not
* declare how the attributes should be interpreted.

@@ -143,4 +145,4 @@ * *

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* const module = angular.module('myExample', []);
* module.directive('greet', adapter.downgradeNg2Component(Greeter));

@@ -177,6 +179,6 @@ * *

/**
* Allows AngularJS v1 Component to be used from Angular v2.
* Allows Angular 1 Component to be used from Angular 2+.
* *
* Use `upgradeNg1Component` to create an Angular v2 component from AngularJS v1 Component
* directive. The adapter will bootstrap AngularJS v1 component from within the Angular v2
* Use `upgradeNg1Component` to create an Angular 2+ component from Angular 1 Component
* directive. The adapter will bootstrap Angular 1 component from within the Angular 2+
* template.

@@ -186,5 +188,5 @@ * *

* *
* 1. The component is instantiated by being listed in Angular v2 template. This means that the
* host element is controlled by Angular v2, but the component's view will be controlled by
* AngularJS v1.
* 1. The component is instantiated by being listed in Angular 2+ template. This means that the
* host element is controlled by Angular 2+, but the component's view will be controlled by
* Angular 1.
* *

@@ -202,3 +204,3 @@ * ## Supported Features

* supported:
* - `compile`: not supported because the host element is owned by Angular v2, which does
* - `compile`: not supported because the host element is owned by Angular 2+, which does
* not allow modifying DOM structure during compilation.

@@ -224,4 +226,4 @@ * - `controller`: supported. (NOTE: injection of `$attrs` and `$transclude` is not supported.)

* ```
* var adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));
* const module = angular.module('myExample', []);
* *

@@ -267,7 +269,60 @@ * module.directive('greet', function() {

/**
* Bootstrap a hybrid AngularJS v1 / Angular v2 application.
* Registers the adapter's Angular 1 upgrade module for unit testing in Angular 1.
* Use this instead of `angular.mock.module()` to load the upgrade module into
* the Angular 1 testing injector.
* *
* This `bootstrap` method is a direct replacement (takes same arguments) for AngularJS v1
* ### Example
* *
* ```
* const upgradeAdapter = new UpgradeAdapter(MyNg2Module);
* *
* // configure the adapter with upgrade/downgrade components and services
* upgradeAdapter.downgradeNg2Component(MyComponent);
* *
* let upgradeAdapterRef: UpgradeAdapterRef;
* let $compile, $rootScope;
* *
* // We must register the adapter before any calls to `inject()`
* beforeEach(() => {
* upgradeAdapterRef = upgradeAdapter.registerForNg1Tests(['heroApp']);
* });
* *
* beforeEach(inject((_$compile_, _$rootScope_) => {
* $compile = _$compile_;
* $rootScope = _$rootScope_;
* }));
* *
* it("says hello", (done) => {
* upgradeAdapterRef.ready(() => {
* const element = $compile("<my-component></my-component>")($rootScope);
* $rootScope.$apply();
* expect(element.html()).toContain("Hello World");
* done();
* })
* });
* *
* ```
* *
* @param {?=} modules any Angular 1 modules that the upgrade module should depend upon
* @return {?} an {@link UpgradeAdapterRef}, which lets you register a `ready()` callback to
* run assertions once the Angular 2+ components are ready to test through Angular 1.
*/
UpgradeAdapter.prototype.registerForNg1Tests = function (modules) {
var _this = this;
var /** @type {?} */ windowNgMock = ((window))['angular'].mock;
if (!windowNgMock || !windowNgMock.module) {
throw new Error('Failed to find \'angular.mock.module\'.');
}
this.declareNg1Module(modules);
windowNgMock.module(this.ng1Module.name);
var /** @type {?} */ upgrade = new UpgradeAdapterRef();
this.ng2BootstrapDeferred.promise.then(function () { ((upgrade))._bootstrapDone(_this.moduleRef, upgrade.ng1Injector); }, onError);
return upgrade;
};
/**
* Bootstrap a hybrid Angular 1 / Angular 2+ application.
* *
* This `bootstrap` method is a direct replacement (takes same arguments) for Angular 1
* [`bootstrap`](https://docs.angularjs.org/api/ng/function/angular.bootstrap) method. Unlike
* AngularJS v1, this bootstrap is asynchronous.
* Angular 1, this bootstrap is asynchronous.
* *

@@ -277,4 +332,4 @@ * ### Example

* ```
* var adapter = new UpgradeAdapter();
* var module = angular.module('myExample', []);
* const adapter = new UpgradeAdapter(MyNg2Module);
* const module = angular.module('myExample', []);
* module.directive('ng2', adapter.downgradeNg2Component(Ng2));

@@ -316,116 +371,14 @@ * *

var _this = this;
var /** @type {?} */ ngZone = new NgZone({ enableLongStackTrace: Zone.hasOwnProperty('longStackTraceZoneSpec') });
this.declareNg1Module(modules);
var /** @type {?} */ upgrade = new UpgradeAdapterRef();
var /** @type {?} */ ng1Injector = null;
var /** @type {?} */ moduleRef = null;
var /** @type {?} */ delayApplyExps = [];
var /** @type {?} */ original$applyFn;
var /** @type {?} */ rootScopePrototype;
var /** @type {?} */ rootScope;
var /** @type {?} */ componentFactoryRefMap = {};
var /** @type {?} */ ng1Module = angular.module(this.idPrefix, modules);
var /** @type {?} */ ng1BootstrapPromise;
var /** @type {?} */ ng1compilePromise;
ng1Module.factory(NG2_INJECTOR, function () { return moduleRef.injector.get(Injector); })
.value(NG2_ZONE, ngZone)
.factory(NG2_COMPILER, function () { return moduleRef.injector.get(Compiler); })
.value(NG2_COMPONENT_FACTORY_REF_MAP, componentFactoryRefMap)
.config([
'$provide', '$injector',
function (provide /** TODO #???? */, ng1Injector) {
provide.decorator(NG1_ROOT_SCOPE, [
'$delegate',
function (rootScopeDelegate) {
// Capture the root apply so that we can delay first call to $apply until we
// bootstrap Angular 2 and then we replay and restore the $apply.
rootScopePrototype = rootScopeDelegate.constructor.prototype;
if (rootScopePrototype.hasOwnProperty('$apply')) {
original$applyFn = rootScopePrototype.$apply;
rootScopePrototype.$apply = function (exp) { return delayApplyExps.push(exp); };
}
else {
throw new Error('Failed to find \'$apply\' on \'$rootScope\'!');
}
return rootScope = rootScopeDelegate;
}
]);
if (ng1Injector.has(NG1_TESTABILITY)) {
provide.decorator(NG1_TESTABILITY, [
'$delegate',
function (testabilityDelegate) {
var /** @type {?} */ originalWhenStable = testabilityDelegate.whenStable;
// Cannot use arrow function below because we need the context
var /** @type {?} */ newWhenStable = function (callback) {
originalWhenStable.call(this, function () {
var /** @type {?} */ ng2Testability = moduleRef.injector.get(Testability);
if (ng2Testability.isStable()) {
callback.apply(this, arguments);
}
else {
ng2Testability.whenStable(newWhenStable.bind(this, callback));
}
});
};
testabilityDelegate.whenStable = newWhenStable;
return testabilityDelegate;
}
]);
}
}
]);
ng1compilePromise = new Promise(function (resolve, reject) {
ng1Module.run([
'$injector', '$rootScope',
function (injector, rootScope) {
ng1Injector = injector;
UpgradeNg1ComponentAdapterBuilder.resolve(_this.ng1ComponentsToBeUpgraded, injector)
.then(function () {
// At this point we have ng1 injector and we have lifted ng1 components into ng2, we
// now can bootstrap ng2.
var /** @type {?} */ DynamicNgUpgradeModule = NgModule({
providers: [
{ provide: NG1_INJECTOR, useFactory: function () { return ng1Injector; } },
{ provide: NG1_COMPILE, useFactory: function () { return ng1Injector.get(NG1_COMPILE); } },
_this.providers
],
imports: [_this.ng2AppModule]
}).Class({
constructor: function DynamicNgUpgradeModule() { },
ngDoBootstrap: function () { }
});
((platformBrowserDynamic()))
._bootstrapModuleWithZone(DynamicNgUpgradeModule, _this.compilerOptions, ngZone, function (componentFactories) {
componentFactories.forEach(function (componentFactory) {
var /** @type {?} */ type = componentFactory.componentType;
if (_this.upgradedComponents.indexOf(type) !== -1) {
componentFactoryRefMap[getComponentInfo(type).selector] =
componentFactory;
}
});
})
.then(function (ref) {
moduleRef = ref;
angular.element(element).data(controllerKey(NG2_INJECTOR), moduleRef.injector);
ngZone.onMicrotaskEmpty.subscribe({
next: function (_) { return ngZone.runOutsideAngular(function () { return rootScope.$evalAsync(); }); }
});
})
.then(resolve, reject);
})
.catch(reject);
}
]);
});
// Make sure resumeBootstrap() only exists if the current bootstrap is deferred
var /** @type {?} */ windowAngular = ((window) /** TODO #???? */)['angular'];
windowAngular.resumeBootstrap = undefined;
ngZone.run(function () { angular.bootstrap(element, [_this.idPrefix], config); });
ng1BootstrapPromise = new Promise(function (resolve) {
this.ngZone.run(function () { angular.bootstrap(element, [_this.ng1Module.name], config); });
var /** @type {?} */ ng1BootstrapPromise = new Promise(function (resolve) {
if (windowAngular.resumeBootstrap) {
var /** @type {?} */ originalResumeBootstrap_1 = windowAngular.resumeBootstrap;
windowAngular.resumeBootstrap = function () {
var _this = this;
var /** @type {?} */ args = arguments;
windowAngular.resumeBootstrap = originalResumeBootstrap_1;
ngZone.run(function () { windowAngular.resumeBootstrap.apply(_this, args); });
windowAngular.resumeBootstrap.apply(this, arguments);
resolve();

@@ -438,13 +391,6 @@ };

});
Promise.all([ng1BootstrapPromise, ng1compilePromise]).then(function () {
moduleRef.injector.get(NgZone).run(function () {
if (rootScopePrototype) {
rootScopePrototype.$apply = original$applyFn; // restore original $apply
while (delayApplyExps.length) {
rootScope.$apply(delayApplyExps.shift());
}
((upgrade))._bootstrapDone(moduleRef, ng1Injector);
rootScopePrototype = null;
}
});
Promise.all([this.ng2BootstrapDeferred.promise, ng1BootstrapPromise]).then(function (_a) {
var ng1Injector = _a[0];
angular.element(element).data(controllerKey(NG2_INJECTOR), _this.moduleRef.injector);
_this.moduleRef.injector.get(NgZone).run(function () { ((upgrade))._bootstrapDone(_this.moduleRef, ng1Injector); });
}, onError);

@@ -454,3 +400,3 @@ return upgrade;

/**
* Allows AngularJS v1 service to be accessible from Angular v2.
* Allows Angular 1 service to be accessible from Angular 2+.
* *

@@ -470,7 +416,7 @@ * *

* *
* var module = angular.module('myExample', []);
* const module = angular.module('myExample', []);
* module.service('server', Server);
* module.service('login', Login);
* *
* var adapter = new UpgradeAdapter();
* const adapter = new UpgradeAdapter(MyNg2Module);
* adapter.upgradeNg1Provider('server');

@@ -480,3 +426,3 @@ * adapter.upgradeNg1Provider('login', {asToken: Login});

* adapter.bootstrap(document.body, ['myExample']).ready((ref) => {
* var example: Example = ref.ng2Injector.get(Example);
* const example: Example = ref.ng2Injector.get(Example);
* });

@@ -498,3 +444,3 @@ * *

/**
* Allows Angular v2 service to be accessible from AngularJS v1.
* Allows Angular 2+ service to be accessible from Angular 1.
* *

@@ -508,9 +454,9 @@ * *

* *
* var adapter = new UpgradeAdapter();
* const adapter = new UpgradeAdapter(MyNg2Module);
* *
* var module = angular.module('myExample', []);
* const module = angular.module('myExample', []);
* module.factory('example', adapter.downgradeNg2Provider(Example));
* *
* adapter.bootstrap(document.body, ['myExample']).ready((ref) => {
* var example: Example = ref.ng1Injector.get('example');
* const example: Example = ref.ng1Injector.get('example');
* });

@@ -527,2 +473,129 @@ * *

};
/**
* Declare the Angular 1 upgrade module for this adapter without bootstrapping the whole
* hybrid application.
* *
* This method is automatically called by `bootstrap()` and `registerForNg1Tests()`.
* *
* @param {?=} modules The Angular 1 modules that this upgrade module should depend upon.
* @return {?} The Angular 1 upgrade module that is declared by this method
* *
* ### Example
* *
* ```
* const upgradeAdapter = new UpgradeAdapter(MyNg2Module);
* upgradeAdapter.declareNg1Module(['heroApp']);
* ```
*/
UpgradeAdapter.prototype.declareNg1Module = function (modules) {
var _this = this;
if (modules === void 0) { modules = []; }
var /** @type {?} */ delayApplyExps = [];
var /** @type {?} */ original$applyFn;
var /** @type {?} */ rootScopePrototype;
var /** @type {?} */ rootScope;
var /** @type {?} */ componentFactoryRefMap = {};
var /** @type {?} */ upgradeAdapter = this;
var /** @type {?} */ ng1Module = this.ng1Module = angular.module(this.idPrefix, modules);
var /** @type {?} */ platformRef = platformBrowserDynamic();
this.ngZone = new NgZone({ enableLongStackTrace: Zone.hasOwnProperty('longStackTraceZoneSpec') });
this.ng2BootstrapDeferred = new Deferred();
ng1Module.factory(NG2_INJECTOR, function () { return _this.moduleRef.injector.get(Injector); })
.constant(NG2_ZONE, this.ngZone)
.constant(NG2_COMPONENT_FACTORY_REF_MAP, componentFactoryRefMap)
.factory(NG2_COMPILER, function () { return _this.moduleRef.injector.get(Compiler); })
.config([
'$provide', '$injector',
function (provide, ng1Injector) {
provide.decorator(NG1_ROOT_SCOPE, [
'$delegate',
function (rootScopeDelegate) {
// Capture the root apply so that we can delay first call to $apply until we
// bootstrap Angular 2 and then we replay and restore the $apply.
rootScopePrototype = rootScopeDelegate.constructor.prototype;
if (rootScopePrototype.hasOwnProperty('$apply')) {
original$applyFn = rootScopePrototype.$apply;
rootScopePrototype.$apply = function (exp) { return delayApplyExps.push(exp); };
}
else {
throw new Error('Failed to find \'$apply\' on \'$rootScope\'!');
}
return rootScope = rootScopeDelegate;
}
]);
if (ng1Injector.has(NG1_TESTABILITY)) {
provide.decorator(NG1_TESTABILITY, [
'$delegate',
function (testabilityDelegate) {
var /** @type {?} */ originalWhenStable = testabilityDelegate.whenStable;
// Cannot use arrow function below because we need the context
var /** @type {?} */ newWhenStable = function (callback) {
originalWhenStable.call(this, function () {
var /** @type {?} */ ng2Testability = upgradeAdapter.moduleRef.injector.get(Testability);
if (ng2Testability.isStable()) {
callback.apply(this, arguments);
}
else {
ng2Testability.whenStable(newWhenStable.bind(this, callback));
}
});
};
testabilityDelegate.whenStable = newWhenStable;
return testabilityDelegate;
}
]);
}
}
]);
ng1Module.run([
'$injector', '$rootScope',
function (ng1Injector, rootScope) {
UpgradeNg1ComponentAdapterBuilder.resolve(_this.ng1ComponentsToBeUpgraded, ng1Injector)
.then(function () {
// At this point we have ng1 injector and we have lifted ng1 components into ng2, we
// now can bootstrap ng2.
var /** @type {?} */ DynamicNgUpgradeModule = NgModule({
providers: [
{ provide: NG1_INJECTOR, useFactory: function () { return ng1Injector; } },
{ provide: NG1_COMPILE, useFactory: function () { return ng1Injector.get(NG1_COMPILE); } },
_this.providers
],
imports: [_this.ng2AppModule]
}).Class({
constructor: function DynamicNgUpgradeModule() { },
ngDoBootstrap: function () { }
});
((platformRef))
._bootstrapModuleWithZone(DynamicNgUpgradeModule, _this.compilerOptions, _this.ngZone, function (componentFactories) {
componentFactories.forEach(function (componentFactory) {
var /** @type {?} */ type = componentFactory.componentType;
if (_this.upgradedComponents.indexOf(type) !== -1) {
componentFactoryRefMap[getComponentInfo(type).selector] =
componentFactory;
}
});
})
.then(function (ref) {
_this.moduleRef = ref;
var /** @type {?} */ subscription = _this.ngZone.onMicrotaskEmpty.subscribe({
next: function (_) { return _this.ngZone.runOutsideAngular(function () { return rootScope.$evalAsync(); }); }
});
rootScope.$on('$destroy', function () { subscription.unsubscribe(); });
_this.ngZone.run(function () {
if (rootScopePrototype) {
rootScopePrototype.$apply = original$applyFn; // restore original $apply
while (delayApplyExps.length) {
rootScope.$apply(delayApplyExps.shift());
}
rootScopePrototype = null;
}
});
})
.then(function () { return _this.ng2BootstrapDeferred.resolve(ng1Injector); }, onError);
})
.catch(function (e) { return _this.ng2BootstrapDeferred.reject(e); });
}
]);
return ng1Module;
};
return UpgradeAdapter;

@@ -547,2 +620,10 @@ }());

/** @type {?} */
UpgradeAdapter.prototype.ngZone;
/** @type {?} */
UpgradeAdapter.prototype.ng1Module;
/** @type {?} */
UpgradeAdapter.prototype.moduleRef;
/** @type {?} */
UpgradeAdapter.prototype.ng2BootstrapDeferred;
/** @type {?} */
UpgradeAdapter.prototype.ng2AppModule;

@@ -553,2 +634,52 @@ /** @type {?} */

/**
* Synchronous promise-like object to wrap parent injectors,
* to preserve the synchronous nature of Angular 1's $compile.
*/
var ParentInjectorPromise = (function () {
/**
* @param {?} element
*/
function ParentInjectorPromise(element) {
this.element = element;
this.callbacks = [];
// store the promise on the element
element.data(controllerKey(NG2_INJECTOR), this);
}
/**
* @param {?} callback
* @return {?}
*/
ParentInjectorPromise.prototype.then = function (callback) {
if (this.injector) {
callback(this.injector);
}
else {
this.callbacks.push(callback);
}
};
/**
* @param {?} injector
* @return {?}
*/
ParentInjectorPromise.prototype.resolve = function (injector) {
this.injector = injector;
// reset the element data to point to the real injector
this.element.data(controllerKey(NG2_INJECTOR), injector);
// clean out the element to prevent memory leaks
this.element = null;
// run all the queued callbacks
this.callbacks.forEach(function (callback) { return callback(injector); });
this.callbacks.length = 0;
};
return ParentInjectorPromise;
}());
function ParentInjectorPromise_tsickle_Closure_declarations() {
/** @type {?} */
ParentInjectorPromise.prototype.injector;
/** @type {?} */
ParentInjectorPromise.prototype.callbacks;
/** @type {?} */
ParentInjectorPromise.prototype.element;
}
/**
* @param {?} info

@@ -559,5 +690,7 @@ * @param {?} idPrefix

function ng1ComponentDirective(info, idPrefix) {
((directiveFactory)).$inject = [NG1_INJECTOR, NG2_COMPONENT_FACTORY_REF_MAP, NG1_PARSE];
((directiveFactory)).$inject =
[NG1_INJECTOR, NG1_COMPILE, NG2_COMPONENT_FACTORY_REF_MAP, NG1_PARSE];
/**
* @param {?} ng1Injector
* @param {?} ng1Compile
* @param {?} componentFactoryRefMap

@@ -567,24 +700,67 @@ * @param {?} parse

*/
function directiveFactory(ng1Injector, componentFactoryRefMap, parse) {
function directiveFactory(ng1Injector, ng1Compile, componentFactoryRefMap, parse) {
var /** @type {?} */ idCount = 0;
var /** @type {?} */ dashSelector = info.selector.replace(/[A-Z]/g, function (char) { return '-' + char.toLowerCase(); });
return {
restrict: 'E',
terminal: true,
require: REQUIRE_INJECTOR,
link: {
post: function (scope, element, attrs, parentInjector, transclude) {
var /** @type {?} */ componentFactory = componentFactoryRefMap[info.selector];
if (!componentFactory)
throw new Error('Expecting ComponentFactory for: ' + info.selector);
if (parentInjector === null) {
parentInjector = ng1Injector.get(NG2_INJECTOR);
compile: function (templateElement, templateAttributes, transclude) {
// We might have compile the contents lazily, because this might have been triggered by the
// UpgradeNg1ComponentAdapterBuilder, when the ng2 templates have not been compiled yet
return {
post: function (scope, element, attrs, parentInjector, transclude) {
var /** @type {?} */ id = idPrefix + (idCount++);
((element[0])).id = id;
var /** @type {?} */ injectorPromise = new ParentInjectorPromise(element);
var /** @type {?} */ ng2Compiler = (ng1Injector.get(NG2_COMPILER));
var /** @type {?} */ ngContentSelectors = ng2Compiler.getNgContentSelectors(info.type);
var /** @type {?} */ linkFns = compileProjectedNodes(templateElement, ngContentSelectors);
var /** @type {?} */ componentFactory = componentFactoryRefMap[info.selector];
if (!componentFactory)
throw new Error('Expecting ComponentFactory for: ' + info.selector);
element.empty();
var /** @type {?} */ projectableNodes = linkFns.map(function (link) {
var /** @type {?} */ projectedClone;
link(scope, function (clone) {
projectedClone = clone;
element.append(clone);
});
return projectedClone;
});
parentInjector = parentInjector || ng1Injector.get(NG2_INJECTOR);
if (parentInjector instanceof ParentInjectorPromise) {
parentInjector.then(function (resolvedInjector) { return downgrade(resolvedInjector); });
}
else {
downgrade(parentInjector);
}
/**
* @param {?} injector
* @return {?}
*/
function downgrade(injector) {
var /** @type {?} */ facade = new DowngradeNg2ComponentAdapter(info, element, attrs, scope, injector, parse, componentFactory);
facade.setupInputs();
facade.bootstrapNg2(projectableNodes);
facade.setupOutputs();
facade.registerCleanup();
injectorPromise.resolve(facade.componentRef.injector);
}
}
var /** @type {?} */ facade = new DowngradeNg2ComponentAdapter(idPrefix + (idCount++), info, element, attrs, scope, /** @type {?} */ (parentInjector), parse, componentFactory);
facade.setupInputs();
facade.bootstrapNg2();
facade.projectContent();
facade.setupOutputs();
facade.registerCleanup();
}
};
}
};
/**
* @param {?} templateElement
* @param {?} ngContentSelectors
* @return {?}
*/
function compileProjectedNodes(templateElement, ngContentSelectors) {
if (!ngContentSelectors)
throw new Error('Expecting ngContentSelectors for: ' + info.selector);
// We have to sort the projected content before we compile it, hence the terminal: true
var /** @type {?} */ projectableTemplateNodes = sortProjectableNodes(ngContentSelectors, templateElement.contents());
return projectableTemplateNodes.map(function (nodes) { return ng1Compile(nodes); });
}
}

@@ -594,3 +770,3 @@ return directiveFactory;

/**
* Use `UpgradeAdapterRef` to control a hybrid AngularJS v1 / Angular v2 application.
* Use `UpgradeAdapterRef` to control a hybrid Angular 1 / Angular 2+ application.
* *

@@ -619,6 +795,6 @@ */

/**
* Register a callback function which is notified upon successful hybrid AngularJS v1 / Angular v2
* Register a callback function which is notified upon successful hybrid Angular 1 / Angular 2+
* application has been bootstrapped.
* *
* The `ready` callback function is invoked inside the Angular v2 zone, therefore it does not
* The `ready` callback function is invoked inside the Angular 2+ zone, therefore it does not
* require a call to `$apply()`.

@@ -630,3 +806,3 @@ * @param {?} fn

/**
* Dispose of running hybrid AngularJS v1 / Angular v2 application.
* Dispose of running hybrid Angular 1 / Angular 2+ application.
* @return {?}

@@ -652,2 +828,39 @@ */

}
/**
* Sort a set of DOM nodes that into groups based on the given content selectors
* @param {?} ngContentSelectors
* @param {?} childNodes
* @return {?}
*/
export function sortProjectableNodes(ngContentSelectors, childNodes) {
var /** @type {?} */ projectableNodes = [];
var /** @type {?} */ matcher = new SelectorMatcher();
var /** @type {?} */ wildcardNgContentIndex;
for (var /** @type {?} */ i = 0, /** @type {?} */ ii = ngContentSelectors.length; i < ii; i++) {
projectableNodes[i] = [];
if (ngContentSelectors[i] === '*') {
wildcardNgContentIndex = i;
}
else {
matcher.addSelectables(CssSelector.parse(ngContentSelectors[i]), i);
}
}
var _loop_1 = function(node) {
var /** @type {?} */ ngContentIndices = [];
var /** @type {?} */ selector = createElementCssSelector(node.nodeName.toLowerCase(), getAttributesAsArray(node));
matcher.match(selector, function (selector, ngContentIndex) { ngContentIndices.push(ngContentIndex); });
ngContentIndices.sort();
if (wildcardNgContentIndex !== undefined) {
ngContentIndices.push(wildcardNgContentIndex);
}
if (ngContentIndices.length > 0) {
projectableNodes[ngContentIndices[0]].push(node);
}
};
for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {
var node = childNodes_1[_i];
_loop_1(node);
}
return projectableNodes;
}
//# sourceMappingURL=upgrade_adapter.js.map

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

[{"__symbolic":"module","version":2,"metadata":{"UpgradeAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}],"downgradeNg2Component":[{"__symbolic":"method"}],"upgradeNg1Component":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"upgradeNg1Provider":[{"__symbolic":"method"}],"downgradeNg2Provider":[{"__symbolic":"method"}]}},"UpgradeAdapterRef":{"__symbolic":"class","members":{"_bootstrapDone":[{"__symbolic":"method"}],"ready":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"UpgradeAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}],"downgradeNg2Component":[{"__symbolic":"method"}],"upgradeNg1Component":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"upgradeNg1Provider":[{"__symbolic":"method"}],"downgradeNg2Provider":[{"__symbolic":"method"}]}},"UpgradeAdapterRef":{"__symbolic":"class","members":{"_bootstrapDone":[{"__symbolic":"method"}],"ready":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"UpgradeAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}],"downgradeNg2Component":[{"__symbolic":"method"}],"upgradeNg1Component":[{"__symbolic":"method"}],"registerForNg1Tests":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"upgradeNg1Provider":[{"__symbolic":"method"}],"downgradeNg2Provider":[{"__symbolic":"method"}],"declareNg1Module":[{"__symbolic":"method"}]}},"UpgradeAdapterRef":{"__symbolic":"class","members":{"_bootstrapDone":[{"__symbolic":"method"}],"ready":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}},"sortProjectableNodes":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"UpgradeAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Type","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}],"downgradeNg2Component":[{"__symbolic":"method"}],"upgradeNg1Component":[{"__symbolic":"method"}],"registerForNg1Tests":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"upgradeNg1Provider":[{"__symbolic":"method"}],"downgradeNg2Provider":[{"__symbolic":"method"}],"declareNg1Module":[{"__symbolic":"method"}]}},"UpgradeAdapterRef":{"__symbolic":"class","members":{"_bootstrapDone":[{"__symbolic":"method"}],"ready":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}},"sortProjectableNodes":{"__symbolic":"function"}}}]

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

[{"__symbolic":"module","version":2,"metadata":{"UpgradeNg1ComponentAdapterBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"extractDirective":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"extractBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","metadata":{"UpgradeNg1ComponentAdapterBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"extractDirective":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"extractBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}]}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"UpgradeNg1ComponentAdapterBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"extractDirective":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"extractBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"UpgradeNg1ComponentAdapterBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"extractDirective":[{"__symbolic":"method"}],"notSupported":[{"__symbolic":"method"}],"extractBindings":[{"__symbolic":"method"}],"compileTemplate":[{"__symbolic":"method"}]}}}}]

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

[{"__symbolic":"module","version":2,"metadata":{},"exports":[{"from":"./upgrade_adapter","export":["UpgradeAdapter","UpgradeAdapterRef"]},{"from":"./version","export":["VERSION"]}]},{"__symbolic":"module","exports":[{"from":"./upgrade_adapter","export":["UpgradeAdapter","UpgradeAdapterRef"]},{"from":"./version","export":["VERSION"]}],"metadata":{},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./upgrade_adapter","export":["UpgradeAdapter","UpgradeAdapterRef"]},{"from":"./version","export":["VERSION"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./upgrade_adapter","export":["UpgradeAdapter","UpgradeAdapterRef"]},{"from":"./version","export":["VERSION"]}]}]

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

*/
export declare function stringify(obj: any): string;
export declare function onError(e: any): void;
export declare function controllerKey(name: string): string;
export declare function getAttributesAsArray(node: Node): string[][];
export declare class Deferred<R> {
promise: Promise<R>;
resolve: (value?: R | PromiseLike<R>) => void;
reject: (error?: any) => void;
constructor();
}

@@ -7,11 +7,2 @@ /**

* found in the LICENSE file at https://angular.io/license
* @param {?} obj
* @return {?}
*/
export function stringify(obj) {
if (typeof obj == 'function')
return obj.name || obj.toString();
return '' + obj;
}
/**
* @param {?} e

@@ -38,2 +29,36 @@ * @return {?}

}
/**
* @param {?} node
* @return {?}
*/
export function getAttributesAsArray(node) {
var /** @type {?} */ attributes = node.attributes;
var /** @type {?} */ asArray;
if (attributes) {
var /** @type {?} */ attrLen = attributes.length;
asArray = new Array(attrLen);
for (var /** @type {?} */ i = 0; i < attrLen; i++) {
asArray[i] = [attributes[i].nodeName, attributes[i].nodeValue];
}
}
return asArray || [];
}
export var Deferred = (function () {
function Deferred() {
var _this = this;
this.promise = new Promise(function (res, rej) {
_this.resolve = res;
_this.reject = rej;
});
}
return Deferred;
}());
function Deferred_tsickle_Closure_declarations() {
/** @type {?} */
Deferred.prototype.promise;
/** @type {?} */
Deferred.prototype.resolve;
/** @type {?} */
Deferred.prototype.reject;
}
//# sourceMappingURL=util.js.map

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

[{"__symbolic":"module","version":2,"metadata":{"stringify":{"__symbolic":"function"},"onError":{"__symbolic":"function"},"controllerKey":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"$","right":{"__symbolic":"reference","name":"name"}},"right":"Controller"}}}},{"__symbolic":"module","metadata":{"stringify":{"__symbolic":"function"},"onError":{"__symbolic":"function"},"controllerKey":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"$","right":{"__symbolic":"reference","name":"name"}},"right":"Controller"}}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"onError":{"__symbolic":"function"},"controllerKey":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"$","right":{"__symbolic":"reference","name":"name"}},"right":"Controller"}},"getAttributesAsArray":{"__symbolic":"function"},"Deferred":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}}}},{"__symbolic":"module","version":1,"metadata":{"onError":{"__symbolic":"function"},"controllerKey":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"$","right":{"__symbolic":"reference","name":"name"}},"right":"Controller"}},"getAttributesAsArray":{"__symbolic":"function"},"Deferred":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}}}}]

@@ -12,3 +12,3 @@ /**

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

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

[{"__symbolic":"module","version":2,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version"},"arguments":["2.3.0"]}}},{"__symbolic":"module","metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version"},"arguments":["2.3.0"]}},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version"},"arguments":["4.0.0-beta.0"]}}},{"__symbolic":"module","version":1,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version"},"arguments":["4.0.0-beta.0"]}}}]

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

[{"__symbolic":"module","version":2,"metadata":{},"exports":[{"from":"./src/aot/downgrade_component","export":["downgradeComponent"]},{"from":"./src/aot/downgrade_injectable","export":["downgradeInjectable"]},{"from":"./src/aot/upgrade_component","export":["UpgradeComponent"]},{"from":"./src/aot/upgrade_module","export":["UpgradeModule"]}]},{"__symbolic":"module","exports":[{"from":"./src/aot/downgrade_component","export":["downgradeComponent"]},{"from":"./src/aot/downgrade_injectable","export":["downgradeInjectable"]},{"from":"./src/aot/upgrade_component","export":["UpgradeComponent"]},{"from":"./src/aot/upgrade_module","export":["UpgradeModule"]}],"metadata":{},"version":1}]
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./src/aot/downgrade_component","export":["downgradeComponent"]},{"from":"./src/aot/downgrade_injectable","export":["downgradeInjectable"]},{"from":"./src/aot/upgrade_component","export":["UpgradeComponent"]},{"from":"./src/aot/upgrade_module","export":["UpgradeModule"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/aot/downgrade_component","export":["downgradeComponent"]},{"from":"./src/aot/downgrade_injectable","export":["downgradeInjectable"]},{"from":"./src/aot/upgrade_component","export":["UpgradeComponent"]},{"from":"./src/aot/upgrade_module","export":["UpgradeModule"]}]}]

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

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc