ngx-pluto
Version:
133 lines • 10.8 kB
JavaScript
/**
* @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==