{"version":3,"file":"cdk-portal.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","cdk/portal.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { ComponentFactoryResolver, Directive, Input, NgModule, TemplateRef, ViewContainerRef } from '@angular/core';\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * \\@docs-private\n * @return {?}\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwPortalHostAlreadyDisposedError() {\n throw Error('This PortalHost has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * \\@docs-private\n * @return {?}\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwNullPortalHostError() {\n throw Error('Attempting to attach a portal to a null PortalHost');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * \\@docs-privatew\n * @return {?}\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalHost`.\n * @abstract\n */\nvar Portal = (function () {\n function Portal() {\n }\n /**\n * Attach this portal to a host.\n * @param {?} host\n * @return {?}\n */\n Portal.prototype.attach = function (host) {\n if (host == null) {\n throwNullPortalHostError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n this._attachedHost = host;\n return (host.attach(this));\n };\n /**\n * Detach this portal from its host\n * @return {?}\n */\n Portal.prototype.detach = function () {\n var /** @type {?} */ host = this._attachedHost;\n if (host == null) {\n throwNoPortalAttachedError();\n }\n else {\n this._attachedHost = null;\n host.detach();\n }\n };\n Object.defineProperty(Portal.prototype, \"isAttached\", {\n /**\n * Whether this portal is attached to a host.\n * @return {?}\n */\n get: function () {\n return this._attachedHost != null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n * @param {?} host\n * @return {?}\n */\n Portal.prototype.setAttachedHost = function (host) {\n this._attachedHost = host;\n };\n return Portal;\n}());\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nvar ComponentPortal = (function (_super) {\n __extends(ComponentPortal, _super);\n /**\n * @param {?} component\n * @param {?=} viewContainerRef\n * @param {?=} injector\n */\n function ComponentPortal(component, viewContainerRef, injector) {\n var _this = _super.call(this) || this;\n _this.component = component;\n _this.viewContainerRef = viewContainerRef;\n _this.injector = injector;\n return _this;\n }\n return ComponentPortal;\n}(Portal));\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nvar TemplatePortal = (function (_super) {\n __extends(TemplatePortal, _super);\n /**\n * @param {?} template\n * @param {?} viewContainerRef\n * @param {?=} context\n */\n function TemplatePortal(template, viewContainerRef, context) {\n var _this = _super.call(this) || this;\n _this.templateRef = template;\n _this.viewContainerRef = viewContainerRef;\n if (context) {\n _this.context = context;\n }\n return _this;\n }\n Object.defineProperty(TemplatePortal.prototype, \"origin\", {\n /**\n * @return {?}\n */\n get: function () {\n return this.templateRef.elementRef;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Attach the the portal to the provided `PortalHost`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n * @param {?} host\n * @param {?=} context\n * @return {?}\n */\n TemplatePortal.prototype.attach = function (host, context) {\n if (context === void 0) { context = this.context; }\n this.context = context;\n return _super.prototype.attach.call(this, host);\n };\n /**\n * @return {?}\n */\n TemplatePortal.prototype.detach = function () {\n this.context = undefined;\n return _super.prototype.detach.call(this);\n };\n return TemplatePortal;\n}(Portal));\n/**\n * Partial implementation of PortalHost that only deals with attaching either a\n * ComponentPortal or a TemplatePortal.\n * @abstract\n */\nvar BasePortalHost = (function () {\n function BasePortalHost() {\n /**\n * Whether this host has already been permanently disposed.\n */\n this._isDisposed = false;\n }\n /**\n * Whether this host has an attached portal.\n * @return {?}\n */\n BasePortalHost.prototype.hasAttached = function () {\n return !!this._attachedPortal;\n };\n /**\n * @param {?} portal\n * @return {?}\n */\n BasePortalHost.prototype.attach = function (portal) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalHostAlreadyDisposedError();\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n throwUnknownPortalTypeError();\n };\n /**\n * @abstract\n * @template T\n * @param {?} portal\n * @return {?}\n */\n BasePortalHost.prototype.attachComponentPortal = function (portal) { };\n /**\n * @abstract\n * @template C\n * @param {?} portal\n * @return {?}\n */\n BasePortalHost.prototype.attachTemplatePortal = function (portal) { };\n /**\n * @return {?}\n */\n BasePortalHost.prototype.detach = function () {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n };\n /**\n * @return {?}\n */\n BasePortalHost.prototype.dispose = function () {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n BasePortalHost.prototype.setDisposeFn = function (fn) {\n this._disposeFn = fn;\n };\n /**\n * @return {?}\n */\n BasePortalHost.prototype._invokeDisposeFn = function () {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n };\n return BasePortalHost;\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 */\nvar DomPortalHost = (function (_super) {\n __extends(DomPortalHost, _super);\n /**\n * @param {?} _hostDomElement\n * @param {?} _componentFactoryResolver\n * @param {?} _appRef\n * @param {?} _defaultInjector\n */\n function DomPortalHost(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {\n var _this = _super.call(this) || this;\n _this._hostDomElement = _hostDomElement;\n _this._componentFactoryResolver = _componentFactoryResolver;\n _this._appRef = _appRef;\n _this._defaultInjector = _defaultInjector;\n return _this;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @template T\n * @param {?} portal Portal to be attached\n * @return {?}\n */\n DomPortalHost.prototype.attachComponentPortal = function (portal) {\n var _this = this;\n var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n var /** @type {?} */ componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);\n this.setDisposeFn(function () { return componentRef.destroy(); });\n }\n else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(function () {\n _this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n return componentRef;\n };\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @template C\n * @param {?} portal Portal to be attached.\n * @return {?}\n */\n DomPortalHost.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n var /** @type {?} */ viewContainer = portal.viewContainerRef;\n var /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)\n // To move the view to the specified host element. We just re-append the existing root nodes.\n viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });\n this.setDisposeFn((function () {\n var /** @type {?} */ index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n };\n /**\n * Clears out a portal from the DOM.\n * @return {?}\n */\n DomPortalHost.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this._hostDomElement.parentNode != null) {\n this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n }\n };\n /**\n * Gets the root HTMLElement for an instantiated component.\n * @param {?} componentRef\n * @return {?}\n */\n DomPortalHost.prototype._getComponentRootNode = function (componentRef) {\n return (((componentRef.hostView)).rootNodes[0]);\n };\n return DomPortalHost;\n}(BasePortalHost));\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n *\n * Usage:\n * \n *
Hello {{name}}
\n * \n */\nvar TemplatePortalDirective = (function (_super) {\n __extends(TemplatePortalDirective, _super);\n /**\n * @param {?} templateRef\n * @param {?} viewContainerRef\n */\n function TemplatePortalDirective(templateRef, viewContainerRef) {\n return _super.call(this, templateRef, viewContainerRef) || this;\n }\n TemplatePortalDirective.decorators = [\n { type: Directive, args: [{\n selector: '[cdk-portal], [cdkPortal], [portal]',\n exportAs: 'cdkPortal',\n },] },\n ];\n /**\n * @nocollapse\n */\n TemplatePortalDirective.ctorParameters = function () { return [\n { type: TemplateRef, },\n { type: ViewContainerRef, },\n ]; };\n return TemplatePortalDirective;\n}(TemplatePortal));\n/**\n * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * \n */\nvar PortalHostDirective = (function (_super) {\n __extends(PortalHostDirective, _super);\n /**\n * @param {?} _componentFactoryResolver\n * @param {?} _viewContainerRef\n */\n function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {\n var _this = _super.call(this) || this;\n _this._componentFactoryResolver = _componentFactoryResolver;\n _this._viewContainerRef = _viewContainerRef;\n /**\n * The attached portal.\n */\n _this._portal = null;\n return _this;\n }\n Object.defineProperty(PortalHostDirective.prototype, \"_deprecatedPortal\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.portal; },\n /**\n * @param {?} v\n * @return {?}\n */\n set: function (v) { this.portal = v; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PortalHostDirective.prototype, \"portal\", {\n /**\n * Portal associated with the Portal host.\n * @return {?}\n */\n get: function () {\n return this._portal;\n },\n /**\n * @param {?} portal\n * @return {?}\n */\n set: function (portal) {\n if (this.hasAttached()) {\n _super.prototype.detach.call(this);\n }\n if (portal) {\n _super.prototype.attach.call(this, portal);\n }\n this._portal = portal;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n PortalHostDirective.prototype.ngOnDestroy = function () {\n _super.prototype.dispose.call(this);\n this._portal = null;\n };\n /**\n * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.\n *\n * @template T\n * @param {?} portal Portal to be attached to the portal host.\n * @return {?}\n */\n PortalHostDirective.prototype.attachComponentPortal = function (portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalHost.\n var /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n var /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);\n _super.prototype.setDisposeFn.call(this, function () { return ref.destroy(); });\n this._portal = portal;\n return ref;\n };\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @template C\n * @param {?} portal Portal to be attached.\n * @return {?}\n */\n PortalHostDirective.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n portal.setAttachedHost(this);\n var /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });\n this._portal = portal;\n return viewRef;\n };\n PortalHostDirective.decorators = [\n { type: Directive, args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost']\n },] },\n ];\n /**\n * @nocollapse\n */\n PortalHostDirective.ctorParameters = function () { return [\n { type: ComponentFactoryResolver, },\n { type: ViewContainerRef, },\n ]; };\n PortalHostDirective.propDecorators = {\n '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],\n };\n return PortalHostDirective;\n}(BasePortalHost));\nvar PortalModule = (function () {\n function PortalModule() {\n }\n PortalModule.decorators = [\n { type: NgModule, args: [{\n exports: [TemplatePortalDirective, PortalHostDirective],\n declarations: [TemplatePortalDirective, PortalHostDirective],\n },] },\n ];\n /**\n * @nocollapse\n */\n PortalModule.ctorParameters = function () { return []; };\n return PortalModule;\n}());\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * \\@docs-private\n */\nvar PortalInjector = (function () {\n /**\n * @param {?} _parentInjector\n * @param {?} _customTokens\n */\n function PortalInjector(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n /**\n * @param {?} token\n * @param {?=} notFoundValue\n * @return {?}\n */\n PortalInjector.prototype.get = function (token, notFoundValue) {\n var /** @type {?} */ value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n };\n return PortalInjector;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector };\n//# sourceMappingURL=portal.es5.js.map\n"],"names":["Directive","TemplateRef","ViewContainerRef","ComponentFactoryResolver","Input","NgModule"],"mappings":"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"}