ngx-modialog-7
Version:
Modal / Dialog for Angular
83 lines • 6.38 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/providers/dom-modal-renderer.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ApplicationRef, Injector, Injectable } from '@angular/core';
import { createComponent } from '../framework/createComponent';
import { DialogRef } from '../models/dialog-ref';
import { ModalOverlay } from '../overlay/index';
export class DOMOverlayRenderer {
/**
* @param {?} appRef
* @param {?} injector
*/
constructor(appRef, injector) {
this.appRef = appRef;
this.injector = injector;
this.isDoc = !(typeof document === 'undefined' || !document);
}
/**
* @param {?} dialog
* @param {?} vcRef
* @param {?=} injector
* @return {?}
*/
render(dialog, vcRef, injector) {
if (!injector) {
injector = this.injector;
}
/** @type {?} */
const cmpRef = createComponent({
component: ModalOverlay,
vcRef,
injector: Injector.create({
providers: [
{ provide: DialogRef, useValue: dialog }
],
parent: injector
})
});
if (!vcRef) {
this.appRef.attachView(cmpRef.hostView);
// TODO: doesn't look like this is needed, explore. leaving now to be on the safe side.
dialog.onDestroy.subscribe((/**
* @return {?}
*/
() => this.appRef.detachView(cmpRef.hostView)));
}
if (vcRef && dialog.inElement) {
vcRef.element.nativeElement.appendChild(cmpRef.location.nativeElement);
}
else if (this.isDoc) {
document.body.appendChild(cmpRef.location.nativeElement);
}
return cmpRef;
}
}
DOMOverlayRenderer.decorators = [
{ type: Injectable }
];
/** @nocollapse */
DOMOverlayRenderer.ctorParameters = () => [
{ type: ApplicationRef },
{ type: Injector }
];
if (false) {
/**
* @type {?}
* @private
*/
DOMOverlayRenderer.prototype.isDoc;
/**
* @type {?}
* @private
*/
DOMOverlayRenderer.prototype.appRef;
/**
* @type {?}
* @private
*/
DOMOverlayRenderer.prototype.injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLW1vZGFsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1vZGlhbG9nLTcvIiwic291cmNlcyI6WyJsaWIvcHJvdmlkZXJzL2RvbS1tb2RhbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxjQUFjLEVBR2QsUUFBUSxFQUNSLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQWtCOzs7OztJQUk3QixZQUFvQixNQUFzQixFQUFVLFFBQWtCO1FBQWxELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUY5RCxVQUFLLEdBQVksQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBR3pFLENBQUM7Ozs7Ozs7SUFFRCxNQUFNLENBQUMsTUFBc0IsRUFBRSxLQUF1QixFQUFFLFFBQW1CO1FBQ3pFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUMxQjs7Y0FFSyxNQUFNLEdBQUcsZUFBZSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLEtBQUs7WUFDTCxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsU0FBUyxFQUFFO29CQUNULEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2lCQUN2QztnQkFDRCxNQUFNLEVBQUUsUUFBUTthQUNqQixDQUFDO1NBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFeEMsdUZBQXVGO1lBQ3ZGLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUzs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUM7U0FDM0U7UUFFRCxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7WUF0Q0YsVUFBVTs7OztZQVpULGNBQWM7WUFHZCxRQUFROzs7Ozs7O0lBWVIsbUNBQXlFOzs7OztJQUU3RCxvQ0FBOEI7Ozs7O0lBQUUsc0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0b3IsXG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2ZyYW1ld29yay9jcmVhdGVDb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1yZWYnO1xuaW1wb3J0IHsgT3ZlcmxheVJlbmRlcmVyIH0gZnJvbSAnLi4vbW9kZWxzL3Rva2Vucyc7XG5pbXBvcnQgeyBNb2RhbE92ZXJsYXkgfSBmcm9tICcuLi9vdmVybGF5L2luZGV4JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERPTU92ZXJsYXlSZW5kZXJlciBpbXBsZW1lbnRzIE92ZXJsYXlSZW5kZXJlciB7XG5cbiAgcHJpdmF0ZSBpc0RvYzogYm9vbGVhbiA9ICEodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhZG9jdW1lbnQpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIHJlbmRlcihkaWFsb2c6IERpYWxvZ1JlZjxhbnk+LCB2Y1JlZjogVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3I/OiBJbmplY3Rvcik6IENvbXBvbmVudFJlZjxNb2RhbE92ZXJsYXk+IHtcbiAgICBpZiAoIWluamVjdG9yKSB7XG4gICAgICBpbmplY3RvciA9IHRoaXMuaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgY29uc3QgY21wUmVmID0gY3JlYXRlQ29tcG9uZW50KHtcbiAgICAgIGNvbXBvbmVudDogTW9kYWxPdmVybGF5LFxuICAgICAgdmNSZWYsXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge3Byb3ZpZGU6IERpYWxvZ1JlZiwgdXNlVmFsdWU6IGRpYWxvZ31cbiAgICAgICAgXSxcbiAgICAgICAgcGFyZW50OiBpbmplY3RvclxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIGlmICghdmNSZWYpIHtcbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY21wUmVmLmhvc3RWaWV3KTtcblxuICAgICAgLy8gVE9ETzogZG9lc24ndCBsb29rIGxpa2UgdGhpcyBpcyBuZWVkZWQsIGV4cGxvcmUuIGxlYXZpbmcgbm93IHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuXG4gICAgICBkaWFsb2cub25EZXN0cm95LnN1YnNjcmliZSgoKSA9PiB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNtcFJlZi5ob3N0VmlldykpO1xuICAgIH1cblxuICAgIGlmICh2Y1JlZiAmJiBkaWFsb2cuaW5FbGVtZW50KSB7XG4gICAgICB2Y1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0RvYykge1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNtcFJlZjtcbiAgfVxufVxuXG4iXX0=