UNPKG

ngx-modialog-10

Version:
134 lines 10.7 kB
/** * @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 {?} */ const _stack = new DialogRefStack(); export class Overlay { /** * @param {?} _modalRenderer * @param {?} injector */ constructor(_modalRenderer, injector) { this._modalRenderer = _modalRenderer; this.injector = injector; } /** * @return {?} */ get stackLength() { return _stack.length; } /** * 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 {?} */ isTopMost(dialogRef) { return _stack.indexOf(dialogRef) === _stack.length - 1; } /** * @param {?} dialogRef * @return {?} */ stackPosition(dialogRef) { return _stack.indexOf(dialogRef); } /** * @param {?} dialogRef * @return {?} */ groupStackLength(dialogRef) { return _stack.groupLength(_stack.groupOf(dialogRef)); } /** * @param {?=} result * @return {?} */ closeAll(result = null) { _stack.closeAll(result); } /** * 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 {?} */ open(config, group) { /** @type {?} */ const viewContainer = config.viewContainer; /** @type {?} */ let 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 {?} */ vc => this.createOverlay(config.renderer || this._modalRenderer, vc, config, group))); } /** * @private * @param {?} renderer * @param {?} vcRef * @param {?} config * @param {?} group * @return {?} */ createOverlay(renderer, vcRef, config, group) { if (config.context) { config.context.normalize(); } if (!config.injector) { config.injector = this.injector; } /** @type {?} */ const dialog = new DialogRef(this, config.context || {}); dialog.inElement = config.context && !!config.context.inElement; /** @type {?} */ const 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 = () => [ { type: OverlayRenderer }, { type: Injector } ]; if (false) { /** * @type {?} * @private */ Overlay.prototype._modalRenderer; /** * @type {?} * @protected */ Overlay.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1vZGlhbG9nLTEwLyIsInNvdXJjZXMiOlsibGliL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFvQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O01BRzNDLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBTztBQUd4QyxNQUFNLE9BQU8sT0FBTzs7Ozs7SUFLbEIsWUFBb0IsY0FBK0IsRUFBWSxRQUFrQjtRQUE3RCxtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ2pGLENBQUM7Ozs7SUFMRCxJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQzs7Ozs7OztJQVVELFNBQVMsQ0FBQyxTQUF5QjtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7SUFFRCxhQUFhLENBQUMsU0FBeUI7UUFDckMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsU0FBeUI7UUFDeEMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxTQUFjLElBQUk7UUFDdkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7Ozs7OztJQU9ELElBQUksQ0FBMkIsTUFBcUIsRUFBRSxLQUFXOztjQUN6RCxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWE7O1lBQ3RDLFVBQVUsR0FBNEIsRUFBRTtRQUU1QyxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRTtZQUNyQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxtQkFBQSxhQUFhLEVBQVUsQ0FBQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLFVBQVUsR0FBRyxtQkFBQSxhQUFhLEVBQU8sQ0FBQztTQUNuQzthQUFNLElBQUksYUFBYSxFQUFFO1lBQ3hCLFVBQVUsR0FBRyxtQkFBQSxDQUFDLGFBQWEsQ0FBQyxFQUFPLENBQUM7U0FDckM7YUFBTTtZQUNMLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxVQUFVO2FBQ2QsR0FBRzs7OztRQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxDQUFDO0lBQy9GLENBQUM7Ozs7Ozs7OztJQUVPLGFBQWEsQ0FBQyxRQUF5QixFQUN6QixLQUF1QixFQUN2QixNQUFxQixFQUNyQixLQUFVO1FBRTlCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2pDOztjQUVLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBTSxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Y0FFMUQsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO1FBRTlELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OztZQTNFRixVQUFVOzs7O1lBUkYsZUFBZTtZQUZlLFFBQVE7Ozs7Ozs7SUFnQmpDLGlDQUF1Qzs7Ozs7SUFBRSwyQkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPdmVybGF5UmVuZGVyZXIsIE92ZXJsYXlDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvdG9rZW5zJztcbmltcG9ydCB7IERpYWxvZ1JlZlN0YWNrIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1yZWYtc3RhY2snO1xuaW1wb3J0IHsgdmNSZWZTdG9yZSB9IGZyb20gJy4uL21vZGVscy92Yy1yZWYtc3RvcmUnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1yZWYnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRleHQgfSBmcm9tICcuLi9tb2RlbHMvb3ZlcmxheS1jb250ZXh0JztcblxuY29uc3QgX3N0YWNrID0gbmV3IERpYWxvZ1JlZlN0YWNrPGFueT4oKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXkge1xuICBnZXQgc3RhY2tMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gX3N0YWNrLmxlbmd0aDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX21vZGFsUmVuZGVyZXI6IE92ZXJsYXlSZW5kZXJlciwgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gRGlhbG9nUmVmIGlzIHRoZSB0b3AgbW9zdCByZWYgaW4gdGhlIHN0YWNrLlxuICAgKiBUT0RPOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIGJvZHkgbW9kYWwgdnMgaW4gZWxlbWVudCBtb2RhbC5cbiAgICogQHBhcmFtIGRpYWxvZ1JlZlxuICAgKi9cbiAgaXNUb3BNb3N0KGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gX3N0YWNrLmluZGV4T2YoZGlhbG9nUmVmKSA9PT0gX3N0YWNrLmxlbmd0aCAtIDE7XG4gIH1cblxuICBzdGFja1Bvc2l0aW9uKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4pIHtcbiAgICByZXR1cm4gX3N0YWNrLmluZGV4T2YoZGlhbG9nUmVmKTtcbiAgfVxuXG4gIGdyb3VwU3RhY2tMZW5ndGgoZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55Pik6IG51bWJlciB7XG4gICAgcmV0dXJuIF9zdGFjay5ncm91cExlbmd0aChfc3RhY2suZ3JvdXBPZihkaWFsb2dSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQWxsKHJlc3VsdDogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgICAgX3N0YWNrLmNsb3NlQWxsKHJlc3VsdCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBvdmVybGF5IGFuZCByZXR1cm5zIGEgZGlhbG9nIHJlZi5cbiAgICogQHBhcmFtIGNvbmZpZyBpbnN0cnVjdGlvbnMgaG93IHRvIGNyZWF0ZSB0aGUgb3ZlcmxheVxuICAgKiBAcGFyYW0gZ3JvdXAgQSB0b2tlbiB0byBhc3NvY2lhdGUgdGhlIG5ldyBvdmVybGF5IHdpdGgsIHVzZWQgZm9yIHJlZmVyZW5jZSAoc3RhY2tzIHVzdWFsbHkpXG4gICAqL1xuICBvcGVuPFQgZXh0ZW5kcyBPdmVybGF5Q29udGV4dD4oY29uZmlnOiBPdmVybGF5Q29uZmlnLCBncm91cD86IGFueSk6IERpYWxvZ1JlZjxUPltdIHtcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyID0gY29uZmlnLnZpZXdDb250YWluZXI7XG4gICAgbGV0IGNvbnRhaW5lcnM6IEFycmF5PFZpZXdDb250YWluZXJSZWY+ID0gW107XG5cbiAgICBpZiAodHlwZW9mIHZpZXdDb250YWluZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb250YWluZXJzID0gdmNSZWZTdG9yZS5nZXRWQ1JlZih2aWV3Q29udGFpbmVyIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZpZXdDb250YWluZXIpKSB7XG4gICAgICBjb250YWluZXJzID0gdmlld0NvbnRhaW5lciBhcyBhbnk7XG4gICAgfSBlbHNlIGlmICh2aWV3Q29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXJzID0gW3ZpZXdDb250YWluZXJdIGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVycyA9IFtudWxsXTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGFpbmVyc1xuICAgICAgLm1hcCggdmMgPT4gdGhpcy5jcmVhdGVPdmVybGF5KGNvbmZpZy5yZW5kZXJlciB8fCB0aGlzLl9tb2RhbFJlbmRlcmVyLCB2YywgY29uZmlnLCBncm91cCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KHJlbmRlcmVyOiBPdmVybGF5UmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2Y1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiBhbnkpOiBEaWFsb2dSZWY8YW55PiB7XG5cbiAgICBpZiAoY29uZmlnLmNvbnRleHQpIHtcbiAgICAgIGNvbmZpZy5jb250ZXh0Lm5vcm1hbGl6ZSgpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLmluamVjdG9yKSB7XG4gICAgICBjb25maWcuaW5qZWN0b3IgPSB0aGlzLmluamVjdG9yO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWxvZyA9IG5ldyBEaWFsb2dSZWY8YW55Pih0aGlzLCBjb25maWcuY29udGV4dCB8fCB7fSk7XG4gICAgZGlhbG9nLmluRWxlbWVudCA9IGNvbmZpZy5jb250ZXh0ICYmICEhY29uZmlnLmNvbnRleHQuaW5FbGVtZW50O1xuXG4gICAgY29uc3QgY21wUmVmID0gcmVuZGVyZXIucmVuZGVyKGRpYWxvZywgdmNSZWYsIGNvbmZpZy5pbmplY3Rvcik7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGlhbG9nLCAnb3ZlcmxheVJlZicsIHt2YWx1ZTogY21wUmVmfSk7XG4gICAgX3N0YWNrLnB1c2hNYW5hZ2VkKGRpYWxvZywgZ3JvdXApO1xuXG4gICAgcmV0dXJuIGRpYWxvZztcbiAgfVxufVxuIl19