ngx-modialog-10
Version:
Modal / Dialog for Angular
154 lines • 9.69 kB
JavaScript
/**
* @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tb2RpYWxvZy0xMC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvZGlhbG9nLXJlZi1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFFTSxZQUFZLEdBQUcsRUFBRTs7Ozs7QUFLdkIsTUFBTSxPQUFPLGNBQWM7SUFRekI7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO0lBQ2hELENBQUM7Ozs7SUFQRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBT0QsUUFBUSxDQUFDLFNBQWMsSUFBSTtRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Ozs7OztJQUVELElBQUksQ0FBQyxTQUF1QixFQUFFLEtBQVc7UUFDdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFPRCxXQUFXLENBQUMsU0FBdUIsRUFBRSxLQUFXO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBQyxDQUFDO0lBQzlELENBQUM7Ozs7SUFFRCxHQUFHOztjQUNLLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzs7Ozs7SUFNRCxNQUFNLENBQUMsU0FBdUI7O1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7Ozs7O0lBRUQsS0FBSyxDQUFDLEtBQWE7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLFNBQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsU0FBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxLQUFVOztjQUNWLEdBQUcsR0FBRyxFQUFFO1FBQ2QsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7O1lBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDZjtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEtBQVU7O1lBQ2hCLEtBQUssR0FBRyxDQUFDO1FBQ2IsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMvQixJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUU7b0JBQ25CLEtBQUssRUFBRSxDQUFDO2lCQUNUO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGOzs7Ozs7SUF4RkMsZ0NBQStCOzs7OztJQUMvQixtQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xuXG5jb25zdCBCQVNLRVRfR1JPVVAgPSB7fTtcblxuLyoqXG4gKiBBIGR1bWIgc3RhY2sgaW1wbGVtZW50YXRpb24gb3ZlciBhbiBhcnJheS5cbiAqL1xuZXhwb3J0IGNsYXNzIERpYWxvZ1JlZlN0YWNrPFQ+IHtcbiAgcHJpdmF0ZSBfc3RhY2s6IERpYWxvZ1JlZjxUPltdO1xuICBwcml2YXRlIF9zdGFja01hcDogTWFwPERpYWxvZ1JlZjxUPiwgYW55PjtcblxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3N0YWNrID0gW107XG4gICAgdGhpcy5fc3RhY2tNYXAgPSBuZXcgTWFwPERpYWxvZ1JlZjxUPiwgYW55PigpO1xuICB9XG5cbiAgY2xvc2VBbGwocmVzdWx0OiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMuX3N0YWNrLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB0aGlzLl9zdGFjay5wb3AoKS5jbG9zZShyZXN1bHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1c2goZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4sIGdyb3VwPzogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YWNrLmluZGV4T2YoZGlhbG9nUmVmKSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuX3N0YWNrLnB1c2goZGlhbG9nUmVmKTtcbiAgICAgIHRoaXMuX3N0YWNrTWFwLnNldChkaWFsb2dSZWYsIGdyb3VwIHx8IEJBU0tFVF9HUk9VUCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggYSBEaWFsb2dSZWYgaW50byB0aGUgc3RhY2sgYW5kIG1hbmFnZSBpdCBzbyB3aGVuIGl0J3MgZG9uZVxuICAgKiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkga2ljayBpdHNlbGYgb3V0IG9mIHRoZSBzdGFjay5cbiAgICogQHBhcmFtIGRpYWxvZ1JlZlxuICAgKi9cbiAgcHVzaE1hbmFnZWQoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4sIGdyb3VwPzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wdXNoKGRpYWxvZ1JlZiwgZ3JvdXApO1xuICAgIGRpYWxvZ1JlZi5vbkRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVtb3ZlKGRpYWxvZ1JlZikpO1xuICB9XG5cbiAgcG9wKCk6IERpYWxvZ1JlZjxUPiB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fc3RhY2sucG9wKCk7XG4gICAgdGhpcy5fc3RhY2tNYXAuZGVsZXRlKGRpYWxvZ1JlZik7XG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBEaWFsb2dSZWYgZnJvbSB0aGUgc3RhY2suXG4gICAqIEBwYXJhbSBkaWFsb2dSZWZcbiAgICovXG4gIHJlbW92ZShkaWFsb2dSZWY6IERpYWxvZ1JlZjxUPik6IHZvaWQge1xuICAgIGxldCBpZHggPSB0aGlzLmluZGV4T2YoZGlhbG9nUmVmKTtcbiAgICBpZiAoaWR4ID4gLTEpIHtcbiAgICAgIHRoaXMuX3N0YWNrLnNwbGljZShpZHgsIDEpO1xuICAgICAgdGhpcy5fc3RhY2tNYXAuZGVsZXRlKGRpYWxvZ1JlZik7XG4gICAgfVxuICB9XG5cbiAgaW5kZXgoaW5kZXg6IG51bWJlcik6IERpYWxvZ1JlZjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrW2luZGV4XTtcbiAgfVxuXG4gIGluZGV4T2YoZGlhbG9nUmVmOiBEaWFsb2dSZWY8VD4pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGFjay5pbmRleE9mKGRpYWxvZ1JlZik7XG4gIH1cblxuICBncm91cE9mKGRpYWxvZ1JlZjogRGlhbG9nUmVmPFQ+KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhY2tNYXAuZ2V0KGRpYWxvZ1JlZik7XG4gIH1cblxuICBncm91cEJ5KGdyb3VwOiBhbnkpOiBEaWFsb2dSZWY8VD5bXSB7XG4gICAgY29uc3QgYXJyID0gW107XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICB0aGlzLl9zdGFja01hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZ3JvdXApIHtcbiAgICAgICAgICBhcnIucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIGdyb3VwTGVuZ3RoKGdyb3VwOiBhbnkpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICB0aGlzLl9zdGFja01hcC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IGdyb3VwKSB7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb3VudDtcbiAgfVxufVxuIl19