aboutsummaryrefslogtreecommitdiffstats
path: root/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts')
-rw-r--r--deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts103
1 files changed, 0 insertions, 103 deletions
diff --git a/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts b/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts
deleted file mode 100644
index 37f5b171..00000000
--- a/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/paletx/plx-modal/modal-stack.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import {
- ApplicationRef,
- Injectable,
- Injector,
- ReflectiveInjector,
- ComponentFactory,
- ComponentFactoryResolver,
- ComponentRef,
- TemplateRef
-} from '@angular/core';
-
-import {ContentRef} from '../util/popup';
-import {isDefined, isString} from '../util/util';
-
-import {PlxModalBackdrop} from './modal-backdrop';
-import {PlxModalWindow} from './modal-window';
-import {PlxActiveModal, PlxModalRef} from './modal-ref';
-
-@Injectable()
-export class PlxModalStack {
- private _backdropFactory: ComponentFactory<PlxModalBackdrop>;
- private _windowFactory: ComponentFactory<PlxModalWindow>;
-
- constructor(private _applicationRef: ApplicationRef, private _injector: Injector,
- private _componentFactoryResolver: ComponentFactoryResolver) {
- this._backdropFactory = _componentFactoryResolver.resolveComponentFactory(PlxModalBackdrop);
- this._windowFactory = _componentFactoryResolver.resolveComponentFactory(PlxModalWindow);
- }
-
- public open(moduleCFR: ComponentFactoryResolver, contentInjector: Injector, content: any, options): PlxModalRef {
- const containerSelector = options.container || 'body';
- const containerEl = document.querySelector(containerSelector);// 默认获取到body的DOM
-
- if (!containerEl) {
- throw new Error(`The specified modal container "${containerSelector}" was not found in the DOM.`);
- }
-
- const activeModal = new PlxActiveModal();
- const contentRef = this._getContentRef(moduleCFR, contentInjector, content, activeModal);
-
- let windowCmptRef: ComponentRef<PlxModalWindow>;
- let backdropCmptRef: ComponentRef<PlxModalBackdrop>;
- let ngbModalRef: PlxModalRef;
-
-
- if (options.backdrop !== false) {
- backdropCmptRef = this._backdropFactory.create(this._injector);
- this._applicationRef.attachView(backdropCmptRef.hostView);
- containerEl.appendChild(backdropCmptRef.location.nativeElement);
- }
- windowCmptRef = this._windowFactory.create(this._injector, contentRef.nodes);
-
- /**
- * Attaches a view so that it will be dirty checked.
- * The view will be automatically detached when it is destroyed.
- * This will throw if the view is already attached to a ViewContainer.
- */
- this._applicationRef.attachView(windowCmptRef.hostView);
-
- containerEl.appendChild(windowCmptRef.location.nativeElement);
-
- ngbModalRef = new PlxModalRef(windowCmptRef, contentRef, backdropCmptRef);
-
- activeModal.close = (result: any) => {
- ngbModalRef.close(result);
- };
- activeModal.dismiss = (reason: any) => {
- ngbModalRef.dismiss(reason);
- };
-
- this._applyWindowOptions(windowCmptRef.instance, options);
-
- return ngbModalRef;
- }
-
- private _applyWindowOptions(windowInstance: PlxModalWindow, options: Object): void {
- ['backdrop', 'keyboard', 'size', 'windowClass'].forEach((optionName: string) => {
- if (isDefined(options[optionName])) {
- windowInstance[optionName] = options[optionName];
- }
- });
- }
-
- private _getContentRef(moduleCFR: ComponentFactoryResolver, contentInjector: Injector, content: any,
- context: PlxActiveModal): ContentRef {
- if (!content) {
- return new ContentRef([]);
- } else if (content instanceof TemplateRef) {
- const viewRef = content.createEmbeddedView(context);
- this._applicationRef.attachView(viewRef);
- return new ContentRef([viewRef.rootNodes], viewRef);
- } else if (isString(content)) {
- return new ContentRef([[document.createTextNode(`${content}`)]]);
- } else {
- const contentCmptFactory = moduleCFR.resolveComponentFactory(content);
- const modalContentInjector =
- ReflectiveInjector.resolveAndCreate([{provide: PlxActiveModal, useValue: context}], contentInjector);
- const componentRef = contentCmptFactory.create(modalContentInjector);
- this._applicationRef.attachView(componentRef.hostView);
- return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);
- }
- }
-}