ngx-modialog-7
Version:
Modal / Dialog for Angular
181 lines • 12.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/overlay/overlay.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, Injector } from '@angular/core';
import { OverlayRenderer } from '../models/tokens';
import { DialogRefStack } from '../models/dialog-ref-stack';
import { vcRefStore } from '../models/vc-ref-store';
import { DialogRef } from '../models/dialog-ref';
/** @type {?} */
var _stack = new DialogRefStack();
var Overlay = /** @class */ (function () {
function Overlay(_modalRenderer, injector) {
this._modalRenderer = _modalRenderer;
this.injector = injector;
}
Object.defineProperty(Overlay.prototype, "stackLength", {
get: /**
* @return {?}
*/
function () {
return _stack.length;
},
enumerable: true,
configurable: true
});
/**
* Check if a given DialogRef is the top most ref in the stack.
* TODO: distinguish between body modal vs in element modal.
* @param dialogRef
*/
/**
* Check if a given DialogRef is the top most ref in the stack.
* TODO: distinguish between body modal vs in element modal.
* @param {?} dialogRef
* @return {?}
*/
Overlay.prototype.isTopMost = /**
* Check if a given DialogRef is the top most ref in the stack.
* TODO: distinguish between body modal vs in element modal.
* @param {?} dialogRef
* @return {?}
*/
function (dialogRef) {
return _stack.indexOf(dialogRef) === _stack.length - 1;
};
/**
* @param {?} dialogRef
* @return {?}
*/
Overlay.prototype.stackPosition = /**
* @param {?} dialogRef
* @return {?}
*/
function (dialogRef) {
return _stack.indexOf(dialogRef);
};
/**
* @param {?} dialogRef
* @return {?}
*/
Overlay.prototype.groupStackLength = /**
* @param {?} dialogRef
* @return {?}
*/
function (dialogRef) {
return _stack.groupLength(_stack.groupOf(dialogRef));
};
/**
* @param {?=} result
* @return {?}
*/
Overlay.prototype.closeAll = /**
* @param {?=} result
* @return {?}
*/
function (result) {
if (result === void 0) { result = null; }
_stack.closeAll(result);
};
/**
* Creates an overlay and returns a dialog ref.
* @param config instructions how to create the overlay
* @param group A token to associate the new overlay with, used for reference (stacks usually)
*/
/**
* Creates an overlay and returns a dialog ref.
* @template T
* @param {?} config instructions how to create the overlay
* @param {?=} group A token to associate the new overlay with, used for reference (stacks usually)
* @return {?}
*/
Overlay.prototype.open = /**
* Creates an overlay and returns a dialog ref.
* @template T
* @param {?} config instructions how to create the overlay
* @param {?=} group A token to associate the new overlay with, used for reference (stacks usually)
* @return {?}
*/
function (config, group) {
var _this = this;
/** @type {?} */
var viewContainer = config.viewContainer;
/** @type {?} */
var containers = [];
if (typeof viewContainer === 'string') {
containers = vcRefStore.getVCRef((/** @type {?} */ (viewContainer)));
}
else if (Array.isArray(viewContainer)) {
containers = (/** @type {?} */ (viewContainer));
}
else if (viewContainer) {
containers = (/** @type {?} */ ([viewContainer]));
}
else {
containers = [null];
}
return containers
.map((/**
* @param {?} vc
* @return {?}
*/
function (vc) { return _this.createOverlay(config.renderer || _this._modalRenderer, vc, config, group); }));
};
/**
* @private
* @param {?} renderer
* @param {?} vcRef
* @param {?} config
* @param {?} group
* @return {?}
*/
Overlay.prototype.createOverlay = /**
* @private
* @param {?} renderer
* @param {?} vcRef
* @param {?} config
* @param {?} group
* @return {?}
*/
function (renderer, vcRef, config, group) {
if (config.context) {
config.context.normalize();
}
if (!config.injector) {
config.injector = this.injector;
}
/** @type {?} */
var dialog = new DialogRef(this, config.context || {});
dialog.inElement = config.context && !!config.context.inElement;
/** @type {?} */
var cmpRef = renderer.render(dialog, vcRef, config.injector);
Object.defineProperty(dialog, 'overlayRef', { value: cmpRef });
_stack.pushManaged(dialog, group);
return dialog;
};
Overlay.decorators = [
{ type: Injectable }
];
/** @nocollapse */
Overlay.ctorParameters = function () { return [
{ type: OverlayRenderer },
{ type: Injector }
]; };
return Overlay;
}());
export { Overlay };
if (false) {
/**
* @type {?}
* @private
*/
Overlay.prototype._modalRenderer;
/**
* @type {?}
* @protected
*/
Overlay.prototype.injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1vZGlhbG9nLTcvIiwic291cmNlcyI6WyJsaWIvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7SUFHM0MsTUFBTSxHQUFHLElBQUksY0FBYyxFQUFPO0FBRXhDO0lBTUUsaUJBQW9CLGNBQStCLEVBQVksUUFBa0I7UUFBN0QsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUNqRixDQUFDO0lBTEQsc0JBQUksZ0NBQVc7Ozs7UUFBZjtZQUNFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQUtEOzs7O09BSUc7Ozs7Ozs7SUFDSCwyQkFBUzs7Ozs7O0lBQVQsVUFBVSxTQUF5QjtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7SUFFRCwrQkFBYTs7OztJQUFiLFVBQWMsU0FBeUI7UUFDckMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7O0lBRUQsa0NBQWdCOzs7O0lBQWhCLFVBQWlCLFNBQXlCO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7SUFFRCwwQkFBUTs7OztJQUFSLFVBQVMsTUFBa0I7UUFBbEIsdUJBQUEsRUFBQSxhQUFrQjtRQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHOzs7Ozs7OztJQUNILHNCQUFJOzs7Ozs7O0lBQUosVUFBK0IsTUFBcUIsRUFBRSxLQUFXO1FBQWpFLGlCQWdCQzs7WUFmTyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWE7O1lBQ3RDLFVBQVUsR0FBNEIsRUFBRTtRQUU1QyxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRTtZQUNyQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxtQkFBQSxhQUFhLEVBQVUsQ0FBQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLFVBQVUsR0FBRyxtQkFBQSxhQUFhLEVBQU8sQ0FBQztTQUNuQzthQUFNLElBQUksYUFBYSxFQUFFO1lBQ3hCLFVBQVUsR0FBRyxtQkFBQSxDQUFDLGFBQWEsQ0FBQyxFQUFPLENBQUM7U0FDckM7YUFBTTtZQUNMLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxVQUFVO2FBQ2QsR0FBRzs7OztRQUFFLFVBQUEsRUFBRSxJQUFJLE9BQUEsS0FBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBN0UsQ0FBNkUsRUFBQyxDQUFDO0lBQy9GLENBQUM7Ozs7Ozs7OztJQUVPLCtCQUFhOzs7Ozs7OztJQUFyQixVQUFzQixRQUF5QixFQUN6QixLQUF1QixFQUN2QixNQUFxQixFQUNyQixLQUFVO1FBRTlCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2pDOztZQUVLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBTSxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7WUFFMUQsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO1FBRTlELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2dCQTNFRixVQUFVOzs7O2dCQVJGLGVBQWU7Z0JBRmUsUUFBUTs7SUFzRi9DLGNBQUM7Q0FBQSxBQTVFRCxJQTRFQztTQTNFWSxPQUFPOzs7Ozs7SUFLTixpQ0FBdUM7Ozs7O0lBQUUsMkJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT3ZlcmxheVJlbmRlcmVyLCBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3Rva2Vucyc7XG5pbXBvcnQgeyBEaWFsb2dSZWZTdGFjayB9IGZyb20gJy4uL21vZGVscy9kaWFsb2ctcmVmLXN0YWNrJztcbmltcG9ydCB7IHZjUmVmU3RvcmUgfSBmcm9tICcuLi9tb2RlbHMvdmMtcmVmLXN0b3JlJztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4uL21vZGVscy9kaWFsb2ctcmVmJztcbmltcG9ydCB7IE92ZXJsYXlDb250ZXh0IH0gZnJvbSAnLi4vbW9kZWxzL292ZXJsYXktY29udGV4dCc7XG5cbmNvbnN0IF9zdGFjayA9IG5ldyBEaWFsb2dSZWZTdGFjazxhbnk+KCk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5IHtcbiAgZ2V0IHN0YWNrTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIF9zdGFjay5sZW5ndGg7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tb2RhbFJlbmRlcmVyOiBPdmVybGF5UmVuZGVyZXIsIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGdpdmVuIERpYWxvZ1JlZiBpcyB0aGUgdG9wIG1vc3QgcmVmIGluIHRoZSBzdGFjay5cbiAgICogVE9ETzogZGlzdGluZ3Vpc2ggYmV0d2VlbiBib2R5IG1vZGFsIHZzIGluIGVsZW1lbnQgbW9kYWwuXG4gICAqIEBwYXJhbSBkaWFsb2dSZWZcbiAgICovXG4gIGlzVG9wTW9zdChkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIF9zdGFjay5pbmRleE9mKGRpYWxvZ1JlZikgPT09IF9zdGFjay5sZW5ndGggLSAxO1xuICB9XG5cbiAgc3RhY2tQb3NpdGlvbihkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KSB7XG4gICAgcmV0dXJuIF9zdGFjay5pbmRleE9mKGRpYWxvZ1JlZik7XG4gIH1cblxuICBncm91cFN0YWNrTGVuZ3RoKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4pOiBudW1iZXIge1xuICAgIHJldHVybiBfc3RhY2suZ3JvdXBMZW5ndGgoX3N0YWNrLmdyb3VwT2YoZGlhbG9nUmVmKSk7XG4gIH1cblxuICBjbG9zZUFsbChyZXN1bHQ6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICAgIF9zdGFjay5jbG9zZUFsbChyZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gb3ZlcmxheSBhbmQgcmV0dXJucyBhIGRpYWxvZyByZWYuXG4gICAqIEBwYXJhbSBjb25maWcgaW5zdHJ1Y3Rpb25zIGhvdyB0byBjcmVhdGUgdGhlIG92ZXJsYXlcbiAgICogQHBhcmFtIGdyb3VwIEEgdG9rZW4gdG8gYXNzb2NpYXRlIHRoZSBuZXcgb3ZlcmxheSB3aXRoLCB1c2VkIGZvciByZWZlcmVuY2UgKHN0YWNrcyB1c3VhbGx5KVxuICAgKi9cbiAgb3BlbjxUIGV4dGVuZHMgT3ZlcmxheUNvbnRleHQ+KGNvbmZpZzogT3ZlcmxheUNvbmZpZywgZ3JvdXA/OiBhbnkpOiBEaWFsb2dSZWY8VD5bXSB7XG4gICAgY29uc3Qgdmlld0NvbnRhaW5lciA9IGNvbmZpZy52aWV3Q29udGFpbmVyO1xuICAgIGxldCBjb250YWluZXJzOiBBcnJheTxWaWV3Q29udGFpbmVyUmVmPiA9IFtdO1xuXG4gICAgaWYgKHR5cGVvZiB2aWV3Q29udGFpbmVyID09PSAnc3RyaW5nJykge1xuICAgICAgY29udGFpbmVycyA9IHZjUmVmU3RvcmUuZ2V0VkNSZWYodmlld0NvbnRhaW5lciBhcyBzdHJpbmcpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2aWV3Q29udGFpbmVyKSkge1xuICAgICAgY29udGFpbmVycyA9IHZpZXdDb250YWluZXIgYXMgYW55O1xuICAgIH0gZWxzZSBpZiAodmlld0NvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVycyA9IFt2aWV3Q29udGFpbmVyXSBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lcnMgPSBbbnVsbF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRhaW5lcnNcbiAgICAgIC5tYXAoIHZjID0+IHRoaXMuY3JlYXRlT3ZlcmxheShjb25maWcucmVuZGVyZXIgfHwgdGhpcy5fbW9kYWxSZW5kZXJlciwgdmMsIGNvbmZpZywgZ3JvdXApKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheShyZW5kZXJlcjogT3ZlcmxheVJlbmRlcmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IE92ZXJsYXlDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cDogYW55KTogRGlhbG9nUmVmPGFueT4ge1xuXG4gICAgaWYgKGNvbmZpZy5jb250ZXh0KSB7XG4gICAgICBjb25maWcuY29udGV4dC5ub3JtYWxpemUoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5pbmplY3Rvcikge1xuICAgICAgY29uZmlnLmluamVjdG9yID0gdGhpcy5pbmplY3RvcjtcbiAgICB9XG5cbiAgICBjb25zdCBkaWFsb2cgPSBuZXcgRGlhbG9nUmVmPGFueT4odGhpcywgY29uZmlnLmNvbnRleHQgfHwge30pO1xuICAgIGRpYWxvZy5pbkVsZW1lbnQgPSBjb25maWcuY29udGV4dCAmJiAhIWNvbmZpZy5jb250ZXh0LmluRWxlbWVudDtcblxuICAgIGNvbnN0IGNtcFJlZiA9IHJlbmRlcmVyLnJlbmRlcihkaWFsb2csIHZjUmVmLCBjb25maWcuaW5qZWN0b3IpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRpYWxvZywgJ292ZXJsYXlSZWYnLCB7dmFsdWU6IGNtcFJlZn0pO1xuICAgIF9zdGFjay5wdXNoTWFuYWdlZChkaWFsb2csIGdyb3VwKTtcblxuICAgIHJldHVybiBkaWFsb2c7XG4gIH1cbn1cbiJdfQ==