alert-notification
Version:
A lightweight easy to use module to display alert notifications inside you Angular web applications.
143 lines • 8.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export class AlertService {
constructor() {
this.position = 'bottom-right';
this.interval = 5000;
this.autodismiss = true;
this.alerts = [];
this.positionUpdated = new Subject();
this.alertUpdated = new Subject();
}
/**
* @return {?}
*/
getPosition() {
return this.position;
}
/**
* @param {?} position
* @return {?}
*/
setPosition(position) {
this.position = position;
console.log('set' + this.position);
this.positionUpdated.next(this.position);
}
/**
* @return {?}
*/
getPositionUpdateListner() {
return this.positionUpdated.asObservable();
}
/**
* @return {?}
*/
getAlerts() {
return this.alerts;
}
/**
* @param {?} newId
* @param {?} newType
* @param {?} newTitle
* @param {?} newMessage
* @return {?}
*/
push(newId, newType, newTitle, newMessage) {
this.alerts.push({
id: newId,
title: newTitle,
message: newMessage,
type: newType.toLowerCase()
});
this.alertUpdated.next(this.alerts);
if (this.autodismiss) {
setTimeout((/**
* @return {?}
*/
() => {
this.removeAlert(newId);
}), this.interval);
}
}
/**
* @param {?} id
* @return {?}
*/
removeAlert(id) {
/** @type {?} */
const updatedAlerts = [];
this.alerts.forEach((/**
* @param {?} alert
* @return {?}
*/
alert => {
if (alert.id !== id) {
updatedAlerts.push(alert);
}
}));
this.alerts = updatedAlerts;
this.alertUpdated.next(this.alerts);
}
/**
* @return {?}
*/
getAlertUpdateListner() {
return this.alertUpdated.asObservable();
}
/**
* @param {?} time
* @return {?}
*/
setInterval(time) {
this.interval = time;
}
/**
* @param {?} dismiss
* @return {?}
*/
setAutoDismiss(dismiss) {
this.autodismiss = dismiss;
}
}
AlertService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */ AlertService.ngInjectableDef = i0.defineInjectable({ factory: function AlertService_Factory() { return new AlertService(); }, token: AlertService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
AlertService.prototype.position;
/**
* @type {?}
* @private
*/
AlertService.prototype.interval;
/**
* @type {?}
* @private
*/
AlertService.prototype.autodismiss;
/** @type {?} */
AlertService.prototype.alerts;
/**
* @type {?}
* @private
*/
AlertService.prototype.positionUpdated;
/**
* @type {?}
* @private
*/
AlertService.prototype.alertUpdated;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtbm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbGVydC1ub3RpZmljYXRpb24vIiwic291cmNlcyI6WyJsaWIvYWxlcnQtbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJVSxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7S0EwRC9DOzs7O0lBeERDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7O0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzs7O0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzs7Ozs7OztJQUVELElBQUksQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLFFBQWdCLEVBQUUsVUFBa0I7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixFQUFFLEVBQUUsS0FBSztZQUNULEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTyxFQUFFLFVBQVU7WUFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUU7U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixVQUFVOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsRUFBVTs7Y0FDZCxhQUFhLEdBQVksRUFBRTtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Ozs7UUFBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuQixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7OztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxPQUFnQjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDOzs7WUFsRUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7Ozs7OztJQUVDLGdDQUFrQzs7Ozs7SUFDbEMsZ0NBQXdCOzs7OztJQUN4QixtQ0FBMkI7O0lBQzNCLDhCQUFxQjs7Ozs7SUFDckIsdUNBQWdEOzs7OztJQUNoRCxvQ0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4vYWxlcnQtbm90aWZpY2F0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0U2VydmljZSB7XG4gIHByaXZhdGUgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcbiAgcHJpdmF0ZSBpbnRlcnZhbCA9IDUwMDA7XG4gIHByaXZhdGUgYXV0b2Rpc21pc3MgPSB0cnVlO1xuICBhbGVydHM6IEFsZXJ0W10gPSBbXTtcbiAgcHJpdmF0ZSBwb3NpdGlvblVwZGF0ZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgYWxlcnRVcGRhdGVkID0gbmV3IFN1YmplY3Q8QWxlcnRbXT4oKTtcblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbjtcbiAgfVxuXG4gIHNldFBvc2l0aW9uKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgY29uc29sZS5sb2coJ3NldCcgKyB0aGlzLnBvc2l0aW9uKTtcbiAgICB0aGlzLnBvc2l0aW9uVXBkYXRlZC5uZXh0KHRoaXMucG9zaXRpb24pO1xuICB9XG5cbiAgZ2V0UG9zaXRpb25VcGRhdGVMaXN0bmVyKCkge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9uVXBkYXRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldEFsZXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5hbGVydHM7XG4gIH1cblxuICBwdXNoKG5ld0lkOiBzdHJpbmcsIG5ld1R5cGU6IHN0cmluZywgbmV3VGl0bGU6IHN0cmluZywgbmV3TWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hbGVydHMucHVzaCh7XG4gICAgICBpZDogbmV3SWQsXG4gICAgICB0aXRsZTogbmV3VGl0bGUsXG4gICAgICBtZXNzYWdlOiBuZXdNZXNzYWdlLFxuICAgICAgdHlwZTogbmV3VHlwZS50b0xvd2VyQ2FzZSgpXG4gICAgfSk7XG4gICAgdGhpcy5hbGVydFVwZGF0ZWQubmV4dCh0aGlzLmFsZXJ0cyk7XG5cbiAgICBpZiAodGhpcy5hdXRvZGlzbWlzcykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWxlcnQobmV3SWQpO1xuICAgICAgfSwgdGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQWxlcnQoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGVydHM6IEFsZXJ0W10gPSBbXTtcbiAgICB0aGlzLmFsZXJ0cy5mb3JFYWNoKGFsZXJ0ID0+IHtcbiAgICAgIGlmIChhbGVydC5pZCAhPT0gaWQpIHtcbiAgICAgICAgdXBkYXRlZEFsZXJ0cy5wdXNoKGFsZXJ0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFsZXJ0cyA9IHVwZGF0ZWRBbGVydHM7XG4gICAgdGhpcy5hbGVydFVwZGF0ZWQubmV4dCh0aGlzLmFsZXJ0cyk7XG4gIH1cblxuICBnZXRBbGVydFVwZGF0ZUxpc3RuZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxlcnRVcGRhdGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0SW50ZXJ2YWwodGltZTogbnVtYmVyKSB7XG4gICAgdGhpcy5pbnRlcnZhbCA9IHRpbWU7XG4gIH1cblxuICBzZXRBdXRvRGlzbWlzcyhkaXNtaXNzOiBib29sZWFuKSB7XG4gICAgdGhpcy5hdXRvZGlzbWlzcyA9IGRpc21pc3M7XG4gIH1cbn1cbiJdfQ==