UNPKG

ngx-feedback

Version:

Angular Feedback Library

67 lines 5.36 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector } from '@angular/core'; import * as i0 from "@angular/core"; /** * @template T */ export class ComponentLoaderService { /** * @param {?} componentFactoryResolver * @param {?} appRef * @param {?} injector */ constructor(componentFactoryResolver, appRef, injector) { this.componentFactoryResolver = componentFactoryResolver; this.appRef = appRef; this.injector = injector; } /** * @param {?} componentType * @return {?} */ load(componentType) { // 1. Create a component reference from the component /** @type {?} */ const ref = this.componentFactoryResolver.resolveComponentFactory(componentType).create(this.injector); // 2. Attach component to the appRef so that it's inside the ng component tree this.appRef.attachView(ref.hostView); // 3. Get DOM element from component /** @type {?} */ const domElem = (/** @type {?} */ (((/** @type {?} */ (ref.hostView))).rootNodes[0])); // 4. Append DOM element to the body document.body.appendChild(domElem); ref.changeDetectorRef.detectChanges(); return ref; } } ComponentLoaderService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ComponentLoaderService.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ApplicationRef }, { type: Injector } ]; /** @nocollapse */ ComponentLoaderService.ngInjectableDef = i0.defineInjectable({ factory: function ComponentLoaderService_Factory() { return new ComponentLoaderService(i0.inject(i0.ComponentFactoryResolver), i0.inject(i0.ApplicationRef), i0.inject(i0.INJECTOR)); }, token: ComponentLoaderService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ ComponentLoaderService.prototype.componentFactoryResolver; /** * @type {?} * @private */ ComponentLoaderService.prototype.appRef; /** * @type {?} * @private */ ComponentLoaderService.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWZlZWRiYWNrLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNILFVBQVUsRUFHVix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLFFBQVEsRUFFWCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHdkIsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7O0lBQy9CLFlBQ3FCLHdCQUFrRCxFQUMzRCxNQUFzQixFQUN0QixRQUFrQjtRQUZULDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDM0QsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMzQixDQUFDOzs7OztJQUNKLElBQUksQ0FBQyxhQUFzQjs7O2NBRWpCLEdBQUcsR0FBb0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZILDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7OztjQUcvQixPQUFPLEdBQUcsbUJBQUEsQ0FBQyxtQkFBQSxHQUFHLENBQUMsUUFBUSxFQUF3QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFlO1FBRWxGLG9DQUFvQztRQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdEMsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzs7WUF0QkosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztZQU45Qix3QkFBd0I7WUFDeEIsY0FBYztZQUNkLFFBQVE7Ozs7Ozs7O0lBT0osMERBQW1FOzs7OztJQUNuRSx3Q0FBOEI7Ozs7O0lBQzlCLDBDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBJbmplY3RhYmxlLFxyXG4gICAgVHlwZSxcclxuICAgIENvbXBvbmVudFJlZixcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBFbWJlZGRlZFZpZXdSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXJTZXJ2aWNlPFQ+IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgICApIHt9XHJcbiAgICBsb2FkKGNvbXBvbmVudFR5cGU6IFR5cGU8VD4pOiBDb21wb25lbnRSZWY8VD4ge1xyXG4gICAgICAgIC8vIDEuIENyZWF0ZSBhIGNvbXBvbmVudCByZWZlcmVuY2UgZnJvbSB0aGUgY29tcG9uZW50XHJcbiAgICAgICAgY29uc3QgcmVmOiBDb21wb25lbnRSZWY8VD4gPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlKS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgICAgIC8vIDIuIEF0dGFjaCBjb21wb25lbnQgdG8gdGhlIGFwcFJlZiBzbyB0aGF0IGl0J3MgaW5zaWRlIHRoZSBuZyBjb21wb25lbnQgdHJlZVxyXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcocmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgICAgLy8gMy4gR2V0IERPTSBlbGVtZW50IGZyb20gY29tcG9uZW50XHJcbiAgICAgICAgY29uc3QgZG9tRWxlbSA9IChyZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgLy8gNC4gQXBwZW5kIERPTSBlbGVtZW50IHRvIHRoZSBib2R5XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgICAgICByZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVmO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==