UNPKG

ngx-pluto

Version:
133 lines 10.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector } from '@angular/core'; import { NpDialogModule } from './dialog.module'; import { NpDialog } from './dialog.component'; import { DialogConfig } from './dialog-config'; import { DialogInjector } from './dialog-injector'; import { DialogRef } from './dialog-ref'; import * as i0 from "@angular/core"; import * as i1 from "./dialog.module"; /** * @ignore */ var DialogService = /** @class */ (function () { function DialogService(componentFactoryResolver, appRef, injector) { this.componentFactoryResolver = componentFactoryResolver; this.appRef = appRef; this.injector = injector; } /** * @param {?} componentType * @param {?} config * @return {?} */ DialogService.prototype.open = /** * @param {?} componentType * @param {?} config * @return {?} */ function (componentType, config) { /** @type {?} */ var dialogRef = this.appendDialogComponentToBody(config); this.dialogComponentRef.instance.childComponentType = componentType; return dialogRef; }; /** * @private * @param {?} config * @return {?} */ DialogService.prototype.appendDialogComponentToBody = /** * @private * @param {?} config * @return {?} */ function (config) { var _this = this; /** @type {?} */ var map = new WeakMap(); map.set(DialogConfig, config); /** @type {?} */ var dialogRef = new DialogRef(); map.set(DialogRef, dialogRef); /** @type {?} */ var componentFactory = this.componentFactoryResolver.resolveComponentFactory(NpDialog); /** @type {?} */ var componentRef = componentFactory.create(new DialogInjector(this.injector, map)); this.appRef.attachView(componentRef.hostView); /** @type {?} */ var domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))).rootNodes[0])); document.body.appendChild(domElem); /** @type {?} */ var sub = dialogRef.afterClosed.subscribe((/** * @return {?} */ function () { _this.removeDialogComponentFromBody(componentRef); sub.unsubscribe(); })); this.dialogComponentRef = componentRef; return dialogRef; }; // [KevinZhang]: Need to pass dialogComponentRef as parameter, because this service is providedIn DialogModule, // so only one instance in this module, thus we need to pass dialogComponentRef once we open a new dialog, // this will deal with a scenario for nested dialog close event // [KevinZhang]: Need to pass dialogComponentRef as parameter, because this service is providedIn DialogModule, // so only one instance in this module, thus we need to pass dialogComponentRef once we open a new dialog, // this will deal with a scenario for nested dialog close event /** * @private * @param {?} dialogComponentRef * @return {?} */ DialogService.prototype.removeDialogComponentFromBody = // [KevinZhang]: Need to pass dialogComponentRef as parameter, because this service is providedIn DialogModule, // so only one instance in this module, thus we need to pass dialogComponentRef once we open a new dialog, // this will deal with a scenario for nested dialog close event /** * @private * @param {?} dialogComponentRef * @return {?} */ function (dialogComponentRef) { this.appRef.detachView(dialogComponentRef.hostView); dialogComponentRef.destroy(); }; DialogService.decorators = [ { type: Injectable, args: [{ providedIn: NpDialogModule },] } ]; /** @nocollapse */ DialogService.ctorParameters = function () { return [ { type: ComponentFactoryResolver }, { type: ApplicationRef }, { type: Injector } ]; }; /** @nocollapse */ DialogService.ngInjectableDef = i0.defineInjectable({ factory: function DialogService_Factory() { return new DialogService(i0.inject(i0.ComponentFactoryResolver), i0.inject(i0.ApplicationRef), i0.inject(i0.INJECTOR)); }, token: DialogService, providedIn: i1.NpDialogModule }); return DialogService; }()); export { DialogService }; if (false) { /** @type {?} */ DialogService.prototype.dialogComponentRef; /** * @type {?} * @private */ DialogService.prototype.componentFactoryResolver; /** * @type {?} * @private */ DialogService.prototype.appRef; /** * @type {?} * @private */ DialogService.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtcGx1dG8vIiwic291cmNlcyI6WyJsaWIvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQix3QkFBd0IsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBS3pDO0lBTUUsdUJBQ1Usd0JBQWtELEVBQ2xELE1BQXNCLEVBQ3RCLFFBQWtCO1FBRmxCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN4QixDQUFDOzs7Ozs7SUFFRSw0QkFBSTs7Ozs7SUFBWCxVQUFZLGFBQXdCLEVBQUUsTUFBb0I7O1lBQ2xELFNBQVMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDO1FBRTFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDO1FBRXBFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Ozs7OztJQUVPLG1EQUEyQjs7Ozs7SUFBbkMsVUFBb0MsTUFBb0I7UUFBeEQsaUJBc0JDOztZQXJCTyxHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFDekIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7O1lBRXhCLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRTtRQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQzs7WUFFeEIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQzs7WUFDbEYsWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7WUFFeEMsT0FBTyxHQUFHLG1CQUFBLENBQUMsbUJBQUEsWUFBWSxDQUFDLFFBQVEsRUFBd0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBZTtRQUMzRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7WUFFN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUzs7O1FBQUM7WUFDMUMsS0FBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUM7UUFFRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDO1FBRXZDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCwrR0FBK0c7SUFDL0csMEdBQTBHO0lBQzFHLCtEQUErRDs7Ozs7Ozs7O0lBQ3ZELHFEQUE2Qjs7Ozs7Ozs7O0lBQXJDLFVBQXNDLGtCQUEwQztRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDOztnQkFsREYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxjQUFjO2lCQUMzQjs7OztnQkFaa0Msd0JBQXdCO2dCQUFFLGNBQWM7Z0JBQUUsUUFBUTs7O3dCQUFyRjtDQTZEQyxBQW5ERCxJQW1EQztTQWhEWSxhQUFhOzs7SUFDeEIsMkNBQTJDOzs7OztJQUd6QyxpREFBMEQ7Ozs7O0lBQzFELCtCQUE4Qjs7Ozs7SUFDOUIsaUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50UmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEFwcGxpY2F0aW9uUmVmLCBJbmplY3RvciwgRW1iZWRkZWRWaWV3UmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5wRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi9kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHsgTnBEaWFsb2cgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuL2RpYWxvZy1jb25maWcnO1xyXG5pbXBvcnQgeyBEaWFsb2dJbmplY3RvciB9IGZyb20gJy4vZGlhbG9nLWluamVjdG9yJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogTnBEaWFsb2dNb2R1bGVcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2Uge1xyXG4gIGRpYWxvZ0NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE5wRGlhbG9nPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgb3Blbihjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sIGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmFwcGVuZERpYWxvZ0NvbXBvbmVudFRvQm9keShjb25maWcpO1xyXG5cclxuICAgIHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmLmluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudFR5cGU7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kRGlhbG9nQ29tcG9uZW50VG9Cb2R5KGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xyXG4gICAgbWFwLnNldChEaWFsb2dDb25maWcsIGNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IERpYWxvZ1JlZigpO1xyXG4gICAgbWFwLnNldChEaWFsb2dSZWYsIGRpYWxvZ1JlZik7XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE5wRGlhbG9nKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKG5ldyBEaWFsb2dJbmplY3Rvcih0aGlzLmluamVjdG9yLCBtYXApKTtcclxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuXHJcbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmVEaWFsb2dDb21wb25lbnRGcm9tQm9keShjb21wb25lbnRSZWYpO1xyXG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xyXG5cclxuICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgfVxyXG5cclxuICAvLyBbS2V2aW5aaGFuZ106IE5lZWQgdG8gcGFzcyBkaWFsb2dDb21wb25lbnRSZWYgYXMgcGFyYW1ldGVyLCBiZWNhdXNlIHRoaXMgc2VydmljZSBpcyBwcm92aWRlZEluIERpYWxvZ01vZHVsZSxcclxuICAvLyBzbyBvbmx5IG9uZSBpbnN0YW5jZSBpbiB0aGlzIG1vZHVsZSwgdGh1cyB3ZSBuZWVkIHRvIHBhc3MgZGlhbG9nQ29tcG9uZW50UmVmIG9uY2Ugd2Ugb3BlbiBhIG5ldyBkaWFsb2csXHJcbiAgLy8gdGhpcyB3aWxsIGRlYWwgd2l0aCBhIHNjZW5hcmlvIGZvciBuZXN0ZWQgZGlhbG9nIGNsb3NlIGV2ZW50XHJcbiAgcHJpdmF0ZSByZW1vdmVEaWFsb2dDb21wb25lbnRGcm9tQm9keShkaWFsb2dDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxOcERpYWxvZz4pIHtcclxuICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoZGlhbG9nQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgIGRpYWxvZ0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==