{"version":3,"sources":["view.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/view.es6","sourcesContent":["import {DOM} from 'angular2/src/dom/dom_adapter';\nimport {ListWrapper, MapWrapper, Map, StringMapWrapper, List} from 'angular2/src/facade/collection';\nimport {int, isPresent, isBlank, BaseException} from 'angular2/src/facade/lang';\n\nimport {ViewContainer} from './view_container';\nimport {RenderProtoView} from './proto_view';\nimport {LightDom} from '../shadow_dom/light_dom';\nimport {Content} from '../shadow_dom/content_tag';\n\n// import {EventDispatcher} from '../../api';\n\nconst NG_BINDING_CLASS = 'ng-binding';\n\n/**\n * Const of making objects: http://jsperf.com/instantiate-size-of-object\n */\nexport class RenderView {\n  boundElements:List;\n  boundTextNodes:List;\n  /// When the view is part of render tree, the DocumentFragment is empty, which is why we need\n  /// to keep track of the nodes.\n  rootNodes:List;\n  // TODO(tbosch): move componentChildViews, viewContainers, contentTags, lightDoms into\n  // a single array with records inside\n  componentChildViews: List<RenderView>;\n  viewContainers: List<ViewContainer>;\n  contentTags: List<Content>;\n  lightDoms: List<LightDom>;\n  hostLightDom: LightDom;\n  proto: RenderProtoView;\n  hydrated: boolean;\n  _eventDispatcher: any/*EventDispatcher*/;\n  eventHandlerRemovers: List<Function>;\n  /// Host views that were added by an imperative view.\n  /// This is a dynamically growing / shrinking array.\n  imperativeHostViews: List<RenderView>;\n\n  constructor(\n      proto:RenderProtoView, rootNodes:List,\n      boundTextNodes: List, boundElements:List, contentTags:List) {\n    this.proto = proto;\n    this.rootNodes = rootNodes;\n    this.boundTextNodes = boundTextNodes;\n    this.boundElements = boundElements;\n    this.viewContainers = ListWrapper.createFixedSize(boundElements.length);\n    this.contentTags = contentTags;\n    this.lightDoms = ListWrapper.createFixedSize(boundElements.length);\n    ListWrapper.fill(this.lightDoms, null);\n    this.componentChildViews = ListWrapper.createFixedSize(boundElements.length);\n    this.hostLightDom = null;\n    this.hydrated = false;\n    this.eventHandlerRemovers = [];\n    this.imperativeHostViews = [];\n  }\n\n  getDirectParentLightDom(boundElementIndex:number) {\n    var binder = this.proto.elementBinders[boundElementIndex];\n    var destLightDom = null;\n    if (binder.parentIndex !== -1 && binder.distanceToParent === 1) {\n      destLightDom = this.lightDoms[binder.parentIndex];\n    }\n    return destLightDom;\n  }\n\n  getOrCreateViewContainer(binderIndex) {\n    var vc = this.viewContainers[binderIndex];\n    if (isBlank(vc)) {\n      vc = new ViewContainer(this, binderIndex);\n      this.viewContainers[binderIndex] = vc;\n    }\n    return vc;\n  }\n\n  setElementProperty(elementIndex:number, propertyName:string, value:any) {\n    var setter = MapWrapper.get(this.proto.elementBinders[elementIndex].propertySetters, propertyName);\n    setter(this.boundElements[elementIndex], value);\n  }\n\n  setText(textIndex:number, value:string) {\n    DOM.setText(this.boundTextNodes[textIndex], value);\n  }\n\n  getViewContainer(index:number):ViewContainer {\n    return this.viewContainers[index];\n  }\n\n  setEventDispatcher(dispatcher:any/*EventDispatcher*/) {\n    this._eventDispatcher = dispatcher;\n  }\n\n  dispatchEvent(elementIndex, eventName, event): boolean {\n    var allowDefaultBehavior = true;\n    if (isPresent(this._eventDispatcher)) {\n      var evalLocals = MapWrapper.create();\n      MapWrapper.set(evalLocals, '$event', event);\n      // TODO(tbosch): reenable this when we are parsing element properties\n      // out of action expressions\n      // var localValues = this.proto.elementBinders[elementIndex].eventLocals.eval(null, new Locals(null, evalLocals));\n      // this._eventDispatcher.dispatchEvent(elementIndex, eventName, localValues);\n      allowDefaultBehavior = this._eventDispatcher.dispatchEvent(elementIndex, eventName, evalLocals);\n      if (!allowDefaultBehavior) {\n        event.preventDefault();\n      }\n    }\n    return allowDefaultBehavior;\n  }\n}\n"]}