angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 14.9 kB
Source Map (JSON)
{"version":3,"sources":["view_hydrator.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/view_hydrator.js","sourcesContent":["import {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 * as ldModule from '../shadow_dom/light_dom';\nimport {EventManager} from '../events/event_manager';\nimport {ViewFactory} from './view_factory';\nimport * as vcModule from './view_container';\nimport * as viewModule from './view';\nimport {ShadowDomStrategy} from '../shadow_dom/shadow_dom_strategy';\n\n/**\n * A dehydrated view is a state of the view that allows it to be moved around\n * the view tree.\n *\n * A dehydrated view has the following properties:\n *\n * - all viewcontainers are empty.\n *\n * A call to hydrate/dehydrate is called whenever a view is attached/detached,\n * but it does not do the attach/detach itself.\n */\n@Injectable()\nexport class RenderViewHydrator {\n _eventManager:EventManager;\n _viewFactory:ViewFactory;\n _shadowDomStrategy:ShadowDomStrategy;\n\n constructor(eventManager:EventManager, viewFactory:ViewFactory, shadowDomStrategy:ShadowDomStrategy) {\n this._eventManager = eventManager;\n this._viewFactory = viewFactory;\n this._shadowDomStrategy = shadowDomStrategy;\n }\n\n hydrateDynamicComponentView(hostView:viewModule.RenderView, boundElementIndex:number, componentView:viewModule.RenderView) {\n ViewFactory.setComponentView(this._shadowDomStrategy, hostView, boundElementIndex, componentView);\n var lightDom = hostView.lightDoms[boundElementIndex];\n this._viewHydrateRecurse(componentView, lightDom);\n if (isPresent(lightDom)) {\n lightDom.redistribute();\n }\n }\n\n dehydrateDynamicComponentView(parentView:viewModule.RenderView, boundElementIndex:number) {\n throw new BaseException('Not supported yet');\n // Something along these lines:\n // var componentView = parentView.componentChildViews[boundElementIndex];\n // vcModule.ViewContainer.removeViewNodes(componentView);\n // parentView.componentChildViews[boundElementIndex] = null;\n // parentView.lightDoms[boundElementIndex] = null;\n // this._viewDehydrateRecurse(componentView);\n }\n\n hydrateInPlaceHostView(parentView:viewModule.RenderView, hostView:viewModule.RenderView) {\n if (isPresent(parentView)) {\n ListWrapper.push(parentView.imperativeHostViews, hostView);\n }\n this._viewHydrateRecurse(hostView, null);\n }\n\n dehydrateInPlaceHostView(parentView:viewModule.RenderView, hostView:viewModule.RenderView) {\n if (isPresent(parentView)) {\n ListWrapper.remove(parentView.imperativeHostViews, hostView);\n }\n vcModule.ViewContainer.removeViewNodes(hostView);\n hostView.rootNodes = [];\n this._viewDehydrateRecurse(hostView);\n }\n\n hydrateViewInViewContainer(viewContainer:vcModule.ViewContainer, view:viewModule.RenderView) {\n this._viewHydrateRecurse(view, viewContainer.parentView.hostLightDom);\n }\n\n dehydrateViewInViewContainer(viewContainer:vcModule.ViewContainer, view:viewModule.RenderView) {\n this._viewDehydrateRecurse(view);\n }\n\n _viewHydrateRecurse(view, hostLightDom: ldModule.LightDom) {\n if (view.hydrated) throw new BaseException('The view is already hydrated.');\n view.hydrated = true;\n view.hostLightDom = hostLightDom;\n\n // content tags\n for (var i = 0; i < view.contentTags.length; i++) {\n var destLightDom = view.getDirectParentLightDom(i);\n var ct = view.contentTags[i];\n if (isPresent(ct)) {\n ct.hydrate(destLightDom);\n }\n }\n\n // componentChildViews\n for (var i = 0; i < view.componentChildViews.length; i++) {\n var cv = view.componentChildViews[i];\n if (isPresent(cv)) {\n this._viewHydrateRecurse(cv, view.lightDoms[i]);\n }\n }\n\n for (var i = 0; i < view.lightDoms.length; ++i) {\n var lightDom = view.lightDoms[i];\n if (isPresent(lightDom)) {\n lightDom.redistribute();\n }\n }\n\n //add global events\n view.eventHandlerRemovers = ListWrapper.create();\n var binders = view.proto.elementBinders;\n for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {\n var binder = binders[binderIdx];\n if (isPresent(binder.globalEvents)) {\n for (var i = 0; i < binder.globalEvents.length; i++) {\n var globalEvent = binder.globalEvents[i];\n var remover = this._createGlobalEventListener(view, binderIdx, globalEvent.name, globalEvent.target, globalEvent.fullName);\n ListWrapper.push(view.eventHandlerRemovers, remover);\n }\n }\n }\n }\n\n _createGlobalEventListener(view, elementIndex, eventName, eventTarget, fullName): Function {\n return this._eventManager.addGlobalEventListener(eventTarget, eventName, (event) => {\n view.dispatchEvent(elementIndex, fullName, event);\n });\n }\n\n _viewDehydrateRecurse(view) {\n // Note: preserve the opposite order of the hydration process.\n\n // componentChildViews\n for (var i = 0; i < view.componentChildViews.length; i++) {\n var cv = view.componentChildViews[i];\n if (isPresent(cv)) {\n this._viewDehydrateRecurse(cv);\n if (view.proto.elementBinders[i].hasDynamicComponent()) {\n vcModule.ViewContainer.removeViewNodes(cv);\n this._viewFactory.returnView(cv);\n view.lightDoms[i] = null;\n view.componentChildViews[i] = null;\n }\n }\n }\n\n // imperativeHostViews\n for (var i = 0; i < view.imperativeHostViews.length; i++) {\n var hostView = view.imperativeHostViews[i];\n this._viewDehydrateRecurse(hostView);\n vcModule.ViewContainer.removeViewNodes(hostView);\n hostView.rootNodes = [];\n this._viewFactory.returnView(hostView);\n }\n view.imperativeHostViews = [];\n\n\n // viewContainers and content tags\n if (isPresent(view.viewContainers)) {\n for (var i = 0; i < view.viewContainers.length; i++) {\n var vc = view.viewContainers[i];\n if (isPresent(vc)) {\n this._viewContainerDehydrateRecurse(vc);\n }\n var ct = view.contentTags[i];\n if (isPresent(ct)) {\n ct.dehydrate();\n }\n }\n }\n\n //remove global events\n for (var i = 0; i < view.eventHandlerRemovers.length; i++) {\n view.eventHandlerRemovers[i]();\n }\n\n view.hostLightDom = null;\n view.eventHandlerRemovers = null;\n view.setEventDispatcher(null);\n view.hydrated = false;\n }\n\n _viewContainerDehydrateRecurse(viewContainer) {\n for (var i=0; i<viewContainer.views.length; i++) {\n this._viewDehydrateRecurse(viewContainer.views[i]);\n }\n viewContainer.clear();\n }\n\n}\n"]}