{"version":3,"file":"angular2-notifications.mjs","sources":["../../../projects/angular2-notifications/src/lib/consts/default-icons.const.ts","../../../projects/angular2-notifications/src/lib/enums/notification-type.enum.ts","../../../projects/angular2-notifications/src/lib/services/notifications.service.ts","../../../projects/angular2-notifications/src/lib/components/notification/notification.component.ts","../../../projects/angular2-notifications/src/lib/components/notification/notification.component.html","../../../projects/angular2-notifications/src/lib/enums/notification-animation-type.enum.ts","../../../projects/angular2-notifications/src/lib/components/simple-notifications/simple-notifications.component.ts","../../../projects/angular2-notifications/src/lib/components/simple-notifications/simple-notifications.component.html","../../../projects/angular2-notifications/src/lib/consts/default-options.const.ts","../../../projects/angular2-notifications/src/lib/simple-notifications.module.ts","../../../projects/angular2-notifications/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\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  ],\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":["i1.NotificationsService","i2","i3.NotificationComponent"],"mappings":"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"}