UNPKG

ng-devui

Version:

DevUI components based on Angular

87 lines 14.5 kB
import { DOCUMENT } from '@angular/common'; import { ComponentFactoryResolver, Inject, Injectable, RendererFactory2 } from '@angular/core'; import { OverlayContainerRef } from 'ng-devui/overlay-container'; import { DevConfigService } from 'ng-devui/utils'; import { assign, isUndefined } from 'lodash-es'; import { ModalComponent } from './modal.component'; import * as i0 from "@angular/core"; import * as i1 from "ng-devui/overlay-container"; import * as i2 from "ng-devui/utils"; export class ModalService { constructor(componentFactoryResolver, overlayContainerRef, rendererFactory, devConfigService, doc) { this.componentFactoryResolver = componentFactoryResolver; this.overlayContainerRef = overlayContainerRef; this.rendererFactory = rendererFactory; this.devConfigService = devConfigService; this.doc = doc; this.renderer = this.rendererFactory.createRenderer(null, null); this.document = this.doc; } open({ id, component, injector, width, zIndex, backDropZIndex, data, handler, showAnimation, /** * @deprecated */ showAnimate, backdropCloseable, componentFactoryResolver, onClose, beforeHidden, placement = 'center', offsetX, offsetY, bodyScrollable, contentTemplate, escapable = true, cssClass }) { const finalComponentFactoryResolver = componentFactoryResolver || this.componentFactoryResolver; const modalRef = this.overlayContainerRef.createComponent(finalComponentFactoryResolver.resolveComponentFactory(ModalComponent), injector); const componentConfig = this.devConfigService.getConfigForComponent('modal') || {}; const showAnimationApiConfig = this.devConfigService.getConfigForApi('showAnimation'); const bodyScrollableApiConfig = this.devConfigService.getConfigForApi('bodyScrollable'); showAnimation = showAnimation ?? showAnimate ?? componentConfig.showAnimation ?? showAnimationApiConfig; bodyScrollable = bodyScrollable ?? componentConfig.bodyScrollable ?? bodyScrollableApiConfig ?? true; assign(modalRef.instance, { id, width, zIndex, backDropZIndex, showAnimation, beforeHidden, backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable, placement, offsetX, offsetY, bodyScrollable, contentTemplate, escapable, cssClass }); let modalContentInstance; if (component) { modalContentInstance = modalRef.instance.modalContainerHost.viewContainerRef .createComponent(finalComponentFactoryResolver.resolveComponentFactory(component), 0, injector); assign(modalContentInstance.instance, { data, handler }); } modalRef.instance.onHidden = () => { if (modalRef.instance.documentOverFlow) { this.renderer.removeStyle(this.document.body, 'top'); this.renderer.removeStyle(this.document.body, 'left'); this.renderer.removeClass(this.document.body, 'devui-body-scrollblock'); this.renderer.removeClass(this.document.body, 'devui-body-overflow-hidden'); this.document.documentElement.scrollTop = modalRef.instance.scrollTop; this.document.body.scrollTop = modalRef.instance.scrollTop; this.document.documentElement.scrollLeft = modalRef.instance.scrollLeft; this.document.body.scrollLeft = modalRef.instance.scrollLeft; } if (onClose) { onClose(); } setTimeout(() => { modalRef.hostView.destroy(); }); }; modalRef.instance.show(); return { modalInstance: modalRef.instance, modalContentInstance: modalContentInstance ? modalContentInstance.instance : null }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.OverlayContainerRef }, { token: i0.RendererFactory2 }, { token: i2.DevConfigService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i1.OverlayContainerRef }, { type: i0.RendererFactory2 }, { type: i2.DevConfigService }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldnVpL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsRUFDQyxnQkFBZ0IsRUFDNUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBSW5ELE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQW9CLHdCQUFrRCxFQUNsRCxtQkFBd0MsRUFBVSxlQUFpQyxFQUNuRixnQkFBa0MsRUFDaEIsR0FBUTtRQUgxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDbkYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQ0gsRUFBRSxFQUNGLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixjQUFjLEVBQ2QsSUFBSSxFQUNK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QUFDLFNBQVMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDL0QsQ0FBQztZQUNELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV6QixPQUFPO1lBQ0wsYUFBYSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQ2hDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDbEYsQ0FBQztJQUNKLENBQUM7K0dBbEdVLFlBQVksNkpBT0gsUUFBUTttSEFQakIsWUFBWTs7NEZBQVosWUFBWTtrQkFEeEIsVUFBVTs7MEJBUUksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJSZWYgfSBmcm9tICduZy1kZXZ1aS9vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBEZXZDb25maWdTZXJ2aWNlIH0gZnJvbSAnbmctZGV2dWkvdXRpbHMnO1xuaW1wb3J0IHsgYXNzaWduLCBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IElNb2RhbE9wdGlvbnMgfSBmcm9tICcuL21vZGFsLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lclJlZiwgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGV2Q29uZmlnU2VydmljZTogRGV2Q29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2M6IGFueSkge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gdGhpcy5kb2M7XG4gIH1cblxuICBvcGVuKHtcbiAgICBpZCxcbiAgICBjb21wb25lbnQsXG4gICAgaW5qZWN0b3IsXG4gICAgd2lkdGgsXG4gICAgekluZGV4LFxuICAgIGJhY2tEcm9wWkluZGV4LFxuICAgIGRhdGEsXG4gICAgaGFuZGxlcixcbiAgICBzaG93QW5pbWF0aW9uLFxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgc2hvd0FuaW1hdGUsXG4gICAgYmFja2Ryb3BDbG9zZWFibGUsXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIG9uQ2xvc2UsXG4gICAgYmVmb3JlSGlkZGVuLFxuICAgIHBsYWNlbWVudCA9ICdjZW50ZXInLFxuICAgIG9mZnNldFgsXG4gICAgb2Zmc2V0WSxcbiAgICBib2R5U2Nyb2xsYWJsZSxcbiAgICBjb250ZW50VGVtcGxhdGUsXG4gICAgZXNjYXBhYmxlID0gdHJ1ZSxcbiAgICBjc3NDbGFzc1xuICB9OiBJTW9kYWxPcHRpb25zKSB7XG4gICAgY29uc3QgZmluYWxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfHwgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm92ZXJsYXlDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgZmluYWxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTW9kYWxDb21wb25lbnQpLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuICAgIGNvbnN0IGNvbXBvbmVudENvbmZpZyA9IHRoaXMuZGV2Q29uZmlnU2VydmljZS5nZXRDb25maWdGb3JDb21wb25lbnQoJ21vZGFsJykgfHwge307XG4gICAgY29uc3Qgc2hvd0FuaW1hdGlvbkFwaUNvbmZpZyA9IHRoaXMuZGV2Q29uZmlnU2VydmljZS5nZXRDb25maWdGb3JBcGkoJ3Nob3dBbmltYXRpb24nKTtcbiAgICBjb25zdCBib2R5U2Nyb2xsYWJsZUFwaUNvbmZpZyA9IHRoaXMuZGV2Q29uZmlnU2VydmljZS5nZXRDb25maWdGb3JBcGkoJ2JvZHlTY3JvbGxhYmxlJyk7XG4gICAgc2hvd0FuaW1hdGlvbiA9IHNob3dBbmltYXRpb24gPz8gc2hvd0FuaW1hdGUgPz8gY29tcG9uZW50Q29uZmlnLnNob3dBbmltYXRpb24gPz8gc2hvd0FuaW1hdGlvbkFwaUNvbmZpZztcbiAgICBib2R5U2Nyb2xsYWJsZSA9IGJvZHlTY3JvbGxhYmxlID8/IGNvbXBvbmVudENvbmZpZy5ib2R5U2Nyb2xsYWJsZSA/PyBib2R5U2Nyb2xsYWJsZUFwaUNvbmZpZyA/PyB0cnVlO1xuXG4gICAgYXNzaWduKG1vZGFsUmVmLmluc3RhbmNlLCB7XG4gICAgICBpZCxcbiAgICAgIHdpZHRoLFxuICAgICAgekluZGV4LFxuICAgICAgYmFja0Ryb3BaSW5kZXgsXG4gICAgICBzaG93QW5pbWF0aW9uLFxuICAgICAgYmVmb3JlSGlkZGVuLFxuICAgICAgYmFja2Ryb3BDbG9zZWFibGU6IGlzVW5kZWZpbmVkKGJhY2tkcm9wQ2xvc2VhYmxlKSA/IHRydWUgOiBiYWNrZHJvcENsb3NlYWJsZSxcbiAgICAgIHBsYWNlbWVudCxcbiAgICAgIG9mZnNldFgsXG4gICAgICBvZmZzZXRZLFxuICAgICAgYm9keVNjcm9sbGFibGUsXG4gICAgICBjb250ZW50VGVtcGxhdGUsXG4gICAgICBlc2NhcGFibGUsXG4gICAgICBjc3NDbGFzc1xuICAgIH0pO1xuXG4gICAgbGV0IG1vZGFsQ29udGVudEluc3RhbmNlO1xuICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgIG1vZGFsQ29udGVudEluc3RhbmNlID0gbW9kYWxSZWYuaW5zdGFuY2UubW9kYWxDb250YWluZXJIb3N0LnZpZXdDb250YWluZXJSZWZcbiAgICAgICAgLmNyZWF0ZUNvbXBvbmVudChmaW5hbENvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpLCAwLCBpbmplY3Rvcik7XG4gICAgICBhc3NpZ24obW9kYWxDb250ZW50SW5zdGFuY2UuaW5zdGFuY2UsIHsgZGF0YSwgaGFuZGxlciB9KTtcbiAgICB9XG5cbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5vbkhpZGRlbiA9ICgpID0+IHtcbiAgICAgIGlmIChtb2RhbFJlZi5pbnN0YW5jZS5kb2N1bWVudE92ZXJGbG93KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAndG9wJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnbGVmdCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2RldnVpLWJvZHktc2Nyb2xsYmxvY2snKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdkZXZ1aS1ib2R5LW92ZXJmbG93LWhpZGRlbicpO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSBtb2RhbFJlZi5pbnN0YW5jZS5zY3JvbGxUb3A7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBtb2RhbFJlZi5pbnN0YW5jZS5zY3JvbGxUb3A7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgPSBtb2RhbFJlZi5pbnN0YW5jZS5zY3JvbGxMZWZ0O1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCA9IG1vZGFsUmVmLmluc3RhbmNlLnNjcm9sbExlZnQ7XG4gICAgICB9XG4gICAgICBpZiAob25DbG9zZSkge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbW9kYWxSZWYuaG9zdFZpZXcuZGVzdHJveSgpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIG1vZGFsUmVmLmluc3RhbmNlLnNob3coKTtcblxuICAgIHJldHVybiB7XG4gICAgICBtb2RhbEluc3RhbmNlOiBtb2RhbFJlZi5pbnN0YW5jZSxcbiAgICAgIG1vZGFsQ29udGVudEluc3RhbmNlOiBtb2RhbENvbnRlbnRJbnN0YW5jZSA/IG1vZGFsQ29udGVudEluc3RhbmNlLmluc3RhbmNlIDogbnVsbFxuICAgIH07XG4gIH1cbn1cbiJdfQ==