ngx-notification
Version:
Angular Library to display all types of notifications in a Toast Notification format. Tested on Angular 6
162 lines (153 loc) • 14.9 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('@angular/common'), require('@angular/platform-browser')) :
typeof define === 'function' && define.amd ? define('ngx-notification', ['exports', '@angular/core', 'rxjs', '@angular/common', '@angular/platform-browser'], factory) :
(factory((global['ngx-notification'] = {}),global.ng.core,null,global.ng.common,global.ng.platformBrowser));
}(this, (function (exports,i0,rxjs,common,platformBrowser) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var NgxNotificationService = (function () {
function NgxNotificationService() {
this.subject = new rxjs.Subject();
}
/**
* @param {?} message
* @param {?} theme
* @param {?} position
* @return {?}
*/
NgxNotificationService.prototype.sendMessage = /**
* @param {?} message
* @param {?} theme
* @param {?} position
* @return {?}
*/
function (message, theme, position) {
this.subject.next({
text: message,
theme: theme,
position: position
});
};
/**
* @return {?}
*/
NgxNotificationService.prototype.clearMessage = /**
* @return {?}
*/
function () {
this.subject.next();
};
/**
* @return {?}
*/
NgxNotificationService.prototype.getMessage = /**
* @return {?}
*/
function () {
return this.subject.asObservable();
};
NgxNotificationService.decorators = [
{ type: i0.Injectable, args: [{
providedIn: 'root'
},] },
];
/** @nocollapse */
NgxNotificationService.ctorParameters = function () { return []; };
/** @nocollapse */ NgxNotificationService.ngInjectableDef = i0.defineInjectable({ factory: function NgxNotificationService_Factory() { return new NgxNotificationService(); }, token: NgxNotificationService, providedIn: "root" });
return NgxNotificationService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var NgxNotificationComponent = (function () {
function NgxNotificationComponent(ngxNotificationService) {
var _this = this;
this.ngxNotificationService = ngxNotificationService;
this.message = {};
this.subscription = this.ngxNotificationService.getMessage()
.subscribe(function (message) {
_this.show = true;
_this.message = message;
console.log(_this.message);
_this.autoHideMessage();
});
}
/**
* @return {?}
*/
NgxNotificationComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () { };
/**
* @return {?}
*/
NgxNotificationComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.subscription.unsubscribe();
};
/**
* @return {?}
*/
NgxNotificationComponent.prototype.autoHideMessage = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout(function () {
_this.show = false;
}, 5000);
};
NgxNotificationComponent.decorators = [
{ type: i0.Component, args: [{
selector: 'lib-ngx-notification',
template: "<div *ngIf='show' class='ngx-notification {{ message.position }} {{ message.theme }} show'>{{message?.text }}</div>",
styles: ["\n .ngx-notification.dark {\n background-color: #2d2d30;\n border-color: #272729;\n color: #c9c9c9;\n }\n .ngx-notification.light {\n background-color: #ffffff;\n border-color: #cccccc;\n color: #2d2d30;\n }\n .ngx-notification.success {\n background-color: #dff0d8;\n border-color: #d0e9c6;\n color: #3c763d;\n }\n .ngx-notification.info {\n background-color: #d9edf7;\n border-color: #bcdff1;\n color: #31708f;\n }\n .ngx-notification.warning {\n background-color: #fcf8e3;\n border-color: #faf2cc;\n color: #8a6d3b;\n }\n .ngx-notification.danger {\n background-color: #f2dede;\n border-color: #ebcccc;\n color: #a94442;\n }\n .ngx-notification.top-left {\n position: fixed;\n left: 10px;\n top: 10px;\n }\n .ngx-notification.top-right {\n position: fixed;\n right: 10px;\n top: 10px;\n }\n .ngx-notification.bottom-right {\n position: fixed;\n right: 10px;\n bottom: 10px;\n }\n .ngx-notification.bottom-left {\n position: fixed;\n left: 10px;\n bottom: 10px;\n }\n .ngx-notification.center {\n position:absolute;\n top: 50%;\n left: 50%;\n margin-top: -9em;\n margin-left: -15em;\n }\n .ngx-notification {\n padding: .75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: .25rem;\n -webkit-animation: fadein 1.5s, fadeout 1.5s 3.5s;\n animation: fadein 1.5s, fadeout 1.5s 3.5s;\n z-index : 1;\n }\n\n /* Animations to fade the snackbar in and out */\n @-webkit-keyframes fadein {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n @keyframes fadein {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n @-webkit-keyframes fadeout {\n from {opacity: 1;}\n to {opacity: 0;}\n }\n\n @keyframes fadeout {\n from {opacity: 1;}\n to {opacity: 0;}\n }\n "]
},] },
];
/** @nocollapse */
NgxNotificationComponent.ctorParameters = function () {
return [
{ type: NgxNotificationService, },
];
};
return NgxNotificationComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var NgxNotificationModule = (function () {
function NgxNotificationModule() {
}
NgxNotificationModule.decorators = [
{ type: i0.NgModule, args: [{
imports: [
common.CommonModule,
platformBrowser.BrowserModule
],
declarations: [NgxNotificationComponent],
exports: [NgxNotificationComponent]
},] },
];
return NgxNotificationModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
exports.NgxNotificationService = NgxNotificationService;
exports.NgxNotificationComponent = NgxNotificationComponent;
exports.NgxNotificationModule = NgxNotificationModule;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5vdGlmaWNhdGlvbi51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1ub3RpZmljYXRpb24vbGliL25neC1ub3RpZmljYXRpb24uc2VydmljZS50cyIsIm5nOi8vbmd4LW5vdGlmaWNhdGlvbi9saWIvbmd4LW5vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCJuZzovL25neC1ub3RpZmljYXRpb24vbGliL25neC1ub3RpZmljYXRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hOb3RpZmljYXRpb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHByaXZhdGUgc3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBzZW5kTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcsIHRoZW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dChcbiAgICAgIHtcbiAgICAgICAgdGV4dDogbWVzc2FnZSxcbiAgICAgICAgdGhlbWU6IHRoZW1lLFxuICAgICAgICBwb3NpdGlvbjogcG9zaXRpb25cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xlYXJNZXNzYWdlKCkge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBnZXRNZXNzYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG59XG4iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5neE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25neC1ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uZ3gtbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGU6IGA8ZGl2ICpuZ0lmPSdzaG93JyBjbGFzcz0nbmd4LW5vdGlmaWNhdGlvbiB7eyBtZXNzYWdlLnBvc2l0aW9uIH19IHt7IG1lc3NhZ2UudGhlbWUgfX0gc2hvdyc+e3ttZXNzYWdlPy50ZXh0IH19PC9kaXY+YCxcbiAgc3R5bGVzOiBbYFxuICAubmd4LW5vdGlmaWNhdGlvbi5kYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQyZDMwO1xuICAgIGJvcmRlci1jb2xvcjogIzI3MjcyOTtcbiAgICBjb2xvcjogI2M5YzljOTtcbiAgfVxuICAubmd4LW5vdGlmaWNhdGlvbi5saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMyZDJkMzA7XG4gIH1cbiAgLm5neC1ub3RpZmljYXRpb24uc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgICAgIGJvcmRlci1jb2xvcjogI2QwZTljNjtcbiAgICAgIGNvbG9yOiAjM2M3NjNkO1xuICB9XG4gIC5uZ3gtbm90aWZpY2F0aW9uLmluZm8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmNkZmYxO1xuICAgIGNvbG9yOiAjMzE3MDhmO1xuICB9XG4gIC5uZ3gtbm90aWZpY2F0aW9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmFmMmNjO1xuICAgIGNvbG9yOiAjOGE2ZDNiO1xuICB9XG4gIC5uZ3gtbm90aWZpY2F0aW9uLmRhbmdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgICBib3JkZXItY29sb3I6ICNlYmNjY2M7XG4gICAgY29sb3I6ICNhOTQ0NDI7XG4gIH1cbiAgLm5neC1ub3RpZmljYXRpb24udG9wLWxlZnQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogMTBweDtcbiAgfVxuICAubmd4LW5vdGlmaWNhdGlvbi50b3AtcmlnaHQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMTBweDtcbiAgICB0b3A6IDEwcHg7XG4gIH1cbiAgLm5neC1ub3RpZmljYXRpb24uYm90dG9tLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgYm90dG9tOiAxMHB4O1xuICB9XG4gIC5uZ3gtbm90aWZpY2F0aW9uLmJvdHRvbS1sZWZ0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMTBweDtcbiAgICBib3R0b206IDEwcHg7XG4gIH1cbiAgLm5neC1ub3RpZmljYXRpb24uY2VudGVyIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTllbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVlbTtcbiAgfVxuICAubmd4LW5vdGlmaWNhdGlvbiB7XG4gICAgcGFkZGluZzogLjc1cmVtIDEuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGZhZGVpbiAxLjVzLCBmYWRlb3V0IDEuNXMgMy41cztcbiAgICBhbmltYXRpb246IGZhZGVpbiAxLjVzLCBmYWRlb3V0IDEuNXMgMy41cztcbiAgICB6LWluZGV4IDogMTtcbiAgfVxuXG4gIC8qIEFuaW1hdGlvbnMgdG8gZmFkZSB0aGUgc25hY2tiYXIgaW4gYW5kIG91dCAqL1xuICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZWluIHtcbiAgICBmcm9tIHtvcGFjaXR5OiAwO31cbiAgICB0byB7b3BhY2l0eTogMTt9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGZhZGVpbiB7XG4gICAgZnJvbSB7b3BhY2l0eTogMDt9XG4gICAgdG8ge29wYWNpdHk6IDE7fVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVvdXQge1xuICAgIGZyb20ge29wYWNpdHk6IDE7fVxuICAgIHRvIHtvcGFjaXR5OiAwO31cbiAgfVxuXG4gIEBrZXlmcmFtZXMgZmFkZW91dCB7XG4gICAgZnJvbSB7b3BhY2l0eTogMTt9XG4gICAgdG8ge29wYWNpdHk6IDA7fVxuICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIE5neE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBzaG93O1xuICBtZXNzYWdlOiBhbnkgPSB7fTtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ3hOb3RpZmljYXRpb25TZXJ2aWNlOiBOZ3hOb3RpZmljYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLm5neE5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0TWVzc2FnZSgpXG4gICAgLnN1YnNjcmliZShcbiAgICAgIG1lc3NhZ2UgPT4ge1xuICAgICAgICB0aGlzLnNob3cgPSB0cnVlO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmF1dG9IaWRlTWVzc2FnZSgpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGF1dG9IaWRlTWVzc2FnZSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICB9LCA1MDAwKTtcbiAgfVxuXG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5neE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LW5vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJyb3dzZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4Tm90aWZpY2F0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW05neE5vdGlmaWNhdGlvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4Tm90aWZpY2F0aW9uTW9kdWxlIHsgfVxuIl0sIm5hbWVzIjpbIlN1YmplY3QiLCJJbmplY3RhYmxlIiwiQ29tcG9uZW50IiwiTmdNb2R1bGUiLCJDb21tb25Nb2R1bGUiLCJCcm93c2VyTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7UUFRRTsyQkFFa0IsSUFBSUEsWUFBTyxFQUFPO1NBRm5COzs7Ozs7O1FBSWpCLDRDQUFXOzs7Ozs7WUFBWCxVQUFZLE9BQWUsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7Z0JBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmO29CQUNFLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxLQUFLO29CQUNaLFFBQVEsRUFBRSxRQUFRO2lCQUNuQixDQUNGLENBQUM7YUFDSDs7OztRQUVELDZDQUFZOzs7WUFBWjtnQkFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3JCOzs7O1FBRUQsMkNBQVU7OztZQUFWO2dCQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNwQzs7b0JBekJGQyxhQUFVLFNBQUM7d0JBQ1YsVUFBVSxFQUFFLE1BQU07cUJBQ25COzs7OztxQ0FMRDs7Ozs7OztBQ0FBO1FBdUdFLGtDQUFvQixzQkFBOEM7WUFBbEUsaUJBVUM7WUFWbUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjsyQkFIbkQsRUFBRTtZQUlmLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRTtpQkFDM0QsU0FBUyxDQUNSLFVBQUEsT0FBTztnQkFDTCxLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsS0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMxQixLQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDeEIsQ0FDRixDQUFDO1NBQ0g7Ozs7UUFFRCwyQ0FBUTs7O1lBQVIsZUFBYTs7OztRQUViLDhDQUFXOzs7WUFBWDtnQkFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ2pDOzs7O1FBRUQsa0RBQWU7OztZQUFmO2dCQUFBLGlCQUlDO2dCQUhDLFVBQVUsQ0FBQztvQkFDVCxLQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztpQkFDckIsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNSOztvQkF6SEZDLFlBQVMsU0FBQzt3QkFDVCxRQUFRLEVBQUUsc0JBQXNCO3dCQUNoQyxRQUFRLEVBQUUscUhBQXFIO3dCQUMvSCxNQUFNLEVBQUUsQ0FBQyxxMURBd0ZSLENBQUM7cUJBQ0g7Ozs7O3dCQTlGUSxzQkFBc0I7Ozt1Q0FGL0I7Ozs7Ozs7QUNBQTs7OztvQkFLQ0MsV0FBUSxTQUFDO3dCQUNSLE9BQU8sRUFBRTs0QkFDUEMsbUJBQVk7NEJBQ1pDLDZCQUFhO3lCQUNkO3dCQUNELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO3dCQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDcEM7O29DQVpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9