66 * found in the LICENSE file at https://angular.io/license
77 */
88
9- import { ChangeDetectionStrategy , ViewEncapsulation , ɵArgumentType as ArgumentType , ɵBindingType as BindingType , ɵDepFlags as DepFlags , ɵLifecycleHooks as LifecycleHooks , ɵNodeFlags as NodeFlags , ɵProviderType as ProviderType , ɵQueryBindingType as QueryBindingType , ɵQueryValueType as QueryValueType , ɵViewFlags as ViewFlags , ɵelementEventFullName as elementEventFullName } from '@angular/core' ;
9+ import { ChangeDetectionStrategy , ViewEncapsulation , ɵArgumentType as ArgumentType , ɵBindingType as BindingType , ɵDepFlags as DepFlags , ɵLifecycleHooks as LifecycleHooks , ɵNodeFlags as NodeFlags , ɵQueryBindingType as QueryBindingType , ɵQueryValueType as QueryValueType , ɵViewFlags as ViewFlags , ɵelementEventFullName as elementEventFullName } from '@angular/core' ;
1010
1111import { AnimationEntryCompileResult } from '../animation/animation_compiler' ;
1212import { CompileDiDependencyMetadata , CompileDirectiveMetadata , CompileDirectiveSummary , CompilePipeSummary , CompileProviderMetadata , CompileTokenMetadata , CompileTypeMetadata , identifierModuleUrl , identifierName , rendererTypeName , tokenReference , viewClassName } from '../compile_metadata' ;
@@ -136,11 +136,11 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
136136 // Note: queries start with id 1 so we can use the number in a Bloom filter!
137137 const queryId = queryIndex + 1 ;
138138 const bindingType = query . first ? QueryBindingType . First : QueryBindingType . All ;
139- let flags = NodeFlags . HasViewQuery ;
139+ let flags = NodeFlags . TypeViewQuery ;
140140 if ( queryIds . staticQueryIds . has ( queryId ) ) {
141- flags |= NodeFlags . HasStaticQuery ;
141+ flags |= NodeFlags . StaticQuery ;
142142 } else {
143- flags |= NodeFlags . HasDynamicQuery ;
143+ flags |= NodeFlags . DynamicQuery ;
144144 }
145145 this . nodeDefs . push ( ( ) => o . importExpr ( createIdentifier ( Identifiers . queryDef ) ) . callFn ( [
146146 o . literal ( flags ) , o . literal ( queryId ) ,
@@ -359,7 +359,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
359359 } {
360360 let flags = NodeFlags . None ;
361361 if ( ast . hasViewContainer ) {
362- flags |= NodeFlags . HasEmbeddedViews ;
362+ flags |= NodeFlags . EmbeddedViews ;
363363 }
364364 const usedEvents = new Map < string , [ string , string ] > ( ) ;
365365 ast . outputs . forEach ( ( event ) => {
@@ -450,14 +450,14 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
450450 this . nodeDefs . push ( null ) ;
451451
452452 dirAst . directive . queries . forEach ( ( query , queryIndex ) => {
453- let flags = NodeFlags . HasContentQuery ;
453+ let flags = NodeFlags . TypeContentQuery ;
454454 const queryId = dirAst . contentQueryStartId + queryIndex ;
455455 // Note: We only make queries static that query for a single item.
456456 // This is because of backwards compatibility with the old view compiler...
457457 if ( queryIds . staticQueryIds . has ( queryId ) && query . first ) {
458- flags |= NodeFlags . HasStaticQuery ;
458+ flags |= NodeFlags . StaticQuery ;
459459 } else {
460- flags |= NodeFlags . HasDynamicQuery ;
460+ flags |= NodeFlags . DynamicQuery ;
461461 }
462462 const bindingType = query . first ? QueryBindingType . First : QueryBindingType . All ;
463463 this . nodeDefs . push ( ( ) => o . importExpr ( createIdentifier ( Identifiers . queryDef ) ) . callFn ( [
@@ -472,7 +472,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
472472 // I.e. we only allow queries as children of directives nodes.
473473 const childCount = this . nodeDefs . length - nodeIndex - 1 ;
474474
475- let { flags, queryMatchExprs, providerExpr, providerType , depsExpr} =
475+ let { flags, queryMatchExprs, providerExpr, depsExpr} =
476476 this . _visitProviderOrDirective ( providerAst , queryMatches ) ;
477477
478478 refs . forEach ( ( ref ) => {
@@ -484,7 +484,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
484484 } ) ;
485485
486486 if ( dirAst . directive . isComponent ) {
487- flags |= NodeFlags . IsComponent ;
487+ flags |= NodeFlags . Component ;
488488 }
489489
490490 const inputDefs = dirAst . inputs . map ( ( inputAst , inputIndex ) => {
@@ -543,16 +543,15 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
543543 // reserve the space in the nodeDefs array so we can add children
544544 this . nodeDefs . push ( null ) ;
545545
546- const { flags, queryMatchExprs, providerExpr, providerType , depsExpr} =
546+ const { flags, queryMatchExprs, providerExpr, depsExpr} =
547547 this . _visitProviderOrDirective ( providerAst , queryMatches ) ;
548548
549549 // providerDef(
550- // flags: NodeFlags, matchedQueries: [string, QueryValueType][], type: ProviderType, token:
551- // any,
550+ // flags: NodeFlags, matchedQueries: [string, QueryValueType][], token:any,
552551 // value: any, deps: ([DepFlags, any] | any)[]): NodeDef;
553552 const nodeDef = ( ) => o . importExpr ( createIdentifier ( Identifiers . providerDef ) ) . callFn ( [
554553 o . literal ( flags ) , queryMatchExprs . length ? o . literalArr ( queryMatchExprs ) : o . NULL_EXPR ,
555- o . literal ( providerType ) , tokenExpr ( providerAst . token ) , providerExpr , depsExpr
554+ tokenExpr ( providerAst . token ) , providerExpr , depsExpr
556555 ] ) ;
557556 this . nodeDefs [ nodeIndex ] = nodeDef ;
558557 }
@@ -561,7 +560,6 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
561560 flags : NodeFlags ,
562561 queryMatchExprs : o . Expression [ ] ,
563562 providerExpr : o . Expression ,
564- providerType : ProviderType ,
565563 depsExpr : o . Expression
566564 } {
567565 let flags = NodeFlags . None ;
@@ -587,8 +585,8 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
587585 o . literalArr ( [ o . literal ( match . queryId ) , o . literal ( QueryValueType . Provider ) ] ) ) ;
588586 }
589587 } ) ;
590- const { providerExpr, providerType , depsExpr } = providerDef ( providerAst ) ;
591- return { flags, queryMatchExprs, providerExpr, providerType , depsExpr} ;
588+ const { providerExpr, depsExpr , flags : providerType } = providerDef ( providerAst ) ;
589+ return { flags : flags | providerType , queryMatchExprs, providerExpr, depsExpr} ;
592590 }
593591
594592 getLocal ( name : string ) : o . Expression {
@@ -768,13 +766,14 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
768766}
769767
770768function providerDef ( providerAst : ProviderAst ) :
771- { providerExpr : o . Expression , providerType : ProviderType , depsExpr : o . Expression } {
772- return providerAst . multiProvider ? multiProviderDef ( providerAst . providers ) :
773- singleProviderDef ( providerAst . providers [ 0 ] ) ;
769+ { providerExpr : o . Expression , flags : NodeFlags , depsExpr : o . Expression } {
770+ return providerAst . multiProvider ?
771+ multiProviderDef ( providerAst . providers ) :
772+ singleProviderDef ( providerAst . providerType , providerAst . providers [ 0 ] ) ;
774773}
775774
776775function multiProviderDef ( providers : CompileProviderMetadata [ ] ) :
777- { providerExpr : o . Expression , providerType : ProviderType , depsExpr : o . Expression } {
776+ { providerExpr : o . Expression , flags : NodeFlags , depsExpr : o . Expression } {
778777 const allDepDefs : o . Expression [ ] = [ ] ;
779778 const allParams : o . FnParam [ ] = [ ] ;
780779 const exprs = providers . map ( ( provider , providerIndex ) => {
@@ -795,7 +794,7 @@ function multiProviderDef(providers: CompileProviderMetadata[]):
795794 } ) ;
796795 const providerExpr =
797796 o . fn ( allParams , [ new o . ReturnStatement ( o . literalArr ( exprs ) ) ] , o . INFERRED_TYPE ) ;
798- return { providerExpr, providerType : ProviderType . Factory , depsExpr : o . literalArr ( allDepDefs ) } ;
797+ return { providerExpr, flags : NodeFlags . TypeFactoryProvider , depsExpr : o . literalArr ( allDepDefs ) } ;
799798
800799 function convertDeps ( providerIndex : number , deps : CompileDiDependencyMetadata [ ] ) {
801800 return deps . map ( ( dep , depIndex ) => {
@@ -807,30 +806,36 @@ function multiProviderDef(providers: CompileProviderMetadata[]):
807806 }
808807}
809808
810- function singleProviderDef ( providerMeta : CompileProviderMetadata ) :
811- { providerExpr : o . Expression , providerType : ProviderType , depsExpr : o . Expression } {
809+ function singleProviderDef ( providerType : ProviderAstType , providerMeta : CompileProviderMetadata ) :
810+ { providerExpr : o . Expression , flags : NodeFlags , depsExpr : o . Expression } {
812811 let providerExpr : o . Expression ;
813- let providerType : ProviderType ;
812+ let flags : NodeFlags ;
814813 let deps : CompileDiDependencyMetadata [ ] ;
815- if ( providerMeta . useClass ) {
814+ if ( providerType === ProviderAstType . Directive || providerType === ProviderAstType . Component ) {
816815 providerExpr = o . importExpr ( providerMeta . useClass ) ;
817- providerType = ProviderType . Class ;
816+ flags = NodeFlags . TypeDirective ;
818817 deps = providerMeta . deps || providerMeta . useClass . diDeps ;
819- } else if ( providerMeta . useFactory ) {
820- providerExpr = o . importExpr ( providerMeta . useFactory ) ;
821- providerType = ProviderType . Factory ;
822- deps = providerMeta . deps || providerMeta . useFactory . diDeps ;
823- } else if ( providerMeta . useExisting ) {
824- providerExpr = o . NULL_EXPR ;
825- providerType = ProviderType . UseExisting ;
826- deps = [ { token : providerMeta . useExisting } ] ;
827818 } else {
828- providerExpr = convertValueToOutputAst ( providerMeta . useValue ) ;
829- providerType = ProviderType . Value ;
830- deps = [ ] ;
819+ if ( providerMeta . useClass ) {
820+ providerExpr = o . importExpr ( providerMeta . useClass ) ;
821+ flags = NodeFlags . TypeClassProvider ;
822+ deps = providerMeta . deps || providerMeta . useClass . diDeps ;
823+ } else if ( providerMeta . useFactory ) {
824+ providerExpr = o . importExpr ( providerMeta . useFactory ) ;
825+ flags = NodeFlags . TypeFactoryProvider ;
826+ deps = providerMeta . deps || providerMeta . useFactory . diDeps ;
827+ } else if ( providerMeta . useExisting ) {
828+ providerExpr = o . NULL_EXPR ;
829+ flags = NodeFlags . TypeUseExistingProvider ;
830+ deps = [ { token : providerMeta . useExisting } ] ;
831+ } else {
832+ providerExpr = convertValueToOutputAst ( providerMeta . useValue ) ;
833+ flags = NodeFlags . TypeValueProvider ;
834+ deps = [ ] ;
835+ }
831836 }
832837 const depsExpr = o . literalArr ( deps . map ( dep => depDef ( dep ) ) ) ;
833- return { providerExpr, providerType , depsExpr} ;
838+ return { providerExpr, flags , depsExpr} ;
834839}
835840
836841function tokenExpr ( tokenMeta : CompileTokenMetadata ) : o . Expression {
0 commit comments