{"version":3,"file":"angular-magic-ngx-toast.mjs","sources":["../../../projects/toast/src/lib/base/toast-type.enum.ts","../../../projects/toast/src/lib/base/toast-position.enum.ts","../../../projects/toast/src/lib/toast.service.ts","../../../projects/toast/src/lib/pipes/toast-custom-icon.pipe.ts","../../../projects/toast/src/lib/toast/toast.component.ts","../../../projects/toast/src/lib/toast/toast.component.html","../../../projects/toast/src/lib/pipes/toast-available.pipe.ts","../../../projects/toast/src/lib/toast-center/toast-center.component.ts","../../../projects/toast/src/lib/toast-center/toast-center.component.html","../../../projects/toast/src/lib/toast.module.ts","../../../projects/toast/src/public-api.ts","../../../projects/toast/src/angular-magic-ngx-toast.ts"],"sourcesContent":["export enum NgxToastType {\n  none = 'none',\n  success = 'success',\n  warning = 'warning',\n  error = 'error',\n  info = 'info',\n}\n","export enum NgxToastPosition {\n  TOP_RIGHT = 'top_right',\n  TOP_CENTER = 'top_center',\n  TOP_LEFT = 'top_left',\n  BOTTOM_RIGHT = 'bottom_right',\n  BOTTOM_CENTER = 'bottom_center',\n  BOTTOM_LEFT = 'bottom_left',\n}\n","import { Injectable } from '@angular/core';\nimport { NgxToast } from \"./base/toast.model\";\nimport { NgxToastType } from \"./base/toast-type.enum\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { NgxToastPosition } from \"./base/toast-position.enum\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxToastService {\n  typeColor: Record<NgxToastType, string> = {\n    [NgxToastType.none]: '#0067FF',\n    [NgxToastType.info]: '#0067FF',\n    [NgxToastType.warning]: '#EF8D32',\n    [NgxToastType.error]: '#FE355A',\n    [NgxToastType.success]: '#00CC69'\n  };\n  typeIcons: Record<NgxToastType, string> = {\n    [NgxToastType.none]: null,\n    [NgxToastType.info]: null,\n    [NgxToastType.warning]: null,\n    [NgxToastType.error]: null,\n    [NgxToastType.success]: null,\n  };\n\n  typeDelays: Record<NgxToastType, number> = {\n    [NgxToastType.none]: 5000,\n    [NgxToastType.info]: 3000,\n    [NgxToastType.warning]: 3000,\n    [NgxToastType.error]: 3000,\n    [NgxToastType.success]: 3000,\n  };\n\n  typeTitles: Record<NgxToastType, string> = {\n    [NgxToastType.none]: 'Notification',\n    [NgxToastType.info]: 'Info',\n    [NgxToastType.warning]: 'Warning',\n    [NgxToastType.error]: 'Failure',\n    [NgxToastType.success]: 'Success',\n  };\n  displayProgressBar: boolean = true;\n  maxUnstackedToast: number = 3;\n  stackNotificationCTA: string = 'Click here to see all notifications!';\n  position: Record<string, string>;\n\n  private toasts: BehaviorSubject<NgxToast[]> = new BehaviorSubject<NgxToast[]>([]);\n  private toasts$: Observable<NgxToast[]> = this.toasts.asObservable();\n\n  constructor() {\n    this.position = this.getPositions(NgxToastPosition.TOP_RIGHT);\n  }\n\n  /**\n   * In case if you want to set custom icons, you should provide absolute path to your SVG file\n   * Example: this.ngxToastService.setCustomIcons({[NgxToastType.success]: 'assets/check.svg'});\n   * @param icons\n   */\n  setCustomIcons(icons: Partial<Record<NgxToastType, string>>): void {\n    this.typeIcons = { ...this.typeIcons, ...icons };\n  }\n\n  /**\n   * In case if you want to set custom icons, you should provide hex color\n   * Example: this.ngxToastService.setCustomColors({[NgxToastType.success]: '#00CC69'});\n   * @param colors\n   */\n  setCustomColors(colors: Partial<Record<NgxToastType, string>>): void {\n    this.typeColor = { ...this.typeColor, ...colors };\n  }\n\n  /**\n   * In case if you want to set custom delays, you should provide milliseconds value\n   * Example: this.ngxToastService.setCustomDelays({[NgxToastType.success]: 5000});\n   * @param delays\n   */\n  setCustomDelays(delays: Partial<Record<NgxToastType, number>>): void {\n    this.typeDelays = { ...this.typeDelays, ...delays };\n  }\n\n  /**\n   * In case if you want to set custom delays, you should provide milliseconds value\n   * Example: this.ngxToastService.setCustomDelays({[NgxToastType.success]: 5000});\n   * @param titles\n   */\n  setCustomTitle(titles: Partial<Record<NgxToastType, string>>): void {\n    this.typeTitles = { ...this.typeTitles, ...titles };\n  }\n\n  /**\n   * In case if you want to set another position, you should provide position value\n   * Example: this.ngxToastService.setPosition(NgxToastPosition.TOP_LEFT);\n   * @param position\n   */\n  setPosition(position: NgxToastPosition): void {\n    this.position = this.getPositions(position);\n  }\n\n  open(toast: NgxToast): void {\n    const items = [\n      ...this.toasts.value,\n      { id: new Date().getTime() + Math.random(), ...toast }\n    ];\n\n    this.toasts.next(items);\n  }\n\n  close(toast: NgxToast): void {\n    const items = this.toasts.value.filter(item => item?.id !== toast?.id);\n\n    this.toasts.next(items);\n  }\n\n  clear(): void {\n    this.toasts.next([]);\n  }\n\n  getToasts(): Observable<NgxToast[]> {\n    return this.toasts$;\n  }\n\n  success(toast: Omit<NgxToast, 'type'>): void {\n    const item: NgxToast = {\n      id: new Date().getTime() + Math.random(),\n      title: this.typeTitles[NgxToastType.success],\n      ...toast,\n      type: NgxToastType.success,\n      icon: this.typeIcons[NgxToastType.success]\n    };\n    const items = [...this.toasts.value, item];\n\n    this.toasts.next(items);\n  }\n\n  error(toast: Omit<NgxToast, 'type'>): void {\n    const item: NgxToast = {\n      id: new Date().getTime() + Math.random(),\n      title: this.typeTitles[NgxToastType.error],\n      ...toast,\n      type: NgxToastType.error,\n      icon: this.typeIcons[NgxToastType.error]\n    };\n    const items = [...this.toasts.value, item];\n\n    this.toasts.next(items);\n\n  }\n\n  warning(toast: Omit<NgxToast, 'type'>): void {\n    const item: NgxToast = {\n      id: new Date().getTime() + Math.random(),\n      title: this.typeTitles[NgxToastType.warning],\n      ...toast,\n      type: NgxToastType.warning,\n      icon: this.typeIcons[NgxToastType.warning]\n    };\n    const items = [...this.toasts.value, item];\n\n    this.toasts.next(items);\n  }\n\n  info(toast: Omit<NgxToast, 'type'>): void {\n    const item: NgxToast = {\n      id: new Date().getTime() + Math.random(),\n      title: this.typeTitles[NgxToastType.info],\n      ...toast,\n      type: NgxToastType.info,\n      icon: this.typeIcons[NgxToastType.info]\n    };\n    const items = [...this.toasts.value, item];\n\n    this.toasts.next(items);\n  }\n\n  private getPositions(position: NgxToastPosition): Record<string, string> {\n    switch (position) {\n      case NgxToastPosition.TOP_RIGHT:\n        return {\n          top: '20px',\n          right: '20px'\n        };\n      case NgxToastPosition.TOP_CENTER:\n        return {\n          top: '20px',\n          right: '50%',\n          transform: `translateX(50%)`\n        };\n      case NgxToastPosition.TOP_LEFT:\n        return {\n          top: '20px',\n          left: '20px'\n        };\n      case NgxToastPosition.BOTTOM_RIGHT:\n        return {\n          bottom: '20px',\n          right: '20px'\n        };\n      case NgxToastPosition.BOTTOM_CENTER:\n        return {\n          bottom: '20px',\n          right: '50%',\n          transform: `translateX(50%)`\n        };\n      case NgxToastPosition.BOTTOM_LEFT:\n        return {\n          bottom: '20px',\n          left: '20px'\n        };\n      default:\n        return {\n          top: '20px',\n          right: '20px'\n        };\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { HttpClient } from \"@angular/common/http\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { map, Observable } from \"rxjs\";\n\n@Pipe({\n  name: 'toastCustomIcon',\n})\nexport class ToastCustomIconPipe implements PipeTransform {\n  constructor(\n    private readonly httpClient: HttpClient,\n    private readonly sanitizer: DomSanitizer,\n  ) {\n  }\n\n  public transform(\n    value: string,\n  ): Observable<SafeHtml> {\n    return this.httpClient\n      .get(value, { responseType: 'text' })\n      .pipe(map(value => this.sanitizer.bypassSecurityTrustHtml(value)));\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output\n} from '@angular/core';\nimport { NgxToast } from \"../base/toast.model\";\nimport { NgxToastType } from \"../base/toast-type.enum\";\nimport { NgxToastService } from \"../toast.service\";\n\n@Component({\n  selector: 'ngx-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss']\n})\nexport class ToastComponent implements OnInit, AfterViewInit {\n  @Input() toast: NgxToast;\n  @Input() isStackToast: boolean;\n  @Input() color: string;\n  @Input() delay = 3000;\n  @Input() displayProgressBar: boolean = true;\n  @Output() clicked: EventEmitter<NgxToast> = new EventEmitter<NgxToast>();\n  @Output() destroyed: EventEmitter<NgxToast> = new EventEmitter<NgxToast>();\n  @Output() closed: EventEmitter<NgxToast> = new EventEmitter<NgxToast>();\n  @Output() showStacked: EventEmitter<void> = new EventEmitter<void>();\n  isOpened: boolean;\n  isInfinity: boolean;\n  NgxToastType: typeof NgxToastType = NgxToastType;\n\n  private static DELAY_ON_CLICK: number = 400;\n\n  private closeTimeout;\n  private destroyTimeout;\n  private referencePointTimestamp;\n  private mouseEnterTimestamp;\n\n  constructor(\n    public readonly ngxToastService: NgxToastService,\n    private readonly element: ElementRef,\n    private readonly cd: ChangeDetectorRef,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.init();\n    this.isInfinity = this.delay === Infinity;\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.isOpened = true;\n      this.cd.markForCheck();\n    });\n  }\n\n  mouseEnter(): void {\n    this.mouseEnterTimestamp = performance.now();\n\n    clearTimeout(this.closeTimeout);\n    clearTimeout(this.destroyTimeout);\n  }\n\n  mouseLeave(): void {\n    const timestampGap = this.mouseEnterTimestamp - this.referencePointTimestamp;\n\n    this.autoSelfDestroy(this.delay - timestampGap);\n    this.referencePointTimestamp = performance.now() - timestampGap;\n  }\n\n  toastClick(): void {\n    if (this.toast.click) {\n      this.toast.click(this.toast);\n    }\n  }\n\n  toastDestroy(): void {\n    if (this.toast.destroy) {\n      this.toast.destroy(this.toast);\n    }\n  }\n\n  toastClose(): void {\n    if (this.toast.close) {\n      this.toast.close(this.toast);\n    }\n  }\n\n  close(): void {\n    this.isOpened = false;\n\n    setTimeout(() => {\n      this.toastClose();\n      this.closed.emit(this.toast);\n    }, ToastComponent.DELAY_ON_CLICK);\n  }\n\n  private init(): void {\n    this.referencePointTimestamp = performance.now();\n    this.initTheme();\n    this.autoSelfDestroy(this.delay);\n  }\n\n  private initTheme(): void {\n    this.element.nativeElement.style.setProperty('--ngx-toast-delay', `${this.delay}ms`);\n    this.element.nativeElement.style.setProperty('--ngx-toast-color', this.color || this.ngxToastService.typeColor[this.toast.type]);\n  }\n\n  private autoSelfDestroy(delay: number): void {\n    if (this.delay !== Infinity) {\n      this.closeTimeout = setTimeout(() => {\n        this.isOpened = false;\n        this.cd.markForCheck();\n      }, delay);\n\n      this.destroyTimeout = setTimeout(() => {\n        this.destroyed.emit(this.toast);\n        this.toastDestroy();\n      }, delay + ToastComponent.DELAY_ON_CLICK);\n    }\n  }\n}\n","<div class=\"ngx-toast ngx-toast-{{toast?.type}}\"\n     [class.ngx-toast--opened]=\"isOpened\"\n     [class.ngx-toast--progress-bar]=\"displayProgressBar && !isInfinity\"\n     (mouseenter)=\"mouseEnter()\"\n     (mouseleave)=\"mouseLeave()\">\n  <div (click)=\"toastClick()\" class=\"ngx-toast__icon\">\n    <ng-container *ngIf=\"toast?.icon; else defaultIcon\">\n      <ng-container *ngIf=\"toast.icon | toastCustomIcon | async as svg\">\n        <span [innerHTML]=\"svg\"></span>\n      </ng-container>\n    </ng-container>\n\n    <ng-template #defaultIcon>\n      <span>\n          <svg>\n            <use [attr.xlink:href]=\"'#' + toast.type\"/>\n          </svg>\n      </span>\n    </ng-template>\n  </div>\n  <div (click)=\"toastClick()\" class=\"ngx-toast__content\">\n    <div class=\"ngx-toast__title\">{{toast.title}}</div>\n\n    <ng-container *ngIf=\"!isStackToast; else stackCta\">\n      <ng-container *ngIf=\"toast?.messages?.length === 1; else multipleMessages\">\n        <div class=\"ngx-toast__message\">{{toast?.messages[0]}}</div>\n      </ng-container>\n\n      <ng-template #multipleMessages>\n        <div class=\"ngx-toast__message\">\n          <ul>\n            <li *ngFor=\"let message of toast?.messages\">\n              {{message}}\n            </li>\n          </ul>\n        </div>\n      </ng-template>\n    </ng-container>\n\n    <ng-template #stackCta>\n      <div class=\"ngx-toast__stack-cta\" (click)=\"showStacked.emit()\">{{toast?.messages[0]}}</div>\n    </ng-template>\n  </div>\n\n  <div (click)=\"close()\" class=\"ngx-toast__close\">\n    <svg>\n      <use [attr.xlink:href]=\"'#clear'\"/>\n    </svg>\n  </div>\n\n  <svg display=\"none\">\n    <symbol width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" [id]=\"NgxToastType.success\">\n      <path\n        d=\"M16,0 C24.836556,0 32,7.163444 32,16 C32,24.836556 24.836556,32 16,32 C7.163444,32 0,24.836556 0,16 C0,7.163444 7.163444,0 16,0 Z M23.6,9.6 L13,20.2 L8.8,16 L7.4,17.4 L13,23 L25,11 L23.6,9.6 Z\"/>\n    </symbol>\n  </svg>\n\n  <svg display=\"none\">\n    <symbol width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" [id]=\"NgxToastType.error\">\n      <path\n        d=\"M16,0 C24.836556,0 32,7.163444 32,16 C32,24.836556 24.836556,32 16,32 C7.163444,32 0,24.836556 0,16 C0,7.163444 7.163444,0 16,0 Z M21.59,9 L16,14.59 L10.41,9 L9,10.41 L14.59,16 L9,21.59 L10.41,23 L16,17.41 L21.59,23 L23,21.59 L17.41,16 L23,10.41 L21.59,9 Z\"/>\n    </symbol>\n  </svg>\n\n  <svg display=\"none\">\n    <symbol width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" [id]=\"NgxToastType.info\">\n      <path\n        d=\"M16,0 C24.836556,0 32,7.163444 32,16 C32,24.836556 24.836556,32 16,32 C7.163444,32 0,24.836556 0,16 C0,7.163444 7.163444,0 16,0 Z M17,12 L15,12 L15,24 L17,24 L17,12 Z M17,8 L15,8 L15,10 L17,10 L17,8 Z\"/>\n    </symbol>\n  </svg>\n\n  <svg display=\"none\">\n    <symbol [id]=\"NgxToastType.none\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000000\"\n            stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <path d=\"M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-8.27 4a2 2 0 0 1-3.46 0\"></path>\n    </symbol>\n  </svg>\n\n  <svg display=\"none\">\n    <symbol width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" [id]=\"NgxToastType.warning\">\n      <path\n        d=\"M16,0 C24.836556,0 32,7.163444 32,16 C32,24.836556 24.836556,32 16,32 C7.163444,32 0,24.836556 0,16 C0,7.163444 7.163444,0 16,0 Z M17,12 L15,12 L15,24 L17,24 L17,12 Z M17,8 L15,8 L15,10 L17,10 L17,8 Z\"/>\n    </symbol>\n  </svg>\n\n  <svg display=\"none\">\n    <symbol viewBox=\"0 0 24 24\" id=\"clear\">\n      <path\n        d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\n    </symbol>\n  </svg>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NgxToast } from '../base/toast.model';\nimport { NgxToastService } from \"../toast.service\";\n\n@Pipe({\n  name: 'toastAvailable',\n})\nexport class ToastAvailablePipe implements PipeTransform {\n  constructor(\n    private ngxToastService: NgxToastService\n  ) {\n  }\n\n  public transform(toasts: NgxToast[]): boolean {\n    return toasts && toasts?.length <= this.ngxToastService.maxUnstackedToast;\n  }\n}\n","import { Component } from '@angular/core';\nimport { NgxToast } from \"../base/toast.model\";\nimport { NgxToastService } from \"../toast.service\";\nimport { Observable, tap } from \"rxjs\";\nimport { NgxToastType } from \"../base/toast-type.enum\";\n\n@Component({\n  selector: 'ngx-toast-center',\n  templateUrl: './toast-center.component.html',\n  styleUrls: ['./toast-center.component.scss']\n})\nexport class ToastCenterComponent {\n  toasts$: Observable<NgxToast[]>;\n  isStacked: boolean = false;\n  stackToast: NgxToast = {\n    type: NgxToastType.none,\n    title: this.ngxToastService.typeTitles[NgxToastType.none],\n    messages: [this.ngxToastService.stackNotificationCTA]\n  };\n  private isExpanded: boolean = false;\n\n  constructor(\n    public readonly ngxToastService: NgxToastService,\n  ) {\n    this.toasts$ = this.ngxToastService.getToasts()\n      .pipe(tap(result => {\n        if (!this.isExpanded) {\n          this.isStacked = result.length >= this.ngxToastService.maxUnstackedToast;\n        }\n\n        if (!result.length) this.isExpanded = false\n      }));\n  }\n\n  show(): void {\n    this.isStacked = false;\n    this.isExpanded = true;\n  }\n\n  remove(item: NgxToast): void {\n    this.ngxToastService.close(item);\n  }\n\n  clear(): void {\n    this.ngxToastService.clear();\n  }\n}\n","<div class=\"ngx-toast__wrapper\" [ngStyle]=\"ngxToastService.position\">\n  <ng-container *ngIf=\"toasts$ | async as toasts\">\n    <ng-container *ngIf=\"(toasts | toastAvailable) || !isStacked; else stacked\">\n      <ng-container *ngFor=\"let toast of toasts\">\n        <ngx-toast [toast]=\"toast\"\n                   [displayProgressBar]=\"ngxToastService?.displayProgressBar\"\n                   [color]=\"toast.color || ngxToastService?.typeColor[toast.type]\"\n                   [delay]=\"toast?.delay || ngxToastService?.typeDelays[toast.type]\"\n                   (closed)=\"remove($event)\"\n                   (destroyed)=\"remove($event)\">\n        </ngx-toast>\n      </ng-container>\n    </ng-container>\n\n    <ng-template #stacked>\n      <ngx-toast [toast]=\"stackToast\"\n                 [isStackToast]=\"true\"\n                 [displayProgressBar]=\"ngxToastService?.displayProgressBar\"\n                 [color]=\"stackToast.color || ngxToastService?.typeColor[stackToast.type]\"\n                 [delay]=\"stackToast?.delay || ngxToastService?.typeDelays[stackToast.type]\"\n                 (showStacked)=\"show()\"\n                 (closed)=\"clear()\"\n                 (destroyed)=\"clear()\">\n      </ngx-toast>\n    </ng-template>\n  </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ToastComponent } from \"./toast/toast.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { ToastAvailablePipe } from \"./pipes/toast-available.pipe\";\nimport { ToastCenterComponent } from './toast-center/toast-center.component';\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ToastCustomIconPipe } from \"./pipes/toast-custom-icon.pipe\";\n\n@NgModule({\n  declarations: [\n    ToastComponent,\n    ToastAvailablePipe,\n    ToastCustomIconPipe,\n    ToastCenterComponent,\n  ],\n  imports: [\n    CommonModule,\n    HttpClientModule\n  ],\n  exports: [\n    ToastComponent,\n    ToastCenterComponent\n  ]\n})\nexport class NgxToastModule {\n}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './lib/toast.service';\nexport * from './lib/toast.module';\n\n// Components\nexport * from './lib/toast-center/toast-center.component';\nexport * from './lib/toast/toast.component';\n\n// Base\nexport * from './lib/base/toast-position.enum';\nexport * from './lib/base/toast.model';\nexport * from './lib/base/toast-type.enum';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxToastService","i2","i3.ToastCustomIconPipe","i3.ToastComponent","i4.ToastAvailablePipe"],"mappings":"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"}