UNPKG

alert-notification

Version:

A lightweight easy to use module to display alert notifications inside you Angular web applications.

143 lines 8.35 kB
/** * @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==