ngx-toast-notifier
Version:
This is a nofitications library for Angular
1 lines • 19.2 kB
Source Map (JSON)
{"version":3,"file":"ngx-toast-notifier.mjs","sources":["../../../projects/ngx-toast-notifier/src/lib/interfaces/i-notification.ts","../../../projects/ngx-toast-notifier/src/lib/services/ngx-toast-notifier.service.ts","../../../projects/ngx-toast-notifier/src/lib/services/ngx-toast.service.ts","../../../projects/ngx-toast-notifier/src/lib/animations/animations.ts","../../../projects/ngx-toast-notifier/src/lib/components/notification/notification.component.ts","../../../projects/ngx-toast-notifier/src/lib/components/ngx-toast-notifier.component.ts","../../../projects/ngx-toast-notifier/src/lib/ngx-toast-notifier.module.ts","../../../projects/ngx-toast-notifier/src/public-api.ts","../../../projects/ngx-toast-notifier/src/ngx-toast-notifier.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface INotification{\r\n title: string;\r\n text: string;\r\n icon: 'success' | 'warning' | 'info' | 'danger';\r\n bgColor: string | undefined;\r\n}\r\n\r\n\r\nexport interface GlobalConfiguration{\r\n timeOut: number;\r\n bgColors: Partial<BgColors>\r\n}\r\n\r\nexport interface BgColors{\r\n success: string;\r\n warning: string;\r\n info: string;\r\n danger: string;\r\n}\r\n\r\nexport const DefaultGlobalConfig: GlobalConfiguration = {\r\n timeOut: 3000,\r\n bgColors: {\r\n success: '#54a254',\r\n warning: '#e09f26',\r\n info: '#1976d2',\r\n danger: '#da2d2d',\r\n }\r\n}\r\n\r\nexport interface NotificationToken{\r\n default: GlobalConfiguration,\r\n config: Partial<GlobalConfiguration>\r\n}\r\n\r\n\r\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationToken>('NotificationConfig');","import { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n INotification,\r\n NotificationToken,\r\n NOTIFICATION_CONFIG,\r\n} from '../interfaces/i-notification';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NgxToastNotifierService {\r\n private $notifications: BehaviorSubject<INotification[]> =\r\n new BehaviorSubject<INotification[]>([]);\r\n public $notificationsObs = this.$notifications.asObservable();\r\n public defaultConfig!: NotificationToken;\r\n constructor(@Inject(NOTIFICATION_CONFIG) config: NotificationToken) {\r\n this.defaultConfig = config;\r\n }\r\n\r\n get notifications(): INotification[] {\r\n return this.$notifications.value;\r\n }\r\n\r\n onShowNotification(notification: INotification): void {\r\n this.$notifications.next([\r\n ...this.notifications,\r\n {\r\n ...notification,\r\n },\r\n ]);\r\n\r\n setTimeout(() => {\r\n this.onRemove()\r\n }, this.defaultConfig.config.timeOut ? this.defaultConfig.config.timeOut : this.defaultConfig.default.timeOut);\r\n }\r\n\r\n private onRemove(): void {\r\n this.notifications.shift()\r\n this.$notifications.next(this.notifications);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { INotification } from '../interfaces/i-notification';\nimport { NgxToastNotifierService } from './ngx-toast-notifier.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxToastService {\n\n constructor(private ngxToastService: NgxToastNotifierService) { }\n\n\n onSuccess(title: string, text: string): void {\n const notification: INotification = {\n text,\n title,\n icon: 'success',\n bgColor: this.ngxToastService.defaultConfig.config.bgColors?.success\n ? this.ngxToastService.defaultConfig.config.bgColors.success\n : this.ngxToastService.defaultConfig.default.bgColors.success,\n };\n this.ngxToastService.onShowNotification(notification);\n }\n\n onInfo(title: string, text: string): void {\n const notification: INotification = {\n text,\n title,\n icon: 'info',\n bgColor: this.ngxToastService.defaultConfig.config.bgColors?.info\n ? this.ngxToastService.defaultConfig.config.bgColors.info\n : this.ngxToastService.defaultConfig.default.bgColors.info,\n };\n this.ngxToastService.onShowNotification(notification);\n }\n\n onWarning(title: string, text: string): void {\n const notification: INotification = {\n text,\n title,\n icon: 'warning',\n bgColor: this.ngxToastService.defaultConfig.config.bgColors?.warning\n ? this.ngxToastService.defaultConfig.config.bgColors.warning\n : this.ngxToastService.defaultConfig.default.bgColors.warning,\n };\n this.ngxToastService.onShowNotification(notification);\n }\n\n onDanger(title: string, text: string): void {\n const notification: INotification = {\n text,\n title,\n icon: 'danger',\n bgColor: this.ngxToastService.defaultConfig.config.bgColors?.danger\n ? this.ngxToastService.defaultConfig.config.bgColors.danger\n : this.ngxToastService.defaultConfig.default.bgColors.danger,\n };\n this.ngxToastService.onShowNotification(notification);\n }\n}\n","import {\r\n animate,\r\n AnimationTriggerMetadata,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nexport const onEnterLeave: AnimationTriggerMetadata = trigger('onEnterLeave', [\r\n transition(':enter', [\r\n style({ opacity: '0' }),\r\n animate(500, style({ opacity: '1' })),\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: '1' }),\r\n animate(500, style({ opacity: '0' })),\r\n ]),\r\n]);\r\n","import { Component, Input } from '@angular/core';\r\nimport { INotification } from '../../interfaces/i-notification';\r\nimport { NgxToastNotifierService } from '../../services/ngx-toast-notifier.service';\r\n\r\n@Component({\r\n selector: 'ngx-notification',\r\n template: `\r\n <div\r\n class=\"wrap-notification\"\r\n [ngStyle]=\"{'background-color' : notificationData.bgColor}\"\r\n >\r\n <div class=\"icon-start\">\r\n <svg viewBox=\"0 0 24 24\" *ngIf=\"notificationData.icon === 'success'\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M16.59 7.58L10 14.17L7.41 11.59L6 13L10 17L18 9L16.59 7.58Z\"\r\n />\r\n </svg>\r\n <svg viewBox=\"0 0 24 24\" *ngIf=\"notificationData.icon === 'info'\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z\"\r\n />\r\n </svg>\r\n <svg viewBox=\"0 0 24 24\" *ngIf=\"notificationData.icon === 'warning'\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"\r\n />\r\n </svg>\r\n\r\n <svg viewBox=\"0 0 24 24\" *ngIf=\"notificationData.icon === 'danger'\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"wrap-texts\">\r\n <h3>{{ notificationData.title }}</h3>\r\n <p>{{ notificationData.text }}</p>\r\n </div>\r\n </div>\r\n `,\r\n styles: [\r\n `\r\n :host{\r\n cursor: default;\r\n }\r\n .wrap-notification {\r\n display: flex;\r\n padding: 10px 15px;\r\n width: 100%;\r\n border-radius: 5px;\r\n margin-bottom: 8px;\r\n color: #ffffff;\r\n min-height: 50px;\r\n }\r\n\r\n .icon-start {\r\n height: 30px;\r\n width: 30px;\r\n flex: 0 0 30px;\r\n margin-right: 5px;\r\n }\r\n \r\n .wrap-texts {\r\n flex: auto;\r\n }\r\n\r\n .wrap-texts h3 {\r\n font-size: 16px;\r\n width: 100%;\r\n margin: 0;\r\n }\r\n\r\n .wrap-texts p {\r\n font-size: 14px;\r\n width: 100%;\r\n margin: 0;\r\n }\r\n\r\n .wrap-notification:hover {\r\n box-shadow: 0px 10px 70px -3px rgba(0, 0, 0, 0.1);\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NotificationComponent {\r\n @Input() notificationData!: INotification;\r\n constructor(private notificationSvc: NgxToastNotifierService) {}\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { onEnterLeave } from '../animations/animations';\nimport { INotification } from '../interfaces/i-notification';\nimport { NgxToastNotifierService } from '../services/ngx-toast-notifier.service';\n\n@Component({\n selector: 'ngx-toast-notifier',\n template: `\n <div class=\"wrap-notifications\">\n <ngx-notification\n [notificationData]=\"item\"\n *ngFor=\"let item of $notifications | async\"\n @onEnterLeave\n >\n </ngx-notification>\n </div>\n `,\n styles: [\n `\n :host {\n display: flex;\n position: fixed;\n width: 300px;\n height: auto;\n max-height: 100vh;\n overflow: auto;\n top: 80px;\n right: 15px;\n z-index: 99;\n }\n\n .wrap-notifications {\n position: relative;\n width: 100%;\n overflow: hidden;\n }\n\n @media only screen and (max-width: 500px) {\n :host {\n width: 95%;\n top: 20px;\n left: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n }\n }\n `,\n ],\n animations: [onEnterLeave],\n})\nexport class NgxToastNotifierComponent implements OnInit {\n $notifications!: Observable<INotification[]>;\n constructor(private notificationSvc: NgxToastNotifierService) {}\n\n ngOnInit(): void {\n this.$notifications = this.notificationSvc.$notificationsObs;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DefaultGlobalConfig, GlobalConfiguration, NOTIFICATION_CONFIG } from './interfaces/i-notification';\nimport { NgxToastNotifierComponent } from './components/ngx-toast-notifier.component';\nimport { NotificationComponent } from './components/notification/notification.component';\n\n\n\n@NgModule({\n declarations: [\n NgxToastNotifierComponent,\n NotificationComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgxToastNotifierComponent\n ]\n})\nexport class NgxToastNotifierModule {\n static forRoot(config : Partial<GlobalConfiguration> = {}): ModuleWithProviders<NgxToastNotifierModule>{\n return {\n ngModule: NgxToastNotifierModule,\n providers: [\n {\n provide: NOTIFICATION_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config\n }\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of ngx-toast-notifier\n */\n\nexport * from './lib/services/ngx-toast-notifier.service';\nexport * from './lib/services/ngx-toast.service';\nexport * from './lib/components/ngx-toast-notifier.component';\nexport * from './lib/ngx-toast-notifier.module';\nexport * from './lib/animations/animations'\nexport * from './lib/interfaces/i-notification'\nexport * from './lib/components/notification/notification.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxToastNotifierService","i2.NotificationComponent","i3"],"mappings":"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"}