2014-10-30 14:41:19 -07:00
|
|
|
import {ProtoElementInjector} from './element_injector';
|
|
|
|
import {FIELD} from 'facade/lang';
|
2014-11-19 14:54:07 -08:00
|
|
|
import {MapWrapper} from 'facade/collection';
|
2014-11-13 15:15:55 -08:00
|
|
|
import {AnnotatedType} from './annotated_type';
|
2014-11-21 21:19:23 -08:00
|
|
|
import {List, Map} from 'facade/collection';
|
|
|
|
import {ProtoView} from './view';
|
2014-10-30 14:41:19 -07:00
|
|
|
|
|
|
|
export class ElementBinder {
|
2014-11-21 21:19:23 -08:00
|
|
|
protoElementInjector:ProtoElementInjector;
|
|
|
|
componentDirective:AnnotatedType;
|
|
|
|
templateDirective:AnnotatedType;
|
|
|
|
textNodeIndices:List<int>;
|
|
|
|
hasElementPropertyBindings:boolean;
|
|
|
|
nestedProtoView: ProtoView;
|
|
|
|
events:Map;
|
2014-11-19 14:54:07 -08:00
|
|
|
constructor(
|
|
|
|
protoElementInjector: ProtoElementInjector, componentDirective:AnnotatedType, templateDirective:AnnotatedType) {
|
2014-11-11 17:33:47 -08:00
|
|
|
this.protoElementInjector = protoElementInjector;
|
2014-11-13 15:15:55 -08:00
|
|
|
this.componentDirective = componentDirective;
|
|
|
|
this.templateDirective = templateDirective;
|
2014-11-19 14:54:07 -08:00
|
|
|
// updated later when events are bound
|
|
|
|
this.events = null;
|
2014-11-11 17:33:47 -08:00
|
|
|
// updated later when text nodes are bound
|
2014-11-19 14:54:07 -08:00
|
|
|
this.textNodeIndices = null;
|
2014-11-11 17:33:47 -08:00
|
|
|
// updated later when element properties are bound
|
|
|
|
this.hasElementPropertyBindings = false;
|
|
|
|
// updated later, so we are able to resolve cycles
|
|
|
|
this.nestedProtoView = null;
|
2014-10-30 14:41:19 -07:00
|
|
|
}
|
|
|
|
}
|