UNPKG

ngx-modialog-11

Version:
81 lines 8.48 kB
const BASKET_GROUP = {}; /** * A dumb stack implementation over an array. */ export class DialogRefStack { constructor() { this._stack = []; this._stackMap = new Map(); } get length() { return this._stack.length; } closeAll(result = null) { for (let i = 0, len = this._stack.length; i < len; i++) { this._stack.pop().close(result); } } 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 */ pushManaged(dialogRef, group) { this.push(dialogRef, group); dialogRef.onDestroy.subscribe(() => this.remove(dialogRef)); } pop() { const dialogRef = this._stack.pop(); this._stackMap.delete(dialogRef); return dialogRef; } /** * Remove a DialogRef from the stack. * @param dialogRef */ remove(dialogRef) { let idx = this.indexOf(dialogRef); if (idx > -1) { this._stack.splice(idx, 1); this._stackMap.delete(dialogRef); } } index(index) { return this._stack[index]; } indexOf(dialogRef) { return this._stack.indexOf(dialogRef); } groupOf(dialogRef) { return this._stackMap.get(dialogRef); } groupBy(group) { const arr = []; if (group) { this._stackMap.forEach((value, key) => { if (value === group) { arr.push(key); } }); } return arr; } groupLength(group) { let count = 0; if (group) { this._stackMap.forEach((value) => { if (value === group) { count++; } }); } return count; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tb2RpYWxvZy0xMS9zcmMvbGliL21vZGVscy9kaWFsb2ctcmVmLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4Qjs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBUXpCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztJQUNoRCxDQUFDO0lBUEQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBT0QsUUFBUSxDQUFDLFNBQWMsSUFBSTtRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsU0FBdUIsRUFBRSxLQUFXO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxZQUFZLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLFNBQXVCLEVBQUUsS0FBVztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEdBQUc7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsU0FBdUI7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUF1QjtRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFO29CQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNmO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFO29CQUNuQixLQUFLLEVBQUUsQ0FBQztpQkFDVDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZic7XHJcblxyXG5jb25zdCBCQVNLRVRfR1JPVVAgPSB7fTtcclxuXHJcbi8qKlxyXG4gKiBBIGR1bWIgc3RhY2sgaW1wbGVtZW50YXRpb24gb3ZlciBhbiBhcnJheS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dSZWZTdGFjazxUPiB7XHJcbiAgcHJpdmF0ZSBfc3RhY2s6IERpYWxvZ1JlZjxUPltdO1xyXG4gIHByaXZhdGUgX3N0YWNrTWFwOiBNYXA8RGlhbG9nUmVmPFQ+LCBhbnk+O1xyXG5cclxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhY2subGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9zdGFjayA9IFtdO1xyXG4gICAgdGhpcy5fc3RhY2tNYXAgPSBuZXcgTWFwPERpYWxvZ1JlZjxUPiwgYW55PigpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VBbGwocmVzdWx0OiBhbnkgPSBudWxsKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5fc3RhY2subGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgdGhpcy5fc3RhY2sucG9wKCkuY2xvc2UocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1c2goZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4sIGdyb3VwPzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc3RhY2suaW5kZXhPZihkaWFsb2dSZWYpID09PSAtMSkge1xyXG4gICAgICB0aGlzLl9zdGFjay5wdXNoKGRpYWxvZ1JlZik7XHJcbiAgICAgIHRoaXMuX3N0YWNrTWFwLnNldChkaWFsb2dSZWYsIGdyb3VwIHx8IEJBU0tFVF9HUk9VUCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQdXNoIGEgRGlhbG9nUmVmIGludG8gdGhlIHN0YWNrIGFuZCBtYW5hZ2UgaXQgc28gd2hlbiBpdCdzIGRvbmVcclxuICAgKiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkga2ljayBpdHNlbGYgb3V0IG9mIHRoZSBzdGFjay5cclxuICAgKiBAcGFyYW0gZGlhbG9nUmVmXHJcbiAgICovXHJcbiAgcHVzaE1hbmFnZWQoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4sIGdyb3VwPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnB1c2goZGlhbG9nUmVmLCBncm91cCk7XHJcbiAgICBkaWFsb2dSZWYub25EZXN0cm95LnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbW92ZShkaWFsb2dSZWYpKTtcclxuICB9XHJcblxyXG4gIHBvcCgpOiBEaWFsb2dSZWY8VD4ge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fc3RhY2sucG9wKCk7XHJcbiAgICB0aGlzLl9zdGFja01hcC5kZWxldGUoZGlhbG9nUmVmKTtcclxuICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSBEaWFsb2dSZWYgZnJvbSB0aGUgc3RhY2suXHJcbiAgICogQHBhcmFtIGRpYWxvZ1JlZlxyXG4gICAqL1xyXG4gIHJlbW92ZShkaWFsb2dSZWY6IERpYWxvZ1JlZjxUPik6IHZvaWQge1xyXG4gICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihkaWFsb2dSZWYpO1xyXG4gICAgaWYgKGlkeCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuX3N0YWNrLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICB0aGlzLl9zdGFja01hcC5kZWxldGUoZGlhbG9nUmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZGV4KGluZGV4OiBudW1iZXIpOiBEaWFsb2dSZWY8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrW2luZGV4XTtcclxuICB9XHJcblxyXG4gIGluZGV4T2YoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrLmluZGV4T2YoZGlhbG9nUmVmKTtcclxuICB9XHJcblxyXG4gIGdyb3VwT2YoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4pOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrTWFwLmdldChkaWFsb2dSZWYpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXBCeShncm91cDogYW55KTogRGlhbG9nUmVmPFQ+W10ge1xyXG4gICAgY29uc3QgYXJyID0gW107XHJcbiAgICBpZiAoZ3JvdXApIHtcclxuICAgICAgdGhpcy5fc3RhY2tNYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZ3JvdXApIHtcclxuICAgICAgICAgIGFyci5wdXNoKGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBhcnI7XHJcbiAgfVxyXG5cclxuICBncm91cExlbmd0aChncm91cDogYW55KTogbnVtYmVyIHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBpZiAoZ3JvdXApIHtcclxuICAgICAgdGhpcy5fc3RhY2tNYXAuZm9yRWFjaCgodmFsdWUpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IGdyb3VwKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==