UNPKG

3.97 kBSource Map (JSON)View Raw
1{"version":3,"sources":["core/portal/dom-portal-host.ts"],"names":[],"mappings":";;;;;OACO,EAAC,cAAc,EAAkC,MAAM,UAAU;OACjE,EAAC,gDAAgD,EAAC,MAAM,iBAAiB;AAGhF;;;;;GAKG;AACH;IAAmC,iCAAc;IAC/C,uBACY,eAAwB,EACxB,yBAAmD;QAC7D,iBAAO,CAAC;QAFE,oBAAe,GAAf,eAAe,CAAS;QACxB,8BAAyB,GAAzB,yBAAyB,CAA0B;IAE/D,CAAC;IAED,0FAA0F;IAC1F,6CAAqB,GAArB,UAAyB,MAA0B;QACjD,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,gDAAgD,EAAE,CAAC;QAC/D,CAAC;QAED,IAAI,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChG,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAC7C,gBAAgB,EAChB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAC9B,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAE/D,IAAI,QAAQ,GAA0B,GAAG,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,cAAM,OAAA,GAAG,CAAC,OAAO,EAAE,EAAb,CAAa,CAAC,CAAC;QAEvC,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,4CAAoB,GAApB,UAAqB,MAAsB;QAA3C,iBAeC;QAdC,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,IAAI,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEnE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAA1C,CAA0C,CAAC,CAAC;QAElF,IAAI,CAAC,YAAY,CAAC,CAAC;YACjB,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;QAEJ,2CAA2C;QAC3C,MAAM,CAAC,IAAI,GAAG,EAAe,CAAC;IAChC,CAAC;IAED,+BAAO,GAAP;QACE,gBAAK,CAAC,OAAO,WAAE,CAAC;QAChB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACH,oBAAC;AAAD,CAjDA,AAiDC,CAjDkC,cAAc,GAiDhD","file":"core/portal/dom-portal-host.js","sourcesContent":["import {ComponentFactoryResolver, ComponentRef, EmbeddedViewRef} from '@angular/core';\nimport {BasePortalHost, ComponentPortal, TemplatePortal} from './portal';\nimport {MdComponentPortalAttachedToDomWithoutOriginError} from './portal-errors';\n\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport class DomPortalHost extends BasePortalHost {\n constructor(\n private _hostDomElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver) {\n super();\n }\n\n /** Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (portal.viewContainerRef == null) {\n throw new MdComponentPortalAttachedToDomWithoutOriginError();\n }\n\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let ref = portal.viewContainerRef.createComponent(\n componentFactory,\n portal.viewContainerRef.length,\n portal.injector || portal.viewContainerRef.parentInjector);\n\n let hostView = <EmbeddedViewRef<any>> ref.hostView;\n this._hostDomElement.appendChild(hostView.rootNodes[0]);\n this.setDisposeFn(() => ref.destroy());\n\n return ref;\n }\n\n attachTemplatePortal(portal: TemplatePortal): Map<string, any> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef);\n\n viewRef.rootNodes.forEach(rootNode => this._hostDomElement.appendChild(rootNode));\n\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index != -1) {\n viewContainer.remove(index);\n }\n }));\n\n // TODO(jelbourn): Return locals from view.\n return new Map<string, any>();\n }\n\n dispose(): void {\n super.dispose();\n if (this._hostDomElement.parentNode != null) {\n this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n }\n }\n}\n"],"sourceRoot":"/source/"}
\No newline at end of file