UNPKG

48.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"angular2-notifications.js","sources":["../../../src/lib/consts/default-icons.const.ts","../../../src/lib/enums/notification-type.enum.ts","../../../src/lib/services/notifications.service.ts","../../../src/lib/components/notification/notification.component.ts","../../../src/lib/components/notification/notification.component.html","../../../src/lib/enums/notification-animation-type.enum.ts","../../../src/lib/components/simple-notifications/simple-notifications.component.ts","../../../src/lib/components/simple-notifications/simple-notifications.component.html","../../../src/lib/consts/default-options.const.ts","../../../src/lib/simple-notifications.module.ts","../../../src/angular2-notifications.ts"],"sourcesContent":["import {Icons} from '../interfaces/icons';\r\n\r\nexport const DEFAULT_ICONS: Icons = {\r\n alert: `\r\n <svg class=\"simple-notification-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n <path d=\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"/>\r\n </svg>\r\n `,\r\n error: `\r\n <svg class=\"simple-notification-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\r\n <path d=\"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"/>\r\n </svg>\r\n `,\r\n info: `\r\n <svg class=\"simple-notification-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n <path d=\"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z\"/>\r\n </svg>\r\n `,\r\n success: `\r\n <svg class=\"simple-notification-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\r\n </svg>\r\n `,\r\n warn: `\r\n <svg class=\"simple-notification-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" width=\"64\" viewBox=\"0 0 64 64\" height=\"64\">\r\n <circle cx=\"32.086\" cy=\"50.142\" r=\"2.256\"/>\r\n <path d=\"M30.08 25.012V42.32c0 1.107.897 2.005 2.006 2.005s2.006-.897 2.006-2.005V25.012c0-1.107-.897-2.006-2.006-2.006s-2.006.898-2.006 2.006z\"/>\r\n <path d=\"M63.766 59.234L33.856 3.082c-.697-1.308-2.844-1.308-3.54 0L.407 59.234c-.331.622-.312 1.372.051 1.975.362.605 1.015.975 1.72.975h59.816c.705 0 1.357-.369 1.721-.975.361-.603.381-1.353.051-1.975zM5.519 58.172L32.086 8.291l26.568 49.881H5.519z\"/>\r\n </svg>\r\n `\r\n};\r\n","export enum NotificationType {\r\n Success = 'success',\r\n Error = 'error',\r\n Alert = 'alert',\r\n Info = 'info',\r\n Warn = 'warn',\r\n Bare = 'bare'\r\n}\r\n","import { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { DEFAULT_ICONS } from '../consts/default-icons.const';\r\nimport { NotificationType } from '../enums/notification-type.enum';\r\nimport { Icons } from '../interfaces/icons';\r\nimport { NotificationEvent } from '../interfaces/notification-event.type';\r\nimport { Notification } from '../interfaces/notification.type';\r\n\r\n@Injectable()\r\nexport class NotificationsService {\r\n constructor(\r\n @Inject('options') public globalOptions: any\r\n ) { }\r\n\r\n emitter = new Subject<NotificationEvent>();\r\n icons: Icons = DEFAULT_ICONS;\r\n\r\n set(notification: Notification, to: boolean): Notification {\r\n notification.id = notification.override && notification.override.id ?\r\n notification.override.id :\r\n Math.random().toString(36).substring(3);\r\n notification.click = new EventEmitter<{}>();\r\n notification.clickIcon = new EventEmitter<{}>();\r\n notification.timeoutEnd = new EventEmitter<{}>();\r\n\r\n this.emitter.next({ command: 'set', notification, add: to });\r\n return notification;\r\n }\r\n\r\n success(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Success, icon: this.icons.success, override, context }, true);\r\n }\r\n\r\n error(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Error, icon: this.icons.error, override, context }, true);\r\n }\r\n\r\n alert(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Alert, icon: this.icons.alert, override, context }, true);\r\n }\r\n\r\n info(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Info, icon: this.icons.info, override, context }, true);\r\n }\r\n\r\n warn(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Warn, icon: this.icons.warn, override, context }, true);\r\n }\r\n\r\n bare(title: any = '', content: any = '', override?: any, context?: any): Notification {\r\n return this.set({ title, content: content || '', type: NotificationType.Bare, icon: 'bare', override, context }, true);\r\n }\r\n\r\n // With type method\r\n create(title: any = '', content: any = '', type = NotificationType.Success, override?: any, context?: any): Notification {\r\n return this.set({ title, content, type, icon: (this.icons as any)[type], override, context }, true);\r\n }\r\n\r\n // HTML Notification method\r\n html(html: any, type = NotificationType.Success, override?: any, icon = 'bare', context?: any): Notification {\r\n return this.set({ html, type, icon: (this.icons as any)[icon], override, context }, true);\r\n }\r\n\r\n // Remove all notifications method\r\n remove(id?: string): void {\r\n if (id) {\r\n this.emitter.next({ command: 'clean', id });\r\n } else {\r\n this.emitter.next({ command: 'cleanAll' });\r\n }\r\n }\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { ChangeDetectionStrategy, Component, Input, NgZone, OnDestroy, OnInit, TemplateRef, ViewEncapsulation, ChangeDetectorRef, ViewRef } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { NotificationAnimationType } from '../../enums/notification-animation-type.enum';\r\nimport { Notification } from '../../interfaces/notification.type';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\n\r\n@Component({\r\n selector: 'simple-notification',\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('enterLeave', [\r\n\r\n // Fade\r\n state('fade', style({opacity: 1})),\r\n transition('* => fade', [\r\n style({opacity: 0}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('fadeOut', style({opacity: 0})),\r\n transition('fade => fadeOut', [\r\n style({opacity: 1}),\r\n animate('300ms ease-in-out')\r\n ]),\r\n\r\n // Enter from top\r\n state('fromTop', style({opacity: 1, transform: 'translateY(0)'})),\r\n transition('* => fromTop', [\r\n style({opacity: 0, transform: 'translateY(-5%)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('fromTopOut', style({opacity: 0, transform: 'translateY(5%)'})),\r\n transition('fromTop => fromTopOut', [\r\n style({opacity: 1, transform: 'translateY(0)'}),\r\n animate('300ms ease-in-out')\r\n ]),\r\n\r\n // Enter from right\r\n state('fromRight', style({opacity: 1, transform: 'translateX(0)'})),\r\n transition('* => fromRight', [\r\n style({opacity: 0, transform: 'translateX(5%)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('fromRightOut', style({opacity: 0, transform: 'translateX(-5%)'})),\r\n transition('fromRight => fromRightOut', [\r\n style({opacity: 1, transform: 'translateX(0)'}),\r\n animate('300ms ease-in-out')\r\n ]),\r\n\r\n // Enter from bottom\r\n state('fromBottom', style({opacity: 1, transform: 'translateY(0)'})),\r\n transition('* => fromBottom', [\r\n style({opacity: 0, transform: 'translateY(5%)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('fromBottomOut', style({opacity: 0, transform: 'translateY(-5%)'})),\r\n transition('fromBottom => fromBottomOut', [\r\n style({opacity: 1, transform: 'translateY(0)'}),\r\n animate('300ms ease-in-out')\r\n ]),\r\n\r\n // Enter from left\r\n state('fromLeft', style({opacity: 1, transform: 'translateX(0)'})),\r\n transition('* => fromLeft', [\r\n style({opacity: 0, transform: 'translateX(-5%)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('fromLeftOut', style({opacity: 0, transform: 'translateX(5%)'})),\r\n transition('fromLeft => fromLeftOut', [\r\n style({opacity: 1, transform: 'translateX(0)'}),\r\n animate('300ms ease-in-out')\r\n ]),\r\n\r\n // Rotate\r\n state('scale', style({opacity: 1, transform: 'scale(1)'})),\r\n transition('* => scale', [\r\n style({opacity: 0, transform: 'scale(0)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('scaleOut', style({opacity: 0, transform: 'scale(0)'})),\r\n transition('scale => scaleOut', [\r\n style({opacity: 1, transform: 'scale(1)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n\r\n // Scale\r\n state('rotate', style({opacity: 1, transform: 'rotate(0deg)'})),\r\n transition('* => rotate', [\r\n style({opacity: 0, transform: 'rotate(5deg)'}),\r\n animate('400ms ease-in-out')\r\n ]),\r\n state('rotateOut', style({opacity: 0, transform: 'rotate(-5deg)'})),\r\n transition('rotate => rotateOut', [\r\n style({opacity: 1, transform: 'rotate(0deg)'}),\r\n animate('400ms ease-in-out')\r\n ])\r\n ])\r\n ],\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class NotificationComponent implements OnInit, OnDestroy {\r\n\r\n @Input() timeOut: number;\r\n @Input() showProgressBar: boolean;\r\n @Input() pauseOnHover: boolean;\r\n @Input() clickToClose: boolean;\r\n @Input() clickIconToClose: boolean;\r\n @Input() maxLength: number;\r\n @Input() theClass: string;\r\n @Input() rtl: boolean;\r\n @Input() animate: NotificationAnimationType;\r\n @Input() position: number;\r\n @Input() item: Notification;\r\n\r\n\r\n // Progress bar variables\r\n title: any;\r\n content: any;\r\n\r\n titleIsTemplate = false;\r\n contentIsTemplate = false;\r\n htmlIsTemplate = false;\r\n\r\n progressWidth = 0;\r\n safeSvg: SafeHtml;\r\n safeInputHtml: SafeHtml;\r\n\r\n private stopTime = false;\r\n private timer: any;\r\n private framesPerSecond = 40;\r\n private sleepTime: number;\r\n private startTime: number;\r\n private endTime: number;\r\n private pauseStart: number;\r\n\r\n private icon: string;\r\n\r\n constructor(\r\n private notificationService: NotificationsService,\r\n private domSanitizer: DomSanitizer,\r\n private cd: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.item.override) {\r\n this.attachOverrides();\r\n }\r\n\r\n if (this.animate) {\r\n this.item.state = this.animate;\r\n }\r\n\r\n if (this.timeOut !== 0) {\r\n this.startTimeOut();\r\n }\r\n\r\n this.contentType(this.item.title, 'title');\r\n this.contentType(this.item.content, 'content');\r\n this.contentType(this.item.html, 'html');\r\n\r\n this.safeSvg = this.domSanitizer.bypassSecurityTrustHtml(this.icon || this.item.icon);\r\n this.safeInputHtml = this.domSanitizer.bypassSecurityTrustHtml(this.item.html);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.timer);\r\n this.cd.detach();\r\n }\r\n\r\n startTimeOut(): void {\r\n this.sleepTime = 1000 / this.framesPerSecond /* ms */;\r\n this.startTime = new Date().getTime();\r\n this.endTime = this.startTime + this.timeOut;\r\n this.zone.runOutsideAngular(() => this.timer = setTimeout(this.instance, this.sleepTime));\r\n }\r\n\r\n onEnter() {\r\n if (this.pauseOnHover) {\r\n this.stopTime = true;\r\n this.pauseStart = new Date().getTime();\r\n }\r\n }\r\n\r\n onLeave() {\r\n if (this.pauseOnHover) {\r\n this.stopTime = false;\r\n this.startTime += (new Date().getTime() - this.pauseStart);\r\n this.endTime += (new Date().getTime() - this.pauseStart);\r\n this.zone.runOutsideAngular(() => setTimeout(this.instance, this.sleepTime));\r\n }\r\n }\r\n\r\n onClick(event: MouseEvent) {\r\n this.item.click!.emit(event);\r\n\r\n if (this.clickToClose) {\r\n this.remove();\r\n }\r\n }\r\n\r\n onClickIcon(event: MouseEvent) {\r\n this.item.clickIcon!.emit(event);\r\n\r\n if (this.clickIconToClose) {\r\n this.remove();\r\n }\r\n }\r\n\r\n // Attach all the overrides\r\n attachOverrides() {\r\n Object.keys(this.item.override).forEach(a => {\r\n if (this.hasOwnProperty(a)) {\r\n (this as any)[a] = this.item.override[a];\r\n }\r\n });\r\n }\r\n\r\n private instance = () => {\r\n const now = new Date().getTime();\r\n\r\n if (this.endTime < now) {\r\n this.remove();\r\n this.item.timeoutEnd!.emit();\r\n } else if (!this.stopTime) {\r\n if (this.showProgressBar) {\r\n // We add this.sleepTime just to have 100% before close\r\n this.progressWidth = Math.min((now - this.startTime + this.sleepTime) * 100 / this.timeOut, 100);\r\n }\r\n\r\n this.timer = setTimeout(this.instance, this.sleepTime);\r\n }\r\n this.zone.run(() => {\r\n if (!(this.cd as ViewRef).destroyed) {\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n private remove() {\r\n if (this.animate) {\r\n this.item.state = this.animate + 'Out';\r\n setTimeout(() => {\r\n this.notificationService.set(this.item, false);\r\n }, 310);\r\n } else {\r\n this.notificationService.set(this.item, false);\r\n }\r\n }\r\n\r\n private contentType(item: any, key: string) {\r\n if (item instanceof TemplateRef) {\r\n this[key] = item;\r\n } else {\r\n this[key] = this.domSanitizer.bypassSecurityTrustHtml(item);\r\n }\r\n\r\n this[key + 'IsTemplate'] = item instanceof TemplateRef;\r\n }\r\n}\r\n","<div class=\"simple-notification\"\r\n [@enterLeave]=\"item.state\"\r\n (click)=\"onClick($event)\"\r\n [class]=\"theClass\"\r\n [ngClass]=\"{\r\n 'alert': item.type === 'alert',\r\n 'error': item.type === 'error',\r\n 'warn': item.type === 'warn',\r\n 'success': item.type === 'success',\r\n 'info': item.type === 'info',\r\n 'bare': item.type === 'bare',\r\n 'rtl-mode': rtl,\r\n 'has-icon': item.icon !== 'bare'\r\n }\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\">\r\n\r\n <div *ngIf=\"!item.html\">\r\n\r\n <div class=\"sn-title\" *ngIf=\"titleIsTemplate; else regularTitle\">\r\n <ng-container *ngTemplateOutlet=\"title; context: item.context\"></ng-container>\r\n </div>\r\n\r\n <ng-template #regularTitle>\r\n <div class=\"sn-title\" [innerHTML]=\"title\"></div>\r\n </ng-template>\r\n\r\n <div class=\"sn-content\" *ngIf=\"contentIsTemplate else regularContent\">\r\n <ng-container *ngTemplateOutlet=\"content; context: item.context\"></ng-container>\r\n </div>\r\n\r\n <ng-template #regularContent>\r\n <div class=\"sn-content\" [innerHTML]=\"content\"></div>\r\n </ng-template>\r\n\r\n <div class=\"icon\" *ngIf=\"item.icon !== 'bare'\" [innerHTML]=\"safeSvg\"></div>\r\n </div>\r\n <div *ngIf=\"item.html\">\r\n <div class=\"sn-html\" *ngIf=\"htmlIsTemplate; else regularHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.html; context: item.context\"></ng-container>\r\n </div>\r\n\r\n <ng-template #regularHtml>\r\n <div class=\"sn-content\" [innerHTML]=\"safeInputHtml\"></div>\r\n </ng-template>\r\n\r\n <div class=\"icon\" [class.icon-hover]=\"clickIconToClose\" *ngIf=\"item.icon\" [innerHTML]=\"safeSvg\" (click)=\"onClickIcon($event)\"></div>\r\n </div>\r\n\r\n <div class=\"sn-progress-loader\" *ngIf=\"showProgressBar\">\r\n <span [ngStyle]=\"{'width': progressWidth + '%'}\"></span>\r\n </div>\r\n\r\n</div>\r\n","export enum NotificationAnimationType {\r\n Fade = 'fade',\r\n FromTop = 'fromTop',\r\n FromRight = 'fromRight',\r\n FromBottom = 'fromBottom',\r\n FromLeft = 'fromLeft',\r\n Scale = 'scale',\r\n Rotate = 'rotate'\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation, ChangeDetectorRef, ViewRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { NotificationAnimationType } from '../../enums/notification-animation-type.enum';\r\nimport { Notification } from '../../interfaces/notification.type';\r\nimport { Options, Position } from '../../interfaces/options.type';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\n\r\n@Component({\r\n selector: 'simple-notifications',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './simple-notifications.component.html',\r\n styleUrls: ['./simple-notifications.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SimpleNotificationsComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private service: NotificationsService,\r\n private cd: ChangeDetectorRef\r\n ) { }\r\n\r\n @Input() set options(opt: Options) {\r\n this.usingComponentOptions = true;\r\n this.attachChanges(opt);\r\n }\r\n\r\n @Output() create = new EventEmitter();\r\n @Output() destroy = new EventEmitter();\r\n\r\n notifications: Notification[] = [];\r\n position: Position = ['bottom', 'right'];\r\n\r\n private lastNotificationCreated: Notification;\r\n private listener: Subscription;\r\n\r\n // Received values\r\n private lastOnBottom = true;\r\n private maxStack = 8;\r\n private preventLastDuplicates: any = false;\r\n private preventDuplicates = false;\r\n\r\n // Sent values\r\n timeOut = 0;\r\n maxLength = 0;\r\n clickToClose = true;\r\n clickIconToClose = false;\r\n showProgressBar = true;\r\n pauseOnHover = true;\r\n theClass = '';\r\n rtl = false;\r\n animate: NotificationAnimationType = NotificationAnimationType.FromRight;\r\n\r\n private usingComponentOptions = false;\r\n\r\n ngOnInit() {\r\n\r\n /**\r\n * Only attach global options if config\r\n * options were never sent through input\r\n */\r\n if (!this.usingComponentOptions) {\r\n this.attachChanges(\r\n this.service.globalOptions\r\n );\r\n }\r\n\r\n this.listener = this.service.emitter\r\n .subscribe(item => {\r\n switch (item.command) {\r\n case 'cleanAll':\r\n this.notifications = [];\r\n break;\r\n\r\n case 'clean':\r\n this.cleanSingle(item.id!);\r\n break;\r\n\r\n case 'set':\r\n if (item.add) {\r\n this.add(item.notification!);\r\n } else {\r\n this.defaultBehavior(item);\r\n }\r\n break;\r\n\r\n default:\r\n this.defaultBehavior(item);\r\n break;\r\n }\r\n if (!(this.cd as ViewRef).destroyed) {\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.listener) {\r\n this.listener.unsubscribe();\r\n }\r\n this.cd.detach();\r\n }\r\n\r\n // Default behavior on event\r\n defaultBehavior(value: any): void {\r\n this.notifications.splice(this.notifications.indexOf(value.notification), 1);\r\n this.destroy.emit(this.buildEmit(value.notification, false));\r\n }\r\n\r\n\r\n // Add the new notification to the notification array\r\n add(item: Notification): void {\r\n item.createdOn = new Date();\r\n\r\n const toBlock: boolean = this.preventLastDuplicates || this.preventDuplicates ? this.block(item) : false;\r\n\r\n // Save this as the last created notification\r\n this.lastNotificationCreated = item;\r\n // Override icon if set\r\n if (item.override && item.override.icons && item.override.icons[item.type]) {\r\n item.icon = item.override.icons[item.type];\r\n }\r\n\r\n if (!toBlock) {\r\n // Check if the notification should be added at the start or the end of the array\r\n if (this.lastOnBottom) {\r\n if (this.notifications.length >= this.maxStack) {\r\n this.notifications.splice(0, 1);\r\n }\r\n\r\n this.notifications.push(item);\r\n } else {\r\n if (this.notifications.length >= this.maxStack) {\r\n this.notifications.splice(this.notifications.length - 1, 1);\r\n }\r\n\r\n this.notifications.splice(0, 0, item);\r\n }\r\n\r\n this.create.emit(this.buildEmit(item, true));\r\n }\r\n }\r\n\r\n // Check if notifications should be prevented\r\n block(item: Notification): boolean {\r\n\r\n const toCheck = item.html ? this.checkHtml : this.checkStandard;\r\n\r\n if (this.preventDuplicates && this.notifications.length > 0) {\r\n for (const notification of this.notifications) {\r\n if (toCheck(notification, item)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n if (this.preventLastDuplicates) {\r\n\r\n let comp: Notification;\r\n\r\n if (this.preventLastDuplicates === 'visible' && this.notifications.length > 0) {\r\n if (this.lastOnBottom) {\r\n comp = this.notifications[this.notifications.length - 1];\r\n } else {\r\n comp = this.notifications[0];\r\n }\r\n } else if (this.preventLastDuplicates === 'all' && this.lastNotificationCreated) {\r\n comp = this.lastNotificationCreated;\r\n } else {\r\n return false;\r\n }\r\n return toCheck(comp, item);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n checkStandard(checker: Notification, item: Notification): boolean {\r\n return checker.type === item.type && checker.title === item.title && checker.content === item.content;\r\n }\r\n\r\n checkHtml(checker: Notification, item: Notification): boolean {\r\n return checker.html ?\r\n checker.type === item.type && checker.title === item.title && checker.content === item.content && checker.html === item.html :\r\n false;\r\n }\r\n\r\n // Attach all the changes received in the options object\r\n attachChanges(options: any) {\r\n for (const key in options) {\r\n if (this.hasOwnProperty(key)) {\r\n (this as any)[key] = options[key];\r\n } else if (key === 'icons') {\r\n this.service.icons = options[key];\r\n }\r\n }\r\n }\r\n\r\n buildEmit(notification: Notification, to: boolean) {\r\n const toEmit: Notification = {\r\n createdOn: notification.createdOn,\r\n type: notification.type,\r\n icon: notification.icon,\r\n id: notification.id\r\n };\r\n\r\n if (notification.html) {\r\n toEmit.html = notification.html;\r\n } else {\r\n toEmit.title = notification.title;\r\n toEmit.content = notification.content;\r\n }\r\n\r\n if (!to) {\r\n toEmit.destroyedOn = new Date();\r\n }\r\n\r\n return toEmit;\r\n }\r\n\r\n cleanSingle(id: string): void {\r\n let indexOfDelete = 0;\r\n let doDelete = false;\r\n let noti;\r\n\r\n this.notifications.forEach((notification, idx) => {\r\n if (notification.id === id) {\r\n indexOfDelete = idx;\r\n noti = notification;\r\n doDelete = true;\r\n }\r\n });\r\n\r\n if (doDelete) {\r\n this.notifications.splice(indexOfDelete, 1);\r\n this.destroy.emit(this.buildEmit(noti, false));\r\n }\r\n }\r\n}\r\n","<div class=\"simple-notification-wrapper\" [ngClass]=\"position\">\r\n <simple-notification\r\n *ngFor=\"let a of notifications; let i = index\"\r\n [item]=\"a\"\r\n [timeOut]=\"timeOut\"\r\n [clickToClose]=\"clickToClose\"\r\n [clickIconToClose]=\"clickIconToClose\"\r\n [maxLength]=\"maxLength\"\r\n [showProgressBar]=\"showProgressBar\"\r\n [pauseOnHover]=\"pauseOnHover\"\r\n [theClass]=\"theClass\"\r\n [rtl]=\"rtl\"\r\n [animate]=\"animate\"\r\n [position]=\"i\">\r\n </simple-notification>\r\n</div>","import {DEFAULT_ICONS} from './default-icons.const';\r\nimport {Options} from '../interfaces/options.type';\r\nimport {NotificationAnimationType} from '../enums/notification-animation-type.enum';\r\n\r\nexport const DEFAULT_OPTIONS: Options = {\r\n position: ['bottom', 'right'],\r\n timeOut: 0,\r\n showProgressBar: true,\r\n pauseOnHover: true,\r\n lastOnBottom: true,\r\n clickToClose: true,\r\n clickIconToClose: false,\r\n maxLength: 0,\r\n maxStack: 8,\r\n preventDuplicates: false,\r\n preventLastDuplicates: false,\r\n theClass: '',\r\n rtl: false,\r\n animate: NotificationAnimationType.FromRight,\r\n icons: DEFAULT_ICONS\r\n};\r\n","import { CommonModule } from '@angular/common';\r\nimport { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NotificationComponent } from './components/notification/notification.component';\r\nimport { SimpleNotificationsComponent } from './components/simple-notifications/simple-notifications.component';\r\nimport { DEFAULT_OPTIONS } from './consts/default-options.const';\r\nimport { Options } from './interfaces/options.type';\r\nimport { NotificationsService } from './services/notifications.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nexport const OPTIONS = new InjectionToken<Options>('options');\r\nexport function optionsFactory(options) {\r\n return {\r\n ...DEFAULT_OPTIONS,\r\n ...options\r\n };\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n BrowserAnimationsModule,\r\n ],\r\n declarations: [\r\n SimpleNotificationsComponent,\r\n NotificationComponent\r\n ],\r\n exports: [SimpleNotificationsComponent]\r\n})\r\nexport class SimpleNotificationsModule {\r\n static forRoot(options: Options = {}): ModuleWithProviders<SimpleNotificationsModule> {\r\n return {\r\n ngModule: SimpleNotificationsModule,\r\n providers: [\r\n NotificationsService,\r\n {\r\n provide: OPTIONS,\r\n useValue: options\r\n },\r\n {\r\n provide: 'options',\r\n useFactory: optionsFactory,\r\n deps: [OPTIONS]\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
\No newline at end of file