UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 14.4 kB
{"version":3,"sources":["view_factory.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/view_factory.es6","sourcesContent":["import {OpaqueToken, Inject, Injectable} from 'angular2/di';\nimport {int, isPresent, isBlank, BaseException} from 'angular2/src/facade/lang';\nimport {ListWrapper, MapWrapper, Map, StringMapWrapper, List} from 'angular2/src/facade/collection';\n\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport {Content} from '../shadow_dom/content_tag';\nimport {ShadowDomStrategy} from '../shadow_dom/shadow_dom_strategy';\nimport {EventManager} from 'angular2/src/render/dom/events/event_manager';\n\nimport * as pvModule from './proto_view';\nimport * as viewModule from './view';\nimport {NG_BINDING_CLASS_SELECTOR, NG_BINDING_CLASS} from '../util';\n\n// TODO(tbosch): Make this an OpaqueToken as soon as our transpiler supports this!\nexport const VIEW_POOL_CAPACITY = 'render.ViewFactory.viewPoolCapacity';\n\n@Injectable()\nexport class ViewFactory {\n _poolCapacityPerProtoView:number;\n _pooledViewsPerProtoView:Map<pvModule.RenderProtoView, List<viewModule.RenderView>>;\n _eventManager:EventManager;\n _shadowDomStrategy:ShadowDomStrategy;\n\n constructor(@Inject(VIEW_POOL_CAPACITY) poolCapacityPerProtoView,\n eventManager:EventManager, shadowDomStrategy:ShadowDomStrategy) {\n this._poolCapacityPerProtoView = poolCapacityPerProtoView;\n this._pooledViewsPerProtoView = MapWrapper.create();\n this._eventManager = eventManager;\n this._shadowDomStrategy = shadowDomStrategy;\n }\n\n createInPlaceHostView(hostElementSelector, hostProtoView:pvModule.RenderProtoView):viewModule.RenderView {\n return this._createView(hostProtoView, hostElementSelector);\n }\n\n getView(protoView:pvModule.RenderProtoView):viewModule.RenderView {\n var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);\n if (isPresent(pooledViews) && pooledViews.length > 0) {\n return ListWrapper.removeLast(pooledViews);\n }\n return this._createView(protoView, null);\n }\n\n returnView(view:viewModule.RenderView) {\n if (view.hydrated) {\n throw new BaseException('View is still hydrated');\n }\n var protoView = view.proto;\n var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);\n if (isBlank(pooledViews)) {\n pooledViews = [];\n MapWrapper.set(this._pooledViewsPerProtoView, protoView, pooledViews);\n }\n if (pooledViews.length < this._poolCapacityPerProtoView) {\n ListWrapper.push(pooledViews, view);\n }\n }\n\n _createView(protoView:pvModule.RenderProtoView, inplaceElement): viewModule.RenderView {\n if (isPresent(protoView.imperativeRendererId)) {\n return new viewModule.RenderView(\n protoView, [], [], [], []\n );\n }\n\n var rootElementClone = isPresent(inplaceElement) ? inplaceElement : DOM.importIntoDoc(protoView.element);\n var elementsWithBindingsDynamic;\n if (protoView.isTemplateElement) {\n elementsWithBindingsDynamic = DOM.querySelectorAll(DOM.content(rootElementClone), NG_BINDING_CLASS_SELECTOR);\n } else {\n elementsWithBindingsDynamic = DOM.getElementsByClassName(rootElementClone, NG_BINDING_CLASS);\n }\n\n var elementsWithBindings = ListWrapper.createFixedSize(elementsWithBindingsDynamic.length);\n for (var binderIdx = 0; binderIdx < elementsWithBindingsDynamic.length; ++binderIdx) {\n elementsWithBindings[binderIdx] = elementsWithBindingsDynamic[binderIdx];\n }\n\n var viewRootNodes;\n if (protoView.isTemplateElement) {\n var childNode = DOM.firstChild(DOM.content(rootElementClone));\n viewRootNodes = []; // TODO(perf): Should be fixed size, since we could pre-compute in in pvModule.RenderProtoView\n // Note: An explicit loop is the fastest way to convert a DOM array into a JS array!\n while(childNode != null) {\n ListWrapper.push(viewRootNodes, childNode);\n childNode = DOM.nextSibling(childNode);\n }\n } else {\n viewRootNodes = [rootElementClone];\n }\n var binders = protoView.elementBinders;\n var boundTextNodes = [];\n var boundElements = ListWrapper.createFixedSize(binders.length);\n var contentTags = ListWrapper.createFixedSize(binders.length);\n\n for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {\n var binder = binders[binderIdx];\n var element;\n if (binderIdx === 0 && protoView.rootBindingOffset === 1) {\n element = rootElementClone;\n } else {\n element = elementsWithBindings[binderIdx - protoView.rootBindingOffset];\n }\n boundElements[binderIdx] = element;\n\n // boundTextNodes\n var childNodes = DOM.childNodes(DOM.templateAwareRoot(element));\n var textNodeIndices = binder.textNodeIndices;\n for (var i = 0; i<textNodeIndices.length; i++) {\n ListWrapper.push(boundTextNodes, childNodes[textNodeIndices[i]]);\n }\n\n // contentTags\n var contentTag = null;\n if (isPresent(binder.contentTagSelector)) {\n contentTag = new Content(element, binder.contentTagSelector);\n }\n contentTags[binderIdx] = contentTag;\n }\n\n var view = new viewModule.RenderView(\n protoView, viewRootNodes,\n boundTextNodes, boundElements, contentTags\n );\n\n for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {\n var binder = binders[binderIdx];\n var element = boundElements[binderIdx];\n\n // static child components\n if (binder.hasStaticComponent()) {\n var childView = this._createView(binder.nestedProtoView, null);\n ViewFactory.setComponentView(this._shadowDomStrategy, view, binderIdx, childView);\n }\n\n // events\n if (isPresent(binder.eventLocals) && isPresent(binder.localEvents)) {\n for (var i = 0; i < binder.localEvents.length; i++) {\n this._createEventListener(view, element, binderIdx, binder.localEvents[i].name, binder.eventLocals);\n }\n }\n }\n\n return view;\n }\n\n _createEventListener(view, element, elementIndex, eventName, eventLocals) {\n this._eventManager.addEventListener(element, eventName, (event) => {\n view.dispatchEvent(elementIndex, eventName, event);\n });\n }\n\n // This method is used by the ViewFactory and the ViewHydrator\n // TODO(tbosch): change shadow dom emulation so that LightDom\n // instances don't need to be recreated by instead hydrated/dehydrated\n static setComponentView(shadowDomStrategy:ShadowDomStrategy, hostView:viewModule.RenderView, elementIndex:number, componentView:viewModule.RenderView) {\n var element = hostView.boundElements[elementIndex];\n var lightDom = shadowDomStrategy.constructLightDom(hostView, componentView, element);\n shadowDomStrategy.attachTemplate(element, componentView);\n hostView.lightDoms[elementIndex] = lightDom;\n hostView.componentChildViews[elementIndex] = componentView;\n }\n}\n"]}