@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
84 lines • 7.95 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: modal.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, ComponentFactoryResolver, } from '@angular/core';
import { ModalComponent } from './modal.component';
import { OverlayContainerRef } from '@duoduo-oba/ng-devui/overlay-container';
import { assign, isUndefined } from 'lodash-es';
export class ModalService {
/**
* @param {?} componentFactoryResolver
* @param {?} overlayContainerRef
*/
constructor(componentFactoryResolver, overlayContainerRef) {
this.componentFactoryResolver = componentFactoryResolver;
this.overlayContainerRef = overlayContainerRef;
}
/**
* @param {?} __0
* @return {?}
*/
open({ id, component, injector, width, data, handler, showAnimate, backdropCloseable, componentFactoryResolver, onClose, beforeHidden, placement = 'center', offsetX, offsetY, bodyScrollable }) {
/** @type {?} */
const finalComponentFactoryResolver = componentFactoryResolver || this.componentFactoryResolver;
/** @type {?} */
const modalRef = this.overlayContainerRef.createComponent(finalComponentFactoryResolver.resolveComponentFactory(ModalComponent), injector);
assign(modalRef.instance, {
id,
width,
showAnimate,
beforeHidden,
backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,
placement,
offsetX,
offsetY,
bodyScrollable
});
/** @type {?} */
const modalContentInstance = modalRef.instance.modalContainerHost.viewContainerRef
.createComponent(finalComponentFactoryResolver.resolveComponentFactory(component), 0, injector);
assign(modalContentInstance.instance, { data, handler });
modalRef.instance.onHidden = (/**
* @return {?}
*/
() => {
if (onClose) {
onClose();
}
setTimeout((/**
* @return {?}
*/
() => {
modalRef.hostView.destroy();
}));
});
modalRef.instance.show();
return {
modalInstance: modalRef.instance,
modalContentInstance: modalContentInstance.instance
};
}
}
ModalService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ModalService.ctorParameters = () => [
{ type: ComponentFactoryResolver },
{ type: OverlayContainerRef }
];
if (false) {
/**
* @type {?}
* @private
*/
ModalService.prototype.componentFactoryResolver;
/**
* @type {?}
* @private
*/
ModalService.prototype.overlayContainerRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL21vZGFsLyIsInNvdXJjZXMiOlsibW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysd0JBQXdCLEdBRXpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUk5QyxNQUFNLE9BQU8sWUFBWTs7Ozs7SUFDdkIsWUFBb0Isd0JBQWtELEVBQzVELG1CQUF3QztRQUQ5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQzVELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDbEQsQ0FBQzs7Ozs7SUFFRCxJQUFJLENBQUMsRUFDSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxFQUNKLE9BQU8sRUFDUCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsWUFBWSxFQUNaLFNBQVMsR0FBRyxRQUFRLEVBQ3BCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsY0FBYyxFQUNBOztjQUNSLDZCQUE2QixHQUFHLHdCQUF3QixJQUFJLElBQUksQ0FBQyx3QkFBd0I7O2NBRXpGLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUN2RCw2QkFBNkIsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsRUFDckUsUUFBUSxDQUNUO1FBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsRUFBRTtZQUNGLEtBQUs7WUFDTCxXQUFXO1lBQ1gsWUFBWTtZQUNaLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtZQUM1RSxTQUFTO1lBQ1QsT0FBTztZQUNQLE9BQU87WUFDUCxjQUFjO1NBQ2YsQ0FBQyxDQUFDOztjQUVHLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCO2FBQy9FLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ2pHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV6RCxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVE7OztRQUFHLEdBQUcsRUFBRTtZQUNoQyxJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsVUFBVTs7O1lBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLENBQUEsQ0FBQztRQUVGLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFekIsT0FBTztZQUNMLGFBQWEsRUFBRSxRQUFRLENBQUMsUUFBUTtZQUNoQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRO1NBQ3BELENBQUM7SUFDSixDQUFDOzs7WUE1REYsVUFBVTs7OztZQVJULHdCQUF3QjtZQUlqQixtQkFBbUI7Ozs7Ozs7SUFNZCxnREFBMEQ7Ozs7O0lBQ3BFLDJDQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSW5qZWN0YWJsZSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lclJlZiB9IGZyb20gJ25nLWRldnVpL292ZXJsYXktY29udGFpbmVyJztcclxuaW1wb3J0IHthc3NpZ24sIGlzVW5kZWZpbmVkfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBJTW9kYWxPcHRpb25zIH0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIG92ZXJsYXlDb250YWluZXJSZWY6IE92ZXJsYXlDb250YWluZXJSZWYpIHtcclxuICB9XHJcblxyXG4gIG9wZW4oe1xyXG4gICAgaWQsXHJcbiAgICBjb21wb25lbnQsXHJcbiAgICBpbmplY3RvcixcclxuICAgIHdpZHRoLFxyXG4gICAgZGF0YSxcclxuICAgIGhhbmRsZXIsXHJcbiAgICBzaG93QW5pbWF0ZSxcclxuICAgIGJhY2tkcm9wQ2xvc2VhYmxlLFxyXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgb25DbG9zZSxcclxuICAgIGJlZm9yZUhpZGRlbixcclxuICAgIHBsYWNlbWVudCA9ICdjZW50ZXInLFxyXG4gICAgb2Zmc2V0WCxcclxuICAgIG9mZnNldFksXHJcbiAgICBib2R5U2Nyb2xsYWJsZVxyXG4gIH06IElNb2RhbE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGZpbmFsQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHx8IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xyXG5cclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5vdmVybGF5Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcclxuICAgICAgZmluYWxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTW9kYWxDb21wb25lbnQpLFxyXG4gICAgICBpbmplY3RvclxyXG4gICAgKTtcclxuICAgIGFzc2lnbihtb2RhbFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBpZCxcclxuICAgICAgd2lkdGgsXHJcbiAgICAgIHNob3dBbmltYXRlLFxyXG4gICAgICBiZWZvcmVIaWRkZW4sXHJcbiAgICAgIGJhY2tkcm9wQ2xvc2VhYmxlOiBpc1VuZGVmaW5lZChiYWNrZHJvcENsb3NlYWJsZSkgPyB0cnVlIDogYmFja2Ryb3BDbG9zZWFibGUsXHJcbiAgICAgIHBsYWNlbWVudCxcclxuICAgICAgb2Zmc2V0WCxcclxuICAgICAgb2Zmc2V0WSxcclxuICAgICAgYm9keVNjcm9sbGFibGVcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IG1vZGFsQ29udGVudEluc3RhbmNlID0gbW9kYWxSZWYuaW5zdGFuY2UubW9kYWxDb250YWluZXJIb3N0LnZpZXdDb250YWluZXJSZWZcclxuICAgICAgLmNyZWF0ZUNvbXBvbmVudChmaW5hbENvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpLCAwLCBpbmplY3Rvcik7XHJcbiAgICBhc3NpZ24obW9kYWxDb250ZW50SW5zdGFuY2UuaW5zdGFuY2UsIHsgZGF0YSwgaGFuZGxlciB9KTtcclxuXHJcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5vbkhpZGRlbiA9ICgpID0+IHtcclxuICAgICAgaWYgKG9uQ2xvc2UpIHtcclxuICAgICAgICBvbkNsb3NlKCk7XHJcbiAgICAgIH1cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgbW9kYWxSZWYuaG9zdFZpZXcuZGVzdHJveSgpO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kYWxSZWYuaW5zdGFuY2Uuc2hvdygpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1vZGFsSW5zdGFuY2U6IG1vZGFsUmVmLmluc3RhbmNlLFxyXG4gICAgICBtb2RhbENvbnRlbnRJbnN0YW5jZTogbW9kYWxDb250ZW50SW5zdGFuY2UuaW5zdGFuY2VcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==