UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 7.46 kB
{"version":3,"sources":["view_container.js"],"names":[],"mappings":"AAAA,KAAO,EAAC,SAAQ;AAAG,QAAM;AAAG,cAAY,CAAC,KAAO,2BAAyB,CAAC;AAC1E,KAAO,EAAC,WAAU;AAAG,WAAS;AAAG,KAAG,CAAC,KAAO,iCAA+B,CAAC;AAC5E,KAAO,EAAC,GAAE,CAAC,KAAO,+BAA6B,CAAC;AAEhD,UAAY,WAAS,CAAA,IAAO,SAAO,CAAC;AAEpC,KAAO,MAAM,cAAY;AAKvB,YAAU,CAAE,UAAS,AAAuB,CAAG,CAAA,iBAAgB,AAAQ,CAAG;AACxE,OAAG,WAAW,EAAI,WAAS,CAAC;AAC5B,OAAG,kBAAkB,EAAI,kBAAgB,CAAC;AAE1C,OAAG,MAAM,EAAI,GAAC,CAAC;EACjB;AAAA,AAEA,IAAE,CAAE,KAAI,AAAQ,CAA0B;AACxC,SAAO,CAAA,IAAG,MAAM,CAAE,KAAI,CAAC,CAAC;EAC1B;AAAA,AAEA,KAAG,CAAE,AAAD,CAAG;AACL,SAAO,CAAA,IAAG,MAAM,OAAO,CAAC;EAC1B;AAAA,AAEA,sBAAoB,CAAE,KAAI,AAAQ,CAAG;AACnC,OAAI,KAAI,GAAK,EAAA;AAAG,WAAO,CAAA,IAAG,WAAW,cAAc,CAAE,IAAG,kBAAkB,CAAC,CAAC;AAAA,AAC5E,SAAO,CAAA,WAAU,KAAK,AAAC,CAAC,IAAG,MAAM,CAAE,KAAI,EAAI,EAAA,CAAC,UAAU,CAAC,CAAC;EAC1D;AAAA,AAEA,eAAa,CAAE,AAAD,CAAG;AACf,OAAI,CAAC,IAAG,WAAW,SAAS;AAAG,UAAM,IAAI,cAAY,AAAC,CAClD,wCAAuC,CAAC,CAAC;AAAA,EAC/C;AAAA,AAEA,yBAAuB,CAAE,AAAD,CAAG;AACzB,SAAO,CAAA,IAAG,WAAW,wBAAwB,AAAC,CAAC,IAAG,kBAAkB,CAAC,CAAC;EACxE;AAAA,AAEA,MAAI,CAAE,AAAD,CAAG;AACN,OAAG,eAAe,AAAC,EAAC,CAAC;AACrB,QAAS,GAAA,CAAA,CAAA,EAAE,CAAA,IAAG,MAAM,OAAO,EAAE,EAAA,CAAG,CAAA,CAAA,GAAG,EAAA,CAAG,CAAA,CAAA,EAAE,CAAG;AACzC,SAAG,OAAO,AAAC,CAAC,CAAA,CAAC,CAAC;IAChB;AAAA,AACA,OAAI,SAAQ,AAAC,CAAC,IAAG,yBAAyB,AAAC,EAAC,CAAC,CAAG;AAC9C,SAAG,yBAAyB,AAAC,EAAC,aAAa,AAAC,EAAC,CAAC;IAChD;AAAA,EACF;AAAA,AAEA,OAAK,CAAE,IAAG,CAAG,CAAA,OAAM,EAAE,EAAC,CAAA,CAA0B;AAC9C,OAAG,eAAe,AAAC,EAAC,CAAC;AACrB,OAAI,OAAM,GAAK,EAAC,CAAA;AAAG,YAAM,EAAI,CAAA,IAAG,MAAM,OAAO,CAAC;AAAA,AAC9C,cAAU,OAAO,AAAC,CAAC,IAAG,MAAM,CAAG,QAAM,CAAG,KAAG,CAAC,CAAC;AAE7C,OAAI,OAAM,AAAC,CAAC,IAAG,yBAAyB,AAAC,EAAC,CAAC,CAAG;AAC5C,kBAAY,0BAA0B,AAAC,CAAC,IAAG,sBAAsB,AAAC,CAAC,OAAM,CAAC,CAAG,KAAG,CAAC,CAAC;IACpF,KAAO;AACL,SAAG,yBAAyB,AAAC,EAAC,aAAa,AAAC,EAAC,CAAC;IAChD;AAAA,AAEA,OAAI,SAAQ,AAAC,CAAC,IAAG,WAAW,aAAa,CAAC,CAAG;AAC3C,SAAG,WAAW,aAAa,aAAa,AAAC,EAAC,CAAC;IAC7C;AAAA,AACA,SAAO,KAAG,CAAC;EACb;AAAA,AAMA,OAAK,CAAE,OAAM,AAAO,CAAG;AACrB,OAAG,eAAe,AAAC,EAAC,CAAC;AACrB,AAAI,MAAA,CAAA,YAAW,EAAI,CAAA,IAAG,IAAI,AAAC,CAAC,OAAM,CAAC,CAAC;AACpC,cAAU,SAAS,AAAC,CAAC,IAAG,MAAM,CAAG,QAAM,CAAC,CAAC;AACzC,OAAI,OAAM,AAAC,CAAC,IAAG,yBAAyB,AAAC,EAAC,CAAC,CAAG;AAC5C,kBAAY,gBAAgB,AAAC,CAAC,YAAW,CAAC,CAAC;IAC7C,KAAO;AACL,SAAG,yBAAyB,AAAC,EAAC,aAAa,AAAC,EAAC,CAAC;IAChD;AAAA,AAEA,OAAI,SAAQ,AAAC,CAAC,IAAG,WAAW,aAAa,CAAC,CAAG;AAC3C,SAAG,WAAW,aAAa,aAAa,AAAC,EAAC,CAAC;IAC7C;AAAA,AACA,SAAO,aAAW,CAAC;EACrB;AAAA,AAEA,qBAAmB,CAAE,AAAD,CAAG;AACrB,SAAO,CAAA,IAAG,MAAM,CAAC;EACnB;AAAA,AAEA,MAAI,CAAE,AAAD,CAAQ;AACX,AAAI,MAAA,CAAA,CAAA,EAAI,GAAC,CAAC;AACV,QAAS,GAAA,CAAA,CAAA,EAAI,EAAA,CAAG,CAAA,CAAA,EAAI,CAAA,IAAG,MAAM,OAAO,CAAG,GAAE,CAAA,CAAG;AAC1C,MAAA,EAAI,CAAA,WAAU,OAAO,AAAC,CAAC,CAAA,CAAG,CAAA,IAAG,MAAM,CAAE,CAAA,CAAC,UAAU,CAAC,CAAC;IACpD;AAAA,AACA,SAAO,EAAA,CAAC;EACV;AAAA,AAEA,OAAO,0BAAwB,CAAE,OAAM,CAAG,CAAA,IAAG,CAAG;AAC9C,QAAS,GAAA,CAAA,CAAA,EAAI,CAAA,IAAG,UAAU,OAAO,EAAI,EAAA,CAAG,CAAA,CAAA,GAAK,EAAA,CAAG,GAAE,CAAA,CAAG;AACnD,QAAE,YAAY,AAAC,CAAC,OAAM,CAAG,CAAA,IAAG,UAAU,CAAE,CAAA,CAAC,CAAC,CAAC;IAC7C;AAAA,EACF;AAAA,AAEA,OAAO,gBAAc,CAAE,IAAG,CAAG;AAC3B,AAAI,MAAA,CAAA,GAAE,EAAI,CAAA,IAAG,UAAU,OAAO,CAAC;AAC/B,OAAI,GAAE,GAAK,EAAA;AAAG,aAAM;AAAA,AAChB,MAAA,CAAA,MAAK,EAAI,CAAA,IAAG,UAAU,CAAE,CAAA,CAAC,WAAW,CAAC;AACzC,QAAS,GAAA,CAAA,CAAA,EAAI,CAAA,GAAE,EAAI,EAAA,CAAG,CAAA,CAAA,GAAK,EAAA,CAAG,GAAE,CAAA,CAAG;AACjC,QAAE,YAAY,AAAC,CAAC,MAAK,CAAG,CAAA,IAAG,UAAU,CAAE,CAAA,CAAC,CAAC,CAAC;IAC5C;AAAA,EACF;AAAA,AACF;AAAA,AAjHA,KAAK,eAAe,AAAC,6BACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAUA,UAAS,WAAW,IAX9C,MAAK,KAAgB,UAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,2CACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,MAAK,KAAgB,UAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,6DACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,MAAK,KAAgB,UAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,8CACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,MAAK,KAAgB,UAC4B;EAAC,CAAC,CAAC,CAAC;AAiHrD","file":"angular2/src/render/dom/view/view_container.es6","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"]}