{"version":3,"sources":["proto_view_builder.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/proto_view_builder.es6","sourcesContent":["import {isPresent, isBlank, BaseException} from 'angular2/src/facade/lang';\nimport {ListWrapper, MapWrapper, Set, SetWrapper, List} from 'angular2/src/facade/collection';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport {\n  ASTWithSource, AST, AstTransformer, AccessMember, LiteralArray, ImplicitReceiver\n} from 'angular2/change_detection';\nimport {SetterFn} from 'angular2/src/reflection/types';\n\nimport {RenderProtoView} from './proto_view';\nimport {ElementBinder, Event} from './element_binder';\nimport {setterFactory} from './property_setter_factory';\n\nimport * as api from '../../api';\nimport * as directDomRenderer from '../direct_dom_renderer';\n\nimport {NG_BINDING_CLASS, EVENT_TARGET_SEPARATOR} from '../util';\n\nexport class ProtoViewBuilder {\n  rootElement;\n  variableBindings: Map<string, string>;\n  elements:List<ElementBinderBuilder>;\n  imperativeRendererId:string;\n\n  constructor(rootElement) {\n    this.rootElement = rootElement;\n    this.elements = [];\n    this.variableBindings = MapWrapper.create();\n    this.imperativeRendererId = null;\n  }\n\n  setImperativeRendererId(id:string):ProtoViewBuilder {\n    this.imperativeRendererId = id;\n    return this;\n  }\n\n  bindElement(element, description = null):ElementBinderBuilder {\n    var builder = new ElementBinderBuilder(this.elements.length, element, description);\n    ListWrapper.push(this.elements, builder);\n    DOM.addClass(element, NG_BINDING_CLASS);\n\n    return builder;\n  }\n\n  bindVariable(name, value) {\n    // Store the variable map from value to variable, reflecting how it will be used later by\n    // RenderView. When a local is set to the view, a lookup for the variable name will take place keyed\n    // by the \"value\", or exported identifier. For example, ng-repeat sets a view local of \"index\".\n    // When this occurs, a lookup keyed by \"index\" must occur to find if there is a var referencing\n    // it.\n    MapWrapper.set(this.variableBindings, value, name);\n  }\n\n  build():api.ProtoViewDto {\n    var renderElementBinders = [];\n\n    var apiElementBinders = [];\n    ListWrapper.forEach(this.elements, (ebb) => {\n      var propertySetters = MapWrapper.create();\n      var apiDirectiveBinders = ListWrapper.map(ebb.directives, (db) => {\n        ebb.eventBuilder.merge(db.eventBuilder);\n        return new api.DirectiveBinder({\n          directiveIndex: db.directiveIndex,\n          propertyBindings: db.propertyBindings,\n          eventBindings: db.eventBindings\n        });\n      });\n      MapWrapper.forEach(ebb.propertySetters, (setter, propertyName) => {\n        MapWrapper.set(propertySetters, propertyName, setter);\n      });\n      var nestedProtoView =\n          isPresent(ebb.nestedProtoView) ? ebb.nestedProtoView.build() : null;\n      var parentIndex = isPresent(ebb.parent) ? ebb.parent.index : -1;\n      ListWrapper.push(apiElementBinders, new api.ElementBinder({\n        index: ebb.index, parentIndex:parentIndex, distanceToParent:ebb.distanceToParent,\n        directives: apiDirectiveBinders,\n        nestedProtoView: nestedProtoView,\n        propertyBindings: ebb.propertyBindings, variableBindings: ebb.variableBindings,\n        eventBindings: ebb.eventBindings,\n        textBindings: ebb.textBindings,\n        readAttributes: ebb.readAttributes\n      }));\n      ListWrapper.push(renderElementBinders, new ElementBinder({\n        textNodeIndices: ebb.textBindingIndices,\n        contentTagSelector: ebb.contentTagSelector,\n        parentIndex: parentIndex,\n        distanceToParent: ebb.distanceToParent,\n        nestedProtoView: isPresent(nestedProtoView) ? nestedProtoView.render.delegate : null,\n        componentId: ebb.componentId,\n        eventLocals: new LiteralArray(ebb.eventBuilder.buildEventLocals()),\n        localEvents: ebb.eventBuilder.buildLocalEvents(),\n        globalEvents: ebb.eventBuilder.buildGlobalEvents(),\n        propertySetters: propertySetters\n      }));\n    });\n    return new api.ProtoViewDto({\n      render: new directDomRenderer.DirectDomProtoViewRef(new RenderProtoView({\n        element: this.rootElement,\n        elementBinders: renderElementBinders,\n        imperativeRendererId: this.imperativeRendererId\n      })),\n      elementBinders: apiElementBinders,\n      variableBindings: this.variableBindings\n    });\n  }\n}\n\nexport class ElementBinderBuilder {\n  element;\n  index:number;\n  parent:ElementBinderBuilder;\n  distanceToParent:number;\n  directives:List<DirectiveBuilder>;\n  nestedProtoView:ProtoViewBuilder;\n  propertyBindings: Map<string, ASTWithSource>;\n  variableBindings: Map<string, string>;\n  eventBindings: List<api.EventBinding>;\n  eventBuilder: EventBuilder;\n  textBindingIndices: List<number>;\n  textBindings: List<ASTWithSource>;\n  contentTagSelector:string;\n  propertySetters: Map<string, SetterFn>;\n  readAttributes: Map<string, string>;\n  componentId: string;\n\n  constructor(index, element, description) {\n    this.element = element;\n    this.index = index;\n    this.parent = null;\n    this.distanceToParent = 0;\n    this.directives = [];\n    this.nestedProtoView = null;\n    this.propertyBindings = MapWrapper.create();\n    this.variableBindings = MapWrapper.create();\n    this.eventBindings = ListWrapper.create();\n    this.eventBuilder = new EventBuilder();\n    this.textBindings = [];\n    this.textBindingIndices = [];\n    this.contentTagSelector = null;\n    this.propertySetters = MapWrapper.create();\n    this.componentId = null;\n    this.readAttributes = MapWrapper.create();\n  }\n\n  setParent(parent:ElementBinderBuilder, distanceToParent):ElementBinderBuilder {\n    this.parent = parent;\n    if (isPresent(parent)) {\n      this.distanceToParent = distanceToParent;\n    }\n    return this;\n  }\n\n  readAttribute(attrName:string) {\n    if (isBlank(MapWrapper.get(this.readAttributes, attrName))) {\n      MapWrapper.set(this.readAttributes, attrName, DOM.getAttribute(this.element, attrName));\n    }\n  }\n\n  bindDirective(directiveIndex:number):DirectiveBuilder {\n    var directive = new DirectiveBuilder(directiveIndex);\n    ListWrapper.push(this.directives, directive);\n    return directive;\n  }\n\n  bindNestedProtoView(rootElement):ProtoViewBuilder {\n    if (isPresent(this.nestedProtoView)) {\n      throw new BaseException('Only one nested view per element is allowed');\n    }\n    this.nestedProtoView = new ProtoViewBuilder(rootElement);\n    return this.nestedProtoView;\n  }\n\n  bindProperty(name, expression) {\n    MapWrapper.set(this.propertyBindings, name, expression);\n    this.bindPropertySetter(name);\n  }\n\n  bindPropertySetter(name) {\n    MapWrapper.set(this.propertySetters, name, setterFactory(name));\n  }\n\n  bindVariable(name, value) {\n    // When current is a view root, the variable bindings are set to the *nested* proto view.\n    // The root view conceptually signifies a new \"block scope\" (the nested view), to which\n    // the variables are bound.\n    if (isPresent(this.nestedProtoView)) {\n      this.nestedProtoView.bindVariable(name, value);\n    } else {\n      // Store the variable map from value to variable, reflecting how it will be used later by\n      // RenderView. When a local is set to the view, a lookup for the variable name will take place keyed\n      // by the \"value\", or exported identifier. For example, ng-repeat sets a view local of \"index\".\n      // When this occurs, a lookup keyed by \"index\" must occur to find if there is a var referencing\n      // it.\n      MapWrapper.set(this.variableBindings, value, name);\n    }\n  }\n\n  bindEvent(name, expression, target = null) {\n    ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));\n  }\n\n  bindText(index, expression) {\n    ListWrapper.push(this.textBindingIndices, index);\n    ListWrapper.push(this.textBindings, expression);\n  }\n\n  setContentTagSelector(value:string) {\n    this.contentTagSelector = value;\n  }\n\n  setComponentId(componentId:string) {\n    this.componentId = componentId;\n  }\n}\n\nexport class DirectiveBuilder {\n  directiveIndex:number;\n  propertyBindings: Map<string, ASTWithSource>;\n  eventBindings: List<api.EventBinding>;\n  eventBuilder: EventBuilder;\n\n  constructor(directiveIndex) {\n    this.directiveIndex = directiveIndex;\n    this.propertyBindings = MapWrapper.create();\n    this.eventBindings = ListWrapper.create();\n    this.eventBuilder = new EventBuilder();\n  }\n\n  bindProperty(name, expression) {\n    MapWrapper.set(this.propertyBindings, name, expression);\n  }\n\n  bindEvent(name, expression, target = null) {\n    ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));\n  }\n}\n\nexport class EventBuilder extends AstTransformer {\n  locals: List<AST>;\n  localEvents: List<Event>;\n  globalEvents: List<Event>;\n  _implicitReceiver: AST;\n\n  constructor() {\n    super();\n    this.locals = [];\n    this.localEvents = [];\n    this.globalEvents = [];\n    this._implicitReceiver = new ImplicitReceiver();\n  }\n\n  add(name: string, source: ASTWithSource, target: string): api.EventBinding {\n    // TODO(tbosch): reenable this when we are parsing element properties\n    // out of action expressions\n    // var adjustedAst = astWithSource.ast.visit(this);\n    var adjustedAst = source.ast;\n    var fullName = isPresent(target) ? target + EVENT_TARGET_SEPARATOR + name : name;\n    var result = new api.EventBinding(fullName, new ASTWithSource(adjustedAst, source.source, source.location));\n    var event = new Event(name, target, fullName);\n    if (isBlank(target)) {\n      ListWrapper.push(this.localEvents, event);\n    } else {\n      ListWrapper.push(this.globalEvents, event);\n    }\n    return result;\n  }\n\n  visitAccessMember(ast:AccessMember) {\n    var isEventAccess = false;\n    var current = ast;\n    while (!isEventAccess && (current instanceof AccessMember)) {\n      if (current.name == '$event') {\n        isEventAccess = true;\n      }\n      current = current.receiver;\n    }\n\n    if (isEventAccess) {\n      ListWrapper.push(this.locals, ast);\n      var index = this.locals.length - 1;\n      return new AccessMember(this._implicitReceiver, `${index}`, (arr) => arr[index], null);\n    } else {\n      return ast;\n    }\n  }\n\n  buildEventLocals() {\n    return this.locals;\n  }\n\n  buildLocalEvents() {\n    return this.localEvents;\n  }\n\n  buildGlobalEvents() {\n    return this.globalEvents;\n  }\n\n  merge(eventBuilder: EventBuilder) {\n    this._merge(this.localEvents, eventBuilder.localEvents);\n    this._merge(this.globalEvents, eventBuilder.globalEvents);\n    ListWrapper.concat(this.locals, eventBuilder.locals);\n  }\n\n  _merge(host: List<Event>, tobeAdded: List<Event>) {\n    var names = ListWrapper.create();\n    for (var i = 0; i < host.length; i++) {\n      ListWrapper.push(names, host[i].fullName);\n    }\n    for (var j = 0; j < tobeAdded.length; j++) {\n      if (!ListWrapper.contains(names, tobeAdded[j].fullName)) {\n        ListWrapper.push(host, tobeAdded[j]);\n      }\n    }\n  }\n}\n"]}