UNPKG

ngx-modialog-7

Version:
154 lines 9.54 kB
/** * @fileoverview added by tsickle * Generated from: lib/models/dialog-ref-stack.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const BASKET_GROUP = {}; /** * A dumb stack implementation over an array. * @template T */ export class DialogRefStack { constructor() { this._stack = []; this._stackMap = new Map(); } /** * @return {?} */ get length() { return this._stack.length; } /** * @param {?=} result * @return {?} */ closeAll(result = null) { for (let i = 0, len = this._stack.length; i < len; i++) { this._stack.pop().close(result); } } /** * @param {?} dialogRef * @param {?=} group * @return {?} */ push(dialogRef, group) { if (this._stack.indexOf(dialogRef) === -1) { this._stack.push(dialogRef); this._stackMap.set(dialogRef, group || BASKET_GROUP); } } /** * Push a DialogRef into the stack and manage it so when it's done * it will automatically kick itself out of the stack. * @param {?} dialogRef * @param {?=} group * @return {?} */ pushManaged(dialogRef, group) { this.push(dialogRef, group); dialogRef.onDestroy.subscribe((/** * @return {?} */ () => this.remove(dialogRef))); } /** * @return {?} */ pop() { /** @type {?} */ const dialogRef = this._stack.pop(); this._stackMap.delete(dialogRef); return dialogRef; } /** * Remove a DialogRef from the stack. * @param {?} dialogRef * @return {?} */ remove(dialogRef) { /** @type {?} */ let idx = this.indexOf(dialogRef); if (idx > -1) { this._stack.splice(idx, 1); this._stackMap.delete(dialogRef); } } /** * @param {?} index * @return {?} */ index(index) { return this._stack[index]; } /** * @param {?} dialogRef * @return {?} */ indexOf(dialogRef) { return this._stack.indexOf(dialogRef); } /** * @param {?} dialogRef * @return {?} */ groupOf(dialogRef) { return this._stackMap.get(dialogRef); } /** * @param {?} group * @return {?} */ groupBy(group) { /** @type {?} */ const arr = []; if (group) { this._stackMap.forEach((/** * @param {?} value * @param {?} key * @return {?} */ (value, key) => { if (value === group) { arr.push(key); } })); } return arr; } /** * @param {?} group * @return {?} */ groupLength(group) { /** @type {?} */ let count = 0; if (group) { this._stackMap.forEach((/** * @param {?} value * @return {?} */ (value) => { if (value === group) { count++; } })); } return count; } } if (false) { /** * @type {?} * @private */ DialogRefStack.prototype._stack; /** * @type {?} * @private */ DialogRefStack.prototype._stackMap; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tb2RpYWxvZy03LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9kaWFsb2ctcmVmLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztNQUVNLFlBQVksR0FBRyxFQUFFOzs7OztBQUt2QixNQUFNLE9BQU8sY0FBYztJQVF6QjtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDaEQsQ0FBQzs7OztJQVBELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFPRCxRQUFRLENBQUMsU0FBYyxJQUFJO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7Ozs7O0lBRUQsSUFBSSxDQUFDLFNBQXVCLEVBQUUsS0FBVztRQUN2QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksWUFBWSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDOzs7Ozs7OztJQU9ELFdBQVcsQ0FBQyxTQUF1QixFQUFFLEtBQVc7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUM7SUFDOUQsQ0FBQzs7OztJQUVELEdBQUc7O2NBQ0ssU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Ozs7OztJQU1ELE1BQU0sQ0FBQyxTQUF1Qjs7WUFDeEIsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsU0FBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxTQUF1QjtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLEtBQVU7O2NBQ1YsR0FBRyxHQUFHLEVBQUU7UUFDZCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzs7Ozs7WUFBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFO29CQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNmO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsS0FBVTs7WUFDaEIsS0FBSyxHQUFHLENBQUM7UUFDYixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzs7OztZQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDbkIsS0FBSyxFQUFFLENBQUM7aUJBQ1Q7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7Ozs7OztJQXhGQyxnQ0FBK0I7Ozs7O0lBQy9CLG1DQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZic7XG5cbmNvbnN0IEJBU0tFVF9HUk9VUCA9IHt9O1xuXG4vKipcbiAqIEEgZHVtYiBzdGFjayBpbXBsZW1lbnRhdGlvbiBvdmVyIGFuIGFycmF5LlxuICovXG5leHBvcnQgY2xhc3MgRGlhbG9nUmVmU3RhY2s8VD4ge1xuICBwcml2YXRlIF9zdGFjazogRGlhbG9nUmVmPFQ+W107XG4gIHByaXZhdGUgX3N0YWNrTWFwOiBNYXA8RGlhbG9nUmVmPFQ+LCBhbnk+O1xuXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhY2subGVuZ3RoO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc3RhY2sgPSBbXTtcbiAgICB0aGlzLl9zdGFja01hcCA9IG5ldyBNYXA8RGlhbG9nUmVmPFQ+LCBhbnk+KCk7XG4gIH1cblxuICBjbG9zZUFsbChyZXN1bHQ6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5fc3RhY2subGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHRoaXMuX3N0YWNrLnBvcCgpLmNsb3NlKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgcHVzaChkaWFsb2dSZWY6IERpYWxvZ1JlZjxUPiwgZ3JvdXA/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhY2suaW5kZXhPZihkaWFsb2dSZWYpID09PSAtMSkge1xuICAgICAgdGhpcy5fc3RhY2sucHVzaChkaWFsb2dSZWYpO1xuICAgICAgdGhpcy5fc3RhY2tNYXAuc2V0KGRpYWxvZ1JlZiwgZ3JvdXAgfHwgQkFTS0VUX0dST1VQKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVzaCBhIERpYWxvZ1JlZiBpbnRvIHRoZSBzdGFjayBhbmQgbWFuYWdlIGl0IHNvIHdoZW4gaXQncyBkb25lXG4gICAqIGl0IHdpbGwgYXV0b21hdGljYWxseSBraWNrIGl0c2VsZiBvdXQgb2YgdGhlIHN0YWNrLlxuICAgKiBAcGFyYW0gZGlhbG9nUmVmXG4gICAqL1xuICBwdXNoTWFuYWdlZChkaWFsb2dSZWY6IERpYWxvZ1JlZjxUPiwgZ3JvdXA/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnB1c2goZGlhbG9nUmVmLCBncm91cCk7XG4gICAgZGlhbG9nUmVmLm9uRGVzdHJveS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW1vdmUoZGlhbG9nUmVmKSk7XG4gIH1cblxuICBwb3AoKTogRGlhbG9nUmVmPFQ+IHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9zdGFjay5wb3AoKTtcbiAgICB0aGlzLl9zdGFja01hcC5kZWxldGUoZGlhbG9nUmVmKTtcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIERpYWxvZ1JlZiBmcm9tIHRoZSBzdGFjay5cbiAgICogQHBhcmFtIGRpYWxvZ1JlZlxuICAgKi9cbiAgcmVtb3ZlKGRpYWxvZ1JlZjogRGlhbG9nUmVmPFQ+KTogdm9pZCB7XG4gICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihkaWFsb2dSZWYpO1xuICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgdGhpcy5fc3RhY2suc3BsaWNlKGlkeCwgMSk7XG4gICAgICB0aGlzLl9zdGFja01hcC5kZWxldGUoZGlhbG9nUmVmKTtcbiAgICB9XG4gIH1cblxuICBpbmRleChpbmRleDogbnVtYmVyKTogRGlhbG9nUmVmPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhY2tbaW5kZXhdO1xuICB9XG5cbiAgaW5kZXhPZihkaWFsb2dSZWY6IERpYWxvZ1JlZjxUPik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrLmluZGV4T2YoZGlhbG9nUmVmKTtcbiAgfVxuXG4gIGdyb3VwT2YoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4pOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zdGFja01hcC5nZXQoZGlhbG9nUmVmKTtcbiAgfVxuXG4gIGdyb3VwQnkoZ3JvdXA6IGFueSk6IERpYWxvZ1JlZjxUPltdIHtcbiAgICBjb25zdCBhcnIgPSBbXTtcbiAgICBpZiAoZ3JvdXApIHtcbiAgICAgIHRoaXMuX3N0YWNrTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBncm91cCkge1xuICAgICAgICAgIGFyci5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgZ3JvdXBMZW5ndGgoZ3JvdXA6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBpZiAoZ3JvdXApIHtcbiAgICAgIHRoaXMuX3N0YWNrTWFwLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZ3JvdXApIHtcbiAgICAgICAgICBjb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG59XG4iXX0=