angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 8.01 kB
Source Map (JSON)
{"version":3,"sources":["view_container.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/view_container.js","sourcesContent":["import {isPresent, isBlank, BaseException} from 'angular2/src/facade/lang';\nimport {ListWrapper, MapWrapper, List} from 'angular2/src/facade/collection';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport * as viewModule from './view';\n\nexport class ViewContainer {\n parentView: viewModule.RenderView;\n boundElementIndex: number;\n views: List<viewModule.RenderView>;\n\n constructor(parentView: viewModule.RenderView, boundElementIndex: number) {\n this.parentView = parentView;\n this.boundElementIndex = boundElementIndex;\n // The order in this list matches the DOM order.\n this.views = [];\n }\n\n get(index: number): viewModule.RenderView {\n return this.views[index];\n }\n\n size() {\n return this.views.length;\n }\n\n _siblingToInsertAfter(index: number) {\n if (index == 0) return this.parentView.boundElements[this.boundElementIndex];\n return ListWrapper.last(this.views[index - 1].rootNodes);\n }\n\n _checkHydrated() {\n if (!this.parentView.hydrated) throw new BaseException(\n 'Cannot change dehydrated ViewContainer');\n }\n\n _getDirectParentLightDom() {\n return this.parentView.getDirectParentLightDom(this.boundElementIndex);\n }\n\n clear() {\n this._checkHydrated();\n for (var i=this.views.length-1; i>=0; i--) {\n this.detach(i);\n }\n if (isPresent(this._getDirectParentLightDom())) {\n this._getDirectParentLightDom().redistribute();\n }\n }\n\n insert(view, atIndex=-1): viewModule.RenderView {\n this._checkHydrated();\n if (atIndex == -1) atIndex = this.views.length;\n ListWrapper.insert(this.views, atIndex, view);\n\n if (isBlank(this._getDirectParentLightDom())) {\n ViewContainer.moveViewNodesAfterSibling(this._siblingToInsertAfter(atIndex), view);\n } else {\n this._getDirectParentLightDom().redistribute();\n }\n // new content tags might have appeared, we need to redistribute.\n if (isPresent(this.parentView.hostLightDom)) {\n this.parentView.hostLightDom.redistribute();\n }\n return view;\n }\n\n /**\n * The method can be used together with insert to implement a view move, i.e.\n * moving the dom nodes while the directives in the view stay intact.\n */\n detach(atIndex:number) {\n this._checkHydrated();\n var detachedView = this.get(atIndex);\n ListWrapper.removeAt(this.views, atIndex);\n if (isBlank(this._getDirectParentLightDom())) {\n ViewContainer.removeViewNodes(detachedView);\n } else {\n this._getDirectParentLightDom().redistribute();\n }\n // content tags might have disappeared we need to do redistribution.\n if (isPresent(this.parentView.hostLightDom)) {\n this.parentView.hostLightDom.redistribute();\n }\n return detachedView;\n }\n\n contentTagContainers() {\n return this.views;\n }\n\n nodes():List {\n var r = [];\n for (var i = 0; i < this.views.length; ++i) {\n r = ListWrapper.concat(r, this.views[i].rootNodes);\n }\n return r;\n }\n\n static moveViewNodesAfterSibling(sibling, view) {\n for (var i = view.rootNodes.length - 1; i >= 0; --i) {\n DOM.insertAfter(sibling, view.rootNodes[i]);\n }\n }\n\n static removeViewNodes(view) {\n var len = view.rootNodes.length;\n if (len == 0) return;\n var parent = view.rootNodes[0].parentNode;\n for (var i = len - 1; i >= 0; --i) {\n DOM.removeChild(parent, view.rootNodes[i]);\n }\n }\n}\n"]}