@addapptables/notifier
Version:
Material notifier library for angular
147 lines • 12.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { take } from 'rxjs/operators';
/**
* @abstract
*/
var AbstractStrategy = /** @class */ (function () {
function AbstractStrategy(_document) {
this._document = _document;
this.notifiers = [];
this.margin = 30;
this.maxNotifiers = 5;
this.notifiers = [];
}
/**
* @param {?} notifierRef
* @return {?}
*/
AbstractStrategy.prototype.newNotifier = /**
* @param {?} notifierRef
* @return {?}
*/
function (notifierRef) {
var _this = this;
notifierRef.afterClosed().pipe(take(1)).subscribe(this.deletePortal.bind(this));
notifierRef.changedStyle(this.getStyleNewNotifier(notifierRef));
setTimeout((/**
* @return {?}
*/
function () {
if (_this.notifiers.length >= _this.maxNotifiers) {
/** @type {?} */
var notifier = _this.notifiers.shift();
notifier.close();
}
/** @type {?} */
var element = _this._document.querySelector("#" + notifierRef.component._id + " > addapptable-notifier > .addapptable-notifier");
_this.notifiers.forEach((/**
* @param {?} notifier
* @return {?}
*/
function (notifier) {
/** @type {?} */
var elementNotifier = _this._document
.querySelector("#" + notifier.component._id + " > addapptable-notifier > .addapptable-notifier");
notifier.changedStyle(_this.getStyleNotifierPosition(elementNotifier, element.clientHeight));
}));
_this.notifiers.push(notifierRef);
}));
};
/**
* @private
* @param {?} id
* @return {?}
*/
AbstractStrategy.prototype.deletePortal = /**
* @private
* @param {?} id
* @return {?}
*/
function (id) {
/** @type {?} */
var notifier = this.notifiers.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return x.component._id === id; }));
if (notifier >= 0) {
/** @type {?} */
var element = this._document
.querySelector("#" + this.notifiers[notifier].component._id + " > addapptable-notifier > .addapptable-notifier");
/** @type {?} */
var clientHeightElementDelete = element.clientHeight;
this.notifiers.splice(notifier, 1);
for (var index = notifier - 1; index >= 0; index--) {
/** @type {?} */
var notifierStyle = this.notifiers[index];
/** @type {?} */
var elementChange = this._document
.querySelector("#" + notifierStyle.component._id + " > addapptable-notifier > .addapptable-notifier");
notifierStyle.changedStyle(this.getStyleDeleteNotifier(elementChange, clientHeightElementDelete));
}
}
};
/**
* @return {?}
*/
AbstractStrategy.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.notifiers.forEach((/**
* @param {?} notifier
* @return {?}
*/
function (notifier) {
notifier.close();
}));
};
/** @nocollapse */
AbstractStrategy.ctorParameters = function () { return [
{ type: HTMLDocument, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
]; };
return AbstractStrategy;
}());
export { AbstractStrategy };
if (false) {
/** @type {?} */
AbstractStrategy.prototype.notifiers;
/** @type {?} */
AbstractStrategy.prototype.margin;
/** @type {?} */
AbstractStrategy.prototype.maxNotifiers;
/**
* @type {?}
* @private
*/
AbstractStrategy.prototype._document;
/**
* @abstract
* @protected
* @param {?} notifierRef
* @return {?}
*/
AbstractStrategy.prototype.getStyleNewNotifier = function (notifierRef) { };
/**
* @abstract
* @protected
* @param {?} divNotifier
* @param {?} clientHeight
* @return {?}
*/
AbstractStrategy.prototype.getStyleNotifierPosition = function (divNotifier, clientHeight) { };
/**
* @abstract
* @protected
* @param {?} elementChange
* @param {?} clientHeightElementDelete
* @return {?}
*/
AbstractStrategy.prototype.getStyleDeleteNotifier = function (elementChange, clientHeightElementDelete) { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRkYXBwdGFibGVzL25vdGlmaWVyLyIsInNvdXJjZXMiOlsibGliL3N0cmF0ZWdpZXMvYWJzdHJhY3Qtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd0QztJQU9JLDBCQUFzQyxTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBTjdELGNBQVMsR0FBa0IsRUFBRSxDQUFDO1FBRTlCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUdiLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBRUQsc0NBQVc7Ozs7SUFBWCxVQUFZLFdBQXdCO1FBQXBDLGlCQWdCQztRQWZHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEYsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRSxVQUFVOzs7UUFBQztZQUNQLElBQUksS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksS0FBSSxDQUFDLFlBQVksRUFBRTs7b0JBQ3RDLFFBQVEsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtnQkFDdkMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3BCOztnQkFDSyxPQUFPLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsb0RBQWlELENBQUM7WUFDNUgsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxRQUFROztvQkFDckIsZUFBZSxHQUFHLEtBQUksQ0FBQyxTQUFTO3FCQUNqQyxhQUFhLENBQWlCLE1BQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLG9EQUFpRCxDQUFDO2dCQUMvRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDaEcsQ0FBQyxFQUFDLENBQUM7WUFDSCxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7OztJQU1PLHVDQUFZOzs7OztJQUFwQixVQUFxQixFQUFVOztZQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQXRCLENBQXNCLEVBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFOztnQkFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVM7aUJBQ3pCLGFBQWEsQ0FBaUIsTUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLG9EQUFpRCxDQUFDOztnQkFDekgseUJBQXlCLEdBQUcsT0FBTyxDQUFDLFlBQVk7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEtBQUssSUFBSSxLQUFLLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFOztvQkFDMUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDOztvQkFDckMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTO3FCQUMvQixhQUFhLENBQWlCLE1BQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLG9EQUFpRCxDQUFDO2dCQUNwSCxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7SUFDTCxDQUFDOzs7O0lBSUQsc0NBQVc7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxRQUFRO1lBQzNCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztnQkFoRGdELFlBQVksdUJBQWhELE1BQU0sU0FBQyxRQUFROztJQWlEaEMsdUJBQUM7Q0FBQSxBQXhERCxJQXdEQztTQXhEcUIsZ0JBQWdCOzs7SUFDbEMscUNBQThCOztJQUU5QixrQ0FBWTs7SUFFWix3Q0FBaUI7Ozs7O0lBRUwscUNBQWlEOzs7Ozs7O0lBc0I3RCw0RUFBaUU7Ozs7Ozs7O0lBRWpFLCtGQUErRjs7Ozs7Ozs7SUFrQi9GLDRHQUE0RyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWVyUmVmIH0gZnJvbSAnLi4vbm90aWZpZXItcmVmJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3RyYXRlZ3kgaW1wbGVtZW50cyBTdHJhdGVneSwgT25EZXN0cm95IHtcclxuICAgIG5vdGlmaWVyczogTm90aWZpZXJSZWZbXSA9IFtdO1xyXG5cclxuICAgIG1hcmdpbiA9IDMwO1xyXG5cclxuICAgIG1heE5vdGlmaWVycyA9IDU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IEhUTUxEb2N1bWVudCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpZXJzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgbmV3Tm90aWZpZXIobm90aWZpZXJSZWY6IE5vdGlmaWVyUmVmKSB7XHJcbiAgICAgICAgbm90aWZpZXJSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh0aGlzLmRlbGV0ZVBvcnRhbC5iaW5kKHRoaXMpKTtcclxuICAgICAgICBub3RpZmllclJlZi5jaGFuZ2VkU3R5bGUodGhpcy5nZXRTdHlsZU5ld05vdGlmaWVyKG5vdGlmaWVyUmVmKSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5vdGlmaWVycy5sZW5ndGggPj0gdGhpcy5tYXhOb3RpZmllcnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyID0gdGhpcy5ub3RpZmllcnMuc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIG5vdGlmaWVyLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke25vdGlmaWVyUmVmLmNvbXBvbmVudC5faWR9ID4gYWRkYXBwdGFibGUtbm90aWZpZXIgPiAuYWRkYXBwdGFibGUtbm90aWZpZXJgKTtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmllcnMuZm9yRWFjaChub3RpZmllciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50Tm90aWZpZXIgPSB0aGlzLl9kb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihgIyR7bm90aWZpZXIuY29tcG9uZW50Ll9pZH0gPiBhZGRhcHB0YWJsZS1ub3RpZmllciA+IC5hZGRhcHB0YWJsZS1ub3RpZmllcmApO1xyXG4gICAgICAgICAgICAgICAgbm90aWZpZXIuY2hhbmdlZFN0eWxlKHRoaXMuZ2V0U3R5bGVOb3RpZmllclBvc2l0aW9uKGVsZW1lbnROb3RpZmllciwgZWxlbWVudC5jbGllbnRIZWlnaHQpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpZXJzLnB1c2gobm90aWZpZXJSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTdHlsZU5ld05vdGlmaWVyKG5vdGlmaWVyUmVmOiBOb3RpZmllclJlZik7XHJcblxyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFN0eWxlTm90aWZpZXJQb3NpdGlvbihkaXZOb3RpZmllcjogSFRNTERpdkVsZW1lbnQsIGNsaWVudEhlaWdodDogbnVtYmVyKTtcclxuXHJcbiAgICBwcml2YXRlIGRlbGV0ZVBvcnRhbChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgbm90aWZpZXIgPSB0aGlzLm5vdGlmaWVycy5maW5kSW5kZXgoeCA9PiB4LmNvbXBvbmVudC5faWQgPT09IGlkKTtcclxuICAgICAgICBpZiAobm90aWZpZXIgPj0gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZG9jdW1lbnRcclxuICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihgIyR7dGhpcy5ub3RpZmllcnNbbm90aWZpZXJdLmNvbXBvbmVudC5faWR9ID4gYWRkYXBwdGFibGUtbm90aWZpZXIgPiAuYWRkYXBwdGFibGUtbm90aWZpZXJgKTtcclxuICAgICAgICAgICAgY29uc3QgY2xpZW50SGVpZ2h0RWxlbWVudERlbGV0ZSA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWVycy5zcGxpY2Uobm90aWZpZXIsIDEpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IG5vdGlmaWVyIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm90aWZpZXJTdHlsZSA9IHRoaXMubm90aWZpZXJzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRDaGFuZ2UgPSB0aGlzLl9kb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihgIyR7bm90aWZpZXJTdHlsZS5jb21wb25lbnQuX2lkfSA+IGFkZGFwcHRhYmxlLW5vdGlmaWVyID4gLmFkZGFwcHRhYmxlLW5vdGlmaWVyYCk7XHJcbiAgICAgICAgICAgICAgICBub3RpZmllclN0eWxlLmNoYW5nZWRTdHlsZSh0aGlzLmdldFN0eWxlRGVsZXRlTm90aWZpZXIoZWxlbWVudENoYW5nZSwgY2xpZW50SGVpZ2h0RWxlbWVudERlbGV0ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTdHlsZURlbGV0ZU5vdGlmaWVyKGVsZW1lbnRDaGFuZ2U6IEhUTUxEaXZFbGVtZW50LCBjbGllbnRIZWlnaHRFbGVtZW50RGVsZXRlOiBudW1iZXIpO1xyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubm90aWZpZXJzLmZvckVhY2gobm90aWZpZXIgPT4ge1xyXG4gICAgICAgICAgICBub3RpZmllci5jbG9zZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==