UNPKG

@angular/cdk

Version:

Angular Material Component Development Kit

1 lines 37.8 kB
{"version":3,"file":"portal.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/portal/portal-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/portal/portal.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/portal/dom-portal-outlet.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/portal/portal-directives.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error(\n 'Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.',\n );\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError,\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n\n this._attachedHost = host;\n return <T>host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * List of DOM nodes that should be projected through `<ng-content>` of the attached component.\n */\n projectableNodes?: Node[][] | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null,\n projectableNodes?: Node[][] | null,\n ) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.projectableNodes = projectableNodes;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n public templateRef: TemplateRef<C>,\n /** Reference to the ViewContainer into which the template will be stamped out. */\n public viewContainerRef: ViewContainerRef,\n /** Contextual data to be passed in to the embedded view. */\n public context?: C,\n /** The injector to use for the embedded view. */\n public injector?: Injector,\n ) {\n super();\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n override attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n override detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nexport class DomPortal<T = HTMLElement> extends Portal<T> {\n /** DOM node hosting the portal's content. */\n readonly element: T;\n\n constructor(element: T | ElementRef<T>) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n\n/** A `PortalOutlet` is a space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n readonly attachDomPortal: null | ((portal: DomPortal) => any) = null;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n EnvironmentInjector,\n Injector,\n NgModuleRef,\n createComponent,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, DomPortal, TemplatePortal} from './portal';\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n */\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _appRef?: ApplicationRef,\n private _defaultInjector?: Injector,\n ) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n let componentRef: ComponentRef<T>;\n\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 const injector = portal.injector || portal.viewContainerRef.injector;\n const ngModuleRef = injector.get(NgModuleRef, null, {optional: true}) || undefined;\n\n componentRef = portal.viewContainerRef.createComponent(portal.component, {\n index: portal.viewContainerRef.length,\n injector,\n ngModuleRef,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n const appRef = this._appRef!;\n\n const elementInjector = portal.injector || this._defaultInjector || Injector.NULL;\n const environmentInjector = elementInjector.get(EnvironmentInjector, appRef.injector);\n componentRef = createComponent(portal.component, {\n elementInjector,\n environmentInjector,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (appRef.viewCount > 0) {\n appRef.detachView(componentRef.hostView);\n }\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.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n\n this._attachedPortal = portal;\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this.outletElement.ownerDocument.createComment('dom-portal');\n\n element.parentNode!.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n\n /**\n * Clears out a portal from the DOM.\n */\n override dispose(): void {\n super.dispose();\n this.outletElement.remove();\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n EventEmitter,\n NgModule,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n Input,\n inject,\n NgModuleRef,\n DOCUMENT,\n} from '@angular/core';\n\nimport {BasePortalOutlet, ComponentPortal, Portal, TemplatePortal, DomPortal} from './portal';\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@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(...args: unknown[]);\n\n constructor() {\n const templateRef = inject<TemplateRef<any>>(TemplateRef);\n const viewContainerRef = inject(ViewContainerRef);\n\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n private _moduleRef = inject(NgModuleRef, {optional: true});\n private _document = inject(DOCUMENT);\n private _viewContainerRef = inject(ViewContainerRef);\n\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n @Input('cdkPortalOutlet')\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null | undefined | '') {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal || null;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() readonly attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\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 PortalOutlet.\n const viewContainerRef =\n portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n\n const ref = viewContainerRef.createComponent(portal.component, {\n index: viewContainerRef.length,\n injector: portal.injector || viewContainerRef.injector,\n projectableNodes: portal.projectableNodes || undefined,\n ngModuleRef: this._moduleRef || undefined,\n });\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild((ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n\n portal.setAttachedHost(this);\n element.parentNode!.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode!.replaceChild(element, anchorNode);\n }\n });\n };\n\n /** Gets the root node of the portal outlet. */\n private _getRootNode(): HTMLElement {\n const nativeElement: Node = this._viewContainerRef.element.nativeElement;\n\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (\n nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode!\n ) as HTMLElement;\n }\n}\n\n@NgModule({\n imports: [CdkPortal, CdkPortalOutlet],\n exports: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\n"],"names":["throwNullPortalError","Error","throwPortalAlreadyAttachedError","throwPortalOutletAlreadyDisposedError","throwUnknownPortalTypeError","throwNullPortalOutletError","throwNoPortalAttachedError","Portal","_attachedHost","attach","host","ngDevMode","hasAttached","detach","isAttached","setAttachedHost","ComponentPortal","component","viewContainerRef","injector","projectableNodes","constructor","TemplatePortal","templateRef","context","origin","elementRef","undefined","DomPortal","element","ElementRef","nativeElement","BasePortalOutlet","_attachedPortal","_disposeFn","_isDisposed","portal","attachComponentPortal","attachTemplatePortal","attachDomPortal","_invokeDisposeFn","dispose","setDisposeFn","fn","DomPortalOutlet","outletElement","_appRef","_defaultInjector","componentRef","ngModuleRef","get","NgModuleRef","optional","createComponent","index","length","destroy","appRef","elementInjector","Injector","NULL","environmentInjector","EnvironmentInjector","attachView","hostView","viewCount","detachView","appendChild","_getComponentRootNode","viewContainer","viewRef","createEmbeddedView","rootNodes","forEach","rootNode","detectChanges","indexOf","remove","parentNode","anchorNode","ownerDocument","createComment","insertBefore","replaceChild","CdkPortal","inject","TemplateRef","ViewContainerRef","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","exportAs","usesInheritance","ngImport","decorators","args","CdkPortalOutlet","_moduleRef","_document","DOCUMENT","_viewContainerRef","_isInitialized","_attachedRef","attached","EventEmitter","attachedRef","ngOnInit","ngOnDestroy","ref","_getRootNode","emit","clear","nodeType","ELEMENT_NODE","inputs","outputs","Input","Output","PortalModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","type","exports","imports"],"mappings":"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"}