UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

43 lines 5.88 kB
import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal'; import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, } from '@angular/core'; import { HelpDocumentComponent, TOKEN_HELP_DOC_DATA } from './component'; import * as i0 from "@angular/core"; export class HelpDocumentService { constructor(rootInjector, cfr, appRef) { this.rootInjector = rootInjector; this.cfr = cfr; this.appRef = appRef; this.portalHost = new DomPortalOutlet(document.body, this.cfr, this.appRef, this.rootInjector); } open(context) { if (this.portalHost.hasAttached) { this.portalHost.detach(); this.portal = null; } const injector = Injector.create({ providers: [ { provide: TOKEN_HELP_DOC_DATA, useValue: context, }, ], parent: this.rootInjector, }); this.portal = new ComponentPortal(HelpDocumentComponent, null, injector); const ref = this.portalHost.attach(this.portal); this.subscription = ref.instance.close.subscribe(() => { this.portalHost.detach(); this.portal = null; this.subscription.unsubscribe(); }); } static { this.ɵfac = function HelpDocumentService_Factory(t) { return new (t || HelpDocumentService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: HelpDocumentService, factory: HelpDocumentService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HelpDocumentService, [{ type: Injectable, args: [{ providedIn: 'root', }] }], () => [{ type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9oZWxwLWRvY3VtZW50L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNtQixZQUFzQixFQUN0QixHQUE2QixFQUM3QixNQUFzQjtRQUZ0QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUd6QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQzlCLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7SUFQQyxDQUFDO0lBWUosSUFBSSxDQUFDLE9BQTJDO1FBQzlDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsbUJBQW1CO29CQUM1QixRQUFRLEVBQUUsT0FBTztpQkFDbEI7YUFDRjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7b0ZBdkNVLG1CQUFtQjt1RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTs7aUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3RhYmxlLFxuICBJbmplY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSGVscERvY3VtZW50Q29tcG9uZW50LCBUT0tFTl9IRUxQX0RPQ19EQVRBIH0gZnJvbSAnLi9jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSGVscERvY3VtZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9vdEluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgKSB7fVxuXG4gIHBvcnRhbEhvc3QgPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgIGRvY3VtZW50LmJvZHksXG4gICAgdGhpcy5jZnIsXG4gICAgdGhpcy5hcHBSZWYsXG4gICAgdGhpcy5yb290SW5qZWN0b3IsXG4gICk7XG5cbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPEhlbHBEb2N1bWVudENvbXBvbmVudD47XG5cbiAgb3Blbihjb250ZXh0PzogeyB0aXRsZTogc3RyaW5nOyByYXdVcmw6IHN0cmluZyB9KSB7XG4gICAgaWYgKHRoaXMucG9ydGFsSG9zdC5oYXNBdHRhY2hlZCkge1xuICAgICAgdGhpcy5wb3J0YWxIb3N0LmRldGFjaCgpO1xuICAgICAgdGhpcy5wb3J0YWwgPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVE9LRU5fSEVMUF9ET0NfREFUQSxcbiAgICAgICAgICB1c2VWYWx1ZTogY29udGV4dCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwYXJlbnQ6IHRoaXMucm9vdEluamVjdG9yLFxuICAgIH0pO1xuICAgIHRoaXMucG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChIZWxwRG9jdW1lbnRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICBjb25zdCByZWYgPSB0aGlzLnBvcnRhbEhvc3QuYXR0YWNoKHRoaXMucG9ydGFsKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHJlZi5pbnN0YW5jZS5jbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5wb3J0YWxIb3N0LmRldGFjaCgpO1xuICAgICAgdGhpcy5wb3J0YWwgPSBudWxsO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19