{"version":3,"file":"ngx-toastr.mjs","sources":["../../src/lib/toastr/toast.directive.ts","../../src/lib/portal/portal.ts","../../src/lib/toastr/toast-ref.ts","../../src/lib/toastr/toastr-config.ts","../../src/lib/portal/dom-portal-host.ts","../../src/lib/overlay/overlay-ref.ts","../../src/lib/overlay/overlay-container.ts","../../src/lib/overlay/overlay.ts","../../src/lib/toastr/toastr.service.ts","../../src/lib/toastr/toast.component.ts","../../src/lib/toastr/toastr.module.ts","../../src/lib/toastr/toast-noanimation.component.ts","../../src/lib/ngx-toastr.ts"],"sourcesContent":["import {\n  Directive,\n  ElementRef,\n  NgModule,\n} from '@angular/core';\n\n@Directive({\n  selector: '[toastContainer]',\n  exportAs: 'toastContainer',\n})\nexport class ToastContainerDirective {\n  constructor(private el: ElementRef) { }\n  getContainerElement(): HTMLElement {\n    return this.el.nativeElement;\n  }\n}\n\n@NgModule({\n  declarations: [ToastContainerDirective],\n  exports: [ToastContainerDirective],\n})\nexport class ToastContainerModule {}\n","import {\n  ComponentRef,\n  Injector,\n  ViewContainerRef\n} from '@angular/core';\n\nexport interface ComponentType<T> {\n  // eslint-disable-next-line @typescript-eslint/prefer-function-type\n  new (...args: any[]): T;\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> {\n  private _attachedHost?: BasePortalHost;\n  /** The type of the component that will be instantiated for attachment. */\n  component: ComponentType<T>;\n\n  /**\n   * [Optional] Where the attached component should live in Angular's *logical* component tree.\n   * This is different from where the component *renders*, which is determined by the PortalHost.\n   * The origin necessary when the host is outside of the Angular application context.\n   */\n  viewContainerRef!: ViewContainerRef;\n\n  /** Injector used for the instantiation of the component. */\n  injector: Injector;\n\n  constructor(component: ComponentType<T>, injector: Injector) {\n    this.component = component;\n    this.injector = injector;\n  }\n\n  /** Attach this portal to a host. */\n  attach(host: BasePortalHost, newestOnTop: boolean): ComponentRef<any> {\n    this._attachedHost = host;\n    return host.attach(this, newestOnTop);\n  }\n\n  /** Detach this portal from its host */\n  detach() {\n    const host = this._attachedHost;\n    if (host) {\n      this._attachedHost = undefined;\n      return host.detach();\n    }\n  }\n\n  /** Whether this portal is attached to a host. */\n  get isAttached(): boolean {\n    return this._attachedHost != null;\n  }\n\n  /**\n   * Sets the PortalHost reference without performing `attach()`. This is used directly by\n   * the PortalHost when it is performing an `attach()` or `detach()`.\n   */\n  setAttachedHost(host?: BasePortalHost) {\n    this._attachedHost = host;\n  }\n}\n\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nexport abstract class BasePortalHost {\n  /** The portal currently attached to the host. */\n  private _attachedPortal?: ComponentPortal<any>;\n\n  /** A function that will permanently dispose this host. */\n  private _disposeFn?: () => void;\n\n  attach(portal: ComponentPortal<any>, newestOnTop: boolean) {\n    this._attachedPortal = portal;\n    return this.attachComponentPortal(portal, newestOnTop);\n  }\n\n  abstract attachComponentPortal<T>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T>;\n\n  detach() {\n    if (this._attachedPortal) {\n      this._attachedPortal.setAttachedHost();\n    }\n\n    this._attachedPortal = undefined;\n    if (this._disposeFn) {\n      this._disposeFn();\n      this._disposeFn = undefined;\n    }\n  }\n\n  setDisposeFn(fn: () => void) {\n    this._disposeFn = fn;\n  }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { OverlayRef } from '../overlay/overlay-ref';\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nexport class ToastRef<T> {\n  /** The instance of component opened into the toast. */\n  componentInstance!: T;\n\n  /** Count of duplicates of this toast */\n  private duplicatesCount = 0;\n\n  /** Subject for notifying the user that the toast has finished closing. */\n  private _afterClosed = new Subject<void>();\n  /** triggered when toast is activated */\n  private _activate = new Subject<void>();\n  /** notifies the toast that it should close before the timeout */\n  private _manualClose = new Subject<void>();\n  /** notifies the toast that it should reset the timeouts */\n  private _resetTimeout = new Subject<void>();\n  /** notifies the toast that it should count a duplicate toast */\n  private _countDuplicate = new Subject<number>();\n\n  constructor(private _overlayRef: OverlayRef) {}\n\n  manualClose() {\n    this._manualClose.next();\n    this._manualClose.complete();\n  }\n\n  manualClosed(): Observable<any> {\n    return this._manualClose.asObservable();\n  }\n\n  timeoutReset(): Observable<any> {\n    return this._resetTimeout.asObservable();\n  }\n\n  countDuplicate(): Observable<number> {\n    return this._countDuplicate.asObservable();\n  }\n\n  /**\n   * Close the toast.\n   */\n  close(): void {\n    this._overlayRef.detach();\n    this._afterClosed.next();\n    this._manualClose.next();\n    this._afterClosed.complete();\n    this._manualClose.complete();\n    this._activate.complete();\n    this._resetTimeout.complete();\n    this._countDuplicate.complete();\n  }\n\n  /** Gets an observable that is notified when the toast is finished closing. */\n  afterClosed(): Observable<any> {\n    return this._afterClosed.asObservable();\n  }\n\n  isInactive() {\n    return this._activate.isStopped;\n  }\n\n  activate() {\n    this._activate.next();\n    this._activate.complete();\n  }\n\n  /** Gets an observable that is notified when the toast has started opening. */\n  afterActivate(): Observable<any> {\n    return this._activate.asObservable();\n  }\n\n  /** Reset the toast timouts and count duplicates */\n  onDuplicate(resetTimeout: boolean, countDuplicate: boolean) {\n    if (resetTimeout) {\n      this._resetTimeout.next();\n    }\n    if (countDuplicate) {\n      this._countDuplicate.next(++this.duplicatesCount);\n    }\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { ComponentType } from '../portal/portal';\nimport { ToastRef } from './toast-ref';\n\nexport type ProgressAnimationType = 'increasing' | 'decreasing';\nexport type DisableTimoutType = boolean | 'timeOut' | 'extendedTimeOut';\n\n/**\n * Configuration for an individual toast.\n */\nexport interface IndividualConfig {\n  /**\n   * disable both timeOut and extendedTimeOut\n   * default: false\n   */\n  disableTimeOut: DisableTimoutType;\n  /**\n   * toast time to live in milliseconds\n   * default: 5000\n   */\n  timeOut: number;\n  /**\n   * toast show close button\n   * default: false\n   */\n  closeButton: boolean;\n  /**\n   * time to close after a user hovers over toast\n   * default: 1000\n   */\n  extendedTimeOut: number;\n  /**\n   * show toast progress bar\n   * default: false\n   */\n  progressBar: boolean;\n\n  /**\n   * changes toast progress bar animation\n   * default: decreasing\n   */\n  progressAnimation: ProgressAnimationType;\n\n  /**\n   * render html in toast message (possibly unsafe)\n   * default: false\n   */\n  enableHtml: boolean;\n  /**\n   * css class on toast component\n   * default: ngx-toastr\n   */\n  toastClass: string;\n  /**\n   * css class on toast container\n   * default: toast-top-right\n   */\n  positionClass: string;\n  /**\n   * css class on toast title\n   * default: toast-title\n   */\n  titleClass: string;\n  /**\n   * css class on toast message\n   * default: toast-message\n   */\n  messageClass: string;\n  /**\n   * animation easing on toast\n   * default: ease-in\n   */\n  easing: string;\n  /**\n   * animation ease time on toast\n   * default: 300\n   */\n  easeTime: string | number;\n  /**\n   * clicking on toast dismisses it\n   * default: true\n   */\n  tapToDismiss: boolean;\n  /**\n   * Angular toast component to be shown\n   * default: Toast\n   */\n  toastComponent?: ComponentType<any>;\n  /**\n   * Helps show toast from a websocket or from event outside Angular\n   * default: false\n   */\n  onActivateTick: boolean;\n  /**\n   * New toast placement\n   * default: true\n   */\n  newestOnTop: boolean;\n\n  /**\n   * payload to pass to the toastComponent\n   * default: null\n   */\n  payload: any;\n}\n\nexport interface ToastrIconClasses {\n  error: string;\n  info: string;\n  success: string;\n  warning: string;\n  [key: string]: string;\n}\n\n/**\n * Global Toast configuration\n * Includes all IndividualConfig\n */\nexport interface GlobalConfig extends IndividualConfig {\n  /**\n   * max toasts opened. Toasts will be queued\n   * Zero is unlimited\n   * default: 0\n   */\n  maxOpened: number;\n  /**\n   * dismiss current toast when max is reached\n   * default: false\n   */\n  autoDismiss: boolean;\n  iconClasses: Partial<ToastrIconClasses>;\n  /**\n   * block duplicate messages\n   * default: false\n   */\n  preventDuplicates: boolean;\n  /**\n   * display the number of duplicate messages\n   * default: false\n   */\n  countDuplicates: boolean;\n  /**\n   * Reset toast timeout when there's a duplicate (preventDuplicates needs to be set to true)\n   * default: false\n   */\n  resetTimeoutOnDuplicate: boolean;\n  /**\n   * consider the title of a toast when checking if duplicate\n   * default: false\n   */\n  includeTitleDuplicates: boolean;\n}\n\n/**\n * Everything a toast needs to launch\n */\nexport class ToastPackage {\n  private _onTap = new Subject<void>();\n  private _onAction = new Subject<any>();\n\n  constructor(\n    public toastId: number,\n    public config: IndividualConfig,\n    public message: string | null | undefined,\n    public title: string | undefined,\n    public toastType: string,\n    public toastRef: ToastRef<any>,\n  ) {\n    this.toastRef.afterClosed().subscribe(() => {\n      this._onAction.complete();\n      this._onTap.complete();\n    });\n  }\n\n  /** Fired on click */\n  triggerTap(): void {\n    this._onTap.next();\n    if (this.config.tapToDismiss) {\n      this._onTap.complete();\n    }\n  }\n\n  onTap(): Observable<void> {\n    return this._onTap.asObservable();\n  }\n\n  /** available for use in custom toast */\n  triggerAction(action?: any): void {\n    this._onAction.next(action);\n  }\n\n  onAction(): Observable<void> {\n    return this._onAction.asObservable();\n  }\n}\n\n/* eslint-disable @typescript-eslint/no-empty-interface */\n/** @deprecated use GlobalConfig */\nexport interface GlobalToastrConfig extends GlobalConfig {}\n/** @deprecated use IndividualConfig */\nexport interface IndividualToastrConfig extends IndividualConfig {}\n/** @deprecated use IndividualConfig */\nexport interface ToastrConfig extends IndividualConfig {}\n\nexport const DefaultNoComponentGlobalConfig: GlobalConfig = {\n  maxOpened: 0,\n  autoDismiss: false,\n  newestOnTop: true,\n  preventDuplicates: false,\n  countDuplicates: false,\n  resetTimeoutOnDuplicate: false,\n  includeTitleDuplicates: false,\n\n  iconClasses: {\n    error: 'toast-error',\n    info: 'toast-info',\n    success: 'toast-success',\n    warning: 'toast-warning',\n  },\n\n  // Individual\n  closeButton: false,\n  disableTimeOut: false,\n  timeOut: 5000,\n  extendedTimeOut: 1000,\n  enableHtml: false,\n  progressBar: false,\n  toastClass: 'ngx-toastr',\n  positionClass: 'toast-top-right',\n  titleClass: 'toast-title',\n  messageClass: 'toast-message',\n  easing: 'ease-in',\n  easeTime: 300,\n  tapToDismiss: true,\n  onActivateTick: false,\n  progressAnimation: 'decreasing',\n\n  payload: null\n};\n\nexport interface ToastToken {\n  default: GlobalConfig;\n  config: Partial<GlobalConfig>;\n}\n\nexport const TOAST_CONFIG = new InjectionToken<ToastToken>('ToastConfig');\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  EmbeddedViewRef,\n} from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from './portal';\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport class DomPortalHost extends BasePortalHost {\n  constructor(\n    private _hostDomElement: Element,\n    private _componentFactoryResolver: ComponentFactoryResolver,\n    private _appRef: ApplicationRef,\n  ) {\n    super();\n  }\n\n  /**\n   * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n   * @param portal Portal to be attached\n   */\n  attachComponentPortal<T>(\n    portal: ComponentPortal<T>,\n    newestOnTop: boolean,\n  ): ComponentRef<T> {\n    const componentFactory = this._componentFactoryResolver.resolveComponentFactory(\n      portal.component,\n    );\n    let componentRef: ComponentRef<T>;\n\n    // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n    // for the component (in terms of Angular's component tree, not rendering).\n    // When the ViewContainerRef is missing, we use the factory to create the component directly\n    // and then manually attach the ChangeDetector for that component to the application (which\n    // happens automatically when using a ViewContainer).\n    componentRef = componentFactory.create(portal.injector);\n\n    // When creating a component outside of a ViewContainer, we need to manually register\n    // its ChangeDetector with the application. This API is unfortunately not yet published\n    // in Angular core. The change detector must also be deregistered when the component\n    // is destroyed to prevent memory leaks.\n    this._appRef.attachView(componentRef.hostView);\n\n    this.setDisposeFn(() => {\n      this._appRef.detachView(componentRef.hostView);\n      componentRef.destroy();\n    });\n\n    // At this point the component has been instantiated, so we move it to the location in the DOM\n    // where we want it to be rendered.\n    if (newestOnTop) {\n      this._hostDomElement.insertBefore(\n        this._getComponentRootNode(componentRef),\n        this._hostDomElement.firstChild,\n      );\n    } else {\n      this._hostDomElement.appendChild(\n        this._getComponentRootNode(componentRef),\n      );\n    }\n\n    return componentRef;\n  }\n\n  /** Gets the root HTMLElement for an instantiated component. */\n  private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n    return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n  }\n}\n","import { ComponentRef } from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from '../portal/portal';\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport class OverlayRef {\n  constructor(private _portalHost: BasePortalHost) {}\n\n  attach(\n    portal: ComponentPortal<any>,\n    newestOnTop: boolean = true,\n  ): ComponentRef<any> {\n    return this._portalHost.attach(portal, newestOnTop);\n  }\n\n  /**\n   * Detaches an overlay from a portal.\n   * @returns Resolves when the overlay has been detached.\n   */\n  detach() {\n    return this._portalHost.detach();\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\n\n/** Container inside which all toasts will render. */\n@Injectable({ providedIn: 'root' })\nexport class OverlayContainer implements OnDestroy {\n  protected _containerElement!: HTMLElement;\n\n  constructor(@Inject(DOCUMENT) protected _document: any) {}\n\n  ngOnDestroy() {\n    if (this._containerElement && this._containerElement.parentNode) {\n      this._containerElement.parentNode.removeChild(this._containerElement);\n    }\n  }\n\n  /**\n   * This method returns the overlay container element. It will lazily\n   * create the element the first time  it is called to facilitate using\n   * the container in non-browser environments.\n   * @returns the container element\n   */\n  getContainerElement(): HTMLElement {\n    if (!this._containerElement) {\n      this._createContainer();\n    }\n    return this._containerElement;\n  }\n\n  /**\n   * Create the overlay container element, which is simply a div\n   * with the 'cdk-overlay-container' class on the document body\n   * and 'aria-live=\"polite\"'\n   */\n  protected _createContainer(): void {\n    const container = this._document.createElement('div');\n    container.classList.add('overlay-container');\n    container.setAttribute('aria-live','polite');\n    this._document.body.appendChild(container);\n    this._containerElement = container;\n  }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ComponentFactoryResolver, Inject, Injectable } from '@angular/core';\n\nimport { DomPortalHost } from '../portal/dom-portal-host';\nimport { ToastContainerDirective } from '../toastr/toast.directive';\nimport { OverlayContainer } from './overlay-container';\nimport { OverlayRef } from './overlay-ref';\n\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\n@Injectable({ providedIn: 'root' })\nexport class Overlay {\n  // Namespace panes by overlay container\n  private _paneElements: Map<ToastContainerDirective, Record<string, HTMLElement>> = new Map();\n\n  constructor(\n    private _overlayContainer: OverlayContainer,\n    private _componentFactoryResolver: ComponentFactoryResolver,\n    private _appRef: ApplicationRef,\n    @Inject(DOCUMENT) private _document: any,\n  ) {}\n  /**\n   * Creates an overlay.\n   * @returns A reference to the created overlay.\n   */\n  create(positionClass?: string, overlayContainer?: ToastContainerDirective): OverlayRef {\n    // get existing pane if possible\n    return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n  }\n\n  getPaneElement(\n    positionClass: string = '',\n    overlayContainer?: ToastContainerDirective,\n  ): HTMLElement {\n    if (!this._paneElements.get(overlayContainer as ToastContainerDirective)) {\n      this._paneElements.set(overlayContainer as ToastContainerDirective, {});\n    }\n\n    if (!this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass]) {\n      this._paneElements.get(overlayContainer as ToastContainerDirective)![\n        positionClass\n      ] = this._createPaneElement(positionClass, overlayContainer);\n    }\n\n    return this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass];\n  }\n\n  /**\n   * Creates the DOM element for an overlay and appends it to the overlay container.\n   * @returns Newly-created pane element\n   */\n  private _createPaneElement(\n    positionClass: string,\n    overlayContainer?: ToastContainerDirective,\n  ): HTMLElement {\n    const pane = this._document.createElement('div');\n\n    pane.id = 'toast-container';\n    pane.classList.add(positionClass);\n    pane.classList.add('toast-container');\n\n    if (!overlayContainer) {\n      this._overlayContainer.getContainerElement().appendChild(pane);\n    } else {\n      overlayContainer.getContainerElement().appendChild(pane);\n    }\n\n    return pane;\n  }\n\n  /**\n   * Create a DomPortalHost into which the overlay content can be loaded.\n   * @param pane The DOM element to turn into a portal host.\n   * @returns A portal host for the given DOM element.\n   */\n  private _createPortalHost(pane: HTMLElement): DomPortalHost {\n    return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n  }\n\n  /**\n   * Creates an OverlayRef for an overlay in the given DOM element.\n   * @param pane DOM element for the overlay\n   */\n  private _createOverlayRef(pane: HTMLElement): OverlayRef {\n    return new OverlayRef(this._createPortalHost(pane));\n  }\n}\n","import { ComponentRef, Inject, Injectable, Injector, NgZone, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { Observable } from 'rxjs';\n\nimport { Overlay } from '../overlay/overlay';\nimport { ComponentPortal } from '../portal/portal';\nimport { ToastRef } from './toast-ref';\nimport { ToastContainerDirective } from './toast.directive';\nimport {\n  GlobalConfig,\n  IndividualConfig,\n  ToastPackage,\n  ToastToken,\n  TOAST_CONFIG,\n} from './toastr-config';\n\nexport interface ActiveToast<C> {\n  /** Your Toast ID. Use this to close it individually */\n  toastId: number;\n  /** the title of your toast. Stored to prevent duplicates */\n  title: string;\n  /** the message of your toast. Stored to prevent duplicates */\n  message: string;\n  /** a reference to the component see portal.ts */\n  portal: ComponentRef<C>;\n  /** a reference to your toast */\n  toastRef: ToastRef<C>;\n  /** triggered when toast is active */\n  onShown: Observable<void>;\n  /** triggered when toast is destroyed */\n  onHidden: Observable<void>;\n  /** triggered on toast click */\n  onTap: Observable<void>;\n  /** available for your use in custom toast */\n  onAction: Observable<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastrService {\n  toastrConfig: GlobalConfig;\n  currentlyActive = 0;\n  toasts: ActiveToast<any>[] = [];\n  overlayContainer?: ToastContainerDirective;\n  previousToastMessage: string | undefined;\n  private index = 0;\n\n  constructor(\n    @Inject(TOAST_CONFIG) token: ToastToken,\n    private overlay: Overlay,\n    private _injector: Injector,\n    private sanitizer: DomSanitizer,\n    private ngZone: NgZone,\n  ) {\n    this.toastrConfig = {\n      ...token.default,\n      ...token.config,\n    };\n    if (token.config.iconClasses) {\n      this.toastrConfig.iconClasses = {\n        ...token.default.iconClasses,\n        ...token.config.iconClasses,\n      };\n    }\n  }\n  /** show toast */\n  show(message?: string, title?: string, override: Partial<IndividualConfig> = {}, type = '') {\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show successful toast */\n  success(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n    const type = this.toastrConfig.iconClasses.success || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show error toast */\n  error(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n    const type = this.toastrConfig.iconClasses.error || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show info toast */\n  info(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n    const type = this.toastrConfig.iconClasses.info || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show warning toast */\n  warning(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n    const type = this.toastrConfig.iconClasses.warning || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /**\n   * Remove all or a single toast by id\n   */\n  clear(toastId?: number) {\n    // Call every toastRef manualClose function\n    for (const toast of this.toasts) {\n      if (toastId !== undefined) {\n        if (toast.toastId === toastId) {\n          toast.toastRef.manualClose();\n          return;\n        }\n      } else {\n        toast.toastRef.manualClose();\n      }\n    }\n  }\n  /**\n   * Remove and destroy a single toast by id\n   */\n  remove(toastId: number) {\n    const found = this._findToast(toastId);\n    if (!found) {\n      return false;\n    }\n    found.activeToast.toastRef.close();\n    this.toasts.splice(found.index, 1);\n    this.currentlyActive = this.currentlyActive - 1;\n    if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n      return false;\n    }\n    if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n      const p = this.toasts[this.currentlyActive].toastRef;\n      if (!p.isInactive()) {\n        this.currentlyActive = this.currentlyActive + 1;\n        p.activate();\n      }\n    }\n    return true;\n  }\n\n  /**\n   * Determines if toast message is already shown\n   */\n  findDuplicate(title = '', message = '', resetOnDuplicate: boolean, countDuplicates: boolean) {\n    const { includeTitleDuplicates } = this.toastrConfig;\n\n    for (const toast of this.toasts) {\n      const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n      if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n        toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n        return toast;\n      }\n    }\n\n    return null;\n  }\n\n  /** create a clone of global config and apply individual settings */\n  private applyConfig(override: Partial<IndividualConfig> = {}): GlobalConfig {\n    return { ...this.toastrConfig, ...override };\n  }\n\n  /**\n   * Find toast object by id\n   */\n  private _findToast(toastId: number): { index: number; activeToast: ActiveToast<any> } | null {\n    for (let i = 0; i < this.toasts.length; i++) {\n      if (this.toasts[i].toastId === toastId) {\n        return { index: i, activeToast: this.toasts[i] };\n      }\n    }\n    return null;\n  }\n\n  /**\n   * Determines the need to run inside angular's zone then builds the toast\n   */\n  private _preBuildNotification(\n    toastType: string,\n    message: string | undefined,\n    title: string | undefined,\n    config: GlobalConfig,\n  ): ActiveToast<any> | null {\n    if (config.onActivateTick) {\n      return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n    }\n    return this._buildNotification(toastType, message, title, config);\n  }\n\n  /**\n   * Creates and attaches toast data to component\n   * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n   */\n  private _buildNotification(\n    toastType: string,\n    message: string | undefined,\n    title: string | undefined,\n    config: GlobalConfig,\n  ): ActiveToast<any> | null {\n    if (!config.toastComponent) {\n      throw new Error('toastComponent required');\n    }\n    // max opened and auto dismiss = true\n    // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n    // a timeout at all\n    const duplicate = this.findDuplicate(\n      title,\n      message,\n      this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0,\n      this.toastrConfig.countDuplicates,\n    );\n    if (\n      ((this.toastrConfig.includeTitleDuplicates && title) || message) &&\n      this.toastrConfig.preventDuplicates &&\n      duplicate !== null\n    ) {\n      return duplicate;\n    }\n\n    this.previousToastMessage = message;\n    let keepInactive = false;\n    if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n      keepInactive = true;\n      if (this.toastrConfig.autoDismiss) {\n        this.clear(this.toasts[0].toastId);\n      }\n    }\n\n    const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n    this.index = this.index + 1;\n    let sanitizedMessage: string | undefined | null = message;\n    if (message && config.enableHtml) {\n      sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n    }\n\n    const toastRef = new ToastRef(overlayRef);\n    const toastPackage = new ToastPackage(\n      this.index,\n      config,\n      sanitizedMessage,\n      title,\n      toastType,\n      toastRef,\n    );\n\n    /** New injector that contains an instance of `ToastPackage`. */\n    const providers = [{provide: ToastPackage, useValue: toastPackage}];\n    const toastInjector = Injector.create({providers, parent: this._injector});\n\n    const component = new ComponentPortal(config.toastComponent, toastInjector);\n    const portal = overlayRef.attach(component, config.newestOnTop);\n    toastRef.componentInstance = portal.instance;\n    const ins: ActiveToast<any> = {\n      toastId: this.index,\n      title: title || '',\n      message: message || '',\n      toastRef,\n      onShown: toastRef.afterActivate(),\n      onHidden: toastRef.afterClosed(),\n      onTap: toastPackage.onTap(),\n      onAction: toastPackage.onAction(),\n      portal,\n    };\n\n    if (!keepInactive) {\n      this.currentlyActive = this.currentlyActive + 1;\n      setTimeout(() => {\n        ins.toastRef.activate();\n      });\n    }\n\n    this.toasts.push(ins);\n    return ins;\n  }\n}\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger\n} from '@angular/animations';\nimport {\n  Component,\n  HostBinding,\n  HostListener,\n  NgZone,\n  OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IndividualConfig, ToastPackage } from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n  selector: '[toast-component]',\n  template: `\n  <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">&times;</span>\n  </button>\n  <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n    {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n  </div>\n  <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n    [class]=\"options.messageClass\" [innerHTML]=\"message\">\n  </div>\n  <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n    [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n    {{ message }}\n  </div>\n  <div *ngIf=\"options.progressBar\">\n    <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n  </div>\n  `,\n  animations: [\n    trigger('flyInOut', [\n      state('inactive', style({ opacity: 0 })),\n      state('active', style({ opacity: 1 })),\n      state('removed', style({ opacity: 0 })),\n      transition(\n        'inactive => active',\n        animate('{{ easeTime }}ms {{ easing }}')\n      ),\n      transition(\n        'active => removed',\n        animate('{{ easeTime }}ms {{ easing }}')\n      )\n    ])\n  ],\n  preserveWhitespaces: false\n})\nexport class Toast implements OnDestroy {\n  message?: string | null;\n  title?: string;\n  options: IndividualConfig;\n  duplicatesCount!: number;\n  originalTimeout: number;\n  /** width of progress bar */\n  width = -1;\n  /** a combination of toast type and options.toastClass */\n  @HostBinding('class') toastClasses = '';\n  /** controls animation */\n  @HostBinding('@flyInOut')\n  state = {\n    value: 'inactive',\n    params: {\n      easeTime: this.toastPackage.config.easeTime,\n      easing: 'ease-in'\n    }\n  };\n\n  /** hides component when waiting to be displayed */\n  @HostBinding('style.display')\n  get displayStyle(): string | undefined {\n    if (this.state.value === 'inactive') {\n      return 'none';\n    }\n\n    return;\n  }\n\n  private timeout: any;\n  private intervalId: any;\n  private hideTime!: number;\n  private sub: Subscription;\n  private sub1: Subscription;\n  private sub2: Subscription;\n  private sub3: Subscription;\n\n  constructor(\n    protected toastrService: ToastrService,\n    public toastPackage: ToastPackage,\n    protected ngZone?: NgZone\n  ) {\n    this.message = toastPackage.message;\n    this.title = toastPackage.title;\n    this.options = toastPackage.config;\n    this.originalTimeout = toastPackage.config.timeOut;\n    this.toastClasses = `${toastPackage.toastType} ${\n      toastPackage.config.toastClass\n    }`;\n    this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n      this.activateToast();\n    });\n    this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n      this.remove();\n    });\n    this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n      this.resetTimeout();\n    });\n    this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n      this.duplicatesCount = count;\n    });\n  }\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    this.sub1.unsubscribe();\n    this.sub2.unsubscribe();\n    this.sub3.unsubscribe();\n    clearInterval(this.intervalId);\n    clearTimeout(this.timeout);\n  }\n  /**\n   * activates toast and sets timeout\n   */\n  activateToast() {\n    this.state = { ...this.state, value: 'active' };\n    if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n      this.outsideTimeout(() => this.remove(), this.options.timeOut);\n      this.hideTime = new Date().getTime() + this.options.timeOut;\n      if (this.options.progressBar) {\n        this.outsideInterval(() => this.updateProgress(), 10);\n      }\n    }\n  }\n  /**\n   * updates progress bar width\n   */\n  updateProgress() {\n    if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n      return;\n    }\n    const now = new Date().getTime();\n    const remaining = this.hideTime - now;\n    this.width = (remaining / this.options.timeOut) * 100;\n    if (this.options.progressAnimation === 'increasing') {\n      this.width = 100 - this.width;\n    }\n    if (this.width <= 0) {\n      this.width = 0;\n    }\n    if (this.width >= 100) {\n      this.width = 100;\n    }\n  }\n\n  resetTimeout() {\n    clearTimeout(this.timeout);\n    clearInterval(this.intervalId);\n    this.state = { ...this.state, value: 'active' };\n\n    this.outsideTimeout(() => this.remove(), this.originalTimeout);\n    this.options.timeOut = this.originalTimeout;\n    this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n    this.width = -1;\n    if (this.options.progressBar) {\n      this.outsideInterval(() => this.updateProgress(), 10);\n    }\n  }\n\n  /**\n   * tells toastrService to remove this toast after animation time\n   */\n  remove() {\n    if (this.state.value === 'removed') {\n      return;\n    }\n    clearTimeout(this.timeout);\n    this.state = { ...this.state, value: 'removed' };\n    this.outsideTimeout(\n      () => this.toastrService.remove(this.toastPackage.toastId),\n      +this.toastPackage.config.easeTime\n    );\n  }\n  @HostListener('click')\n  tapToast() {\n    if (this.state.value === 'removed') {\n      return;\n    }\n    this.toastPackage.triggerTap();\n    if (this.options.tapToDismiss) {\n      this.remove();\n    }\n  }\n  @HostListener('mouseenter')\n  stickAround() {\n    if (this.state.value === 'removed') {\n      return;\n    }\n\n    if (this.options.disableTimeOut !== 'extendedTimeOut') {\n      clearTimeout(this.timeout);\n      this.options.timeOut = 0;\n      this.hideTime = 0;\n  \n      // disable progressBar\n      clearInterval(this.intervalId);\n      this.width = 0;\n    }\n  }\n  @HostListener('mouseleave')\n  delayedHideToast() {\n    if (\n      (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n      this.options.extendedTimeOut === 0 ||\n      this.state.value === 'removed'\n    ) {\n      return;\n    }\n    this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n    this.options.timeOut = this.options.extendedTimeOut;\n    this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n    this.width = -1;\n    if (this.options.progressBar) {\n      this.outsideInterval(() => this.updateProgress(), 10);\n    }\n  }\n\n  outsideTimeout(func: () => any, timeout: number) {\n    if (this.ngZone) {\n      this.ngZone.runOutsideAngular(\n        () =>\n          (this.timeout = setTimeout(\n            () => this.runInsideAngular(func),\n            timeout\n          ))\n      );\n    } else {\n      this.timeout = setTimeout(() => func(), timeout);\n    }\n  }\n\n  outsideInterval(func: () => any, timeout: number) {\n    if (this.ngZone) {\n      this.ngZone.runOutsideAngular(\n        () =>\n          (this.intervalId = setInterval(\n            () => this.runInsideAngular(func),\n            timeout\n          ))\n      );\n    } else {\n      this.intervalId = setInterval(() => func(), timeout);\n    }\n  }\n\n  private runInsideAngular(func: () => any) {\n    if (this.ngZone) {\n      this.ngZone.run(() => func());\n    } else {\n      func();\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { Toast } from './toast.component';\nimport { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from './toastr-config';\n\nexport const DefaultGlobalConfig: GlobalConfig = {\n  ...DefaultNoComponentGlobalConfig,\n  toastComponent: Toast,\n};\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [Toast],\n  exports: [Toast],\n})\nexport class ToastrModule {\n  static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n    return {\n      ngModule: ToastrModule,\n      providers: [\n        {\n          provide: TOAST_CONFIG,\n          useValue: {\n            default: DefaultGlobalConfig,\n            config,\n          },\n        },\n      ],\n    };\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n})\nexport class ToastrComponentlessModule {\n  static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n    return {\n      ngModule: ToastrModule,\n      providers: [\n        {\n          provide: TOAST_CONFIG,\n          useValue: {\n            default: DefaultNoComponentGlobalConfig,\n            config,\n          },\n        },\n      ],\n    };\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders } from '@angular/core';\nimport {\n  ApplicationRef,\n  Component,\n  HostBinding,\n  HostListener,\n  NgModule,\n  OnDestroy,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport {\n  DefaultNoComponentGlobalConfig,\n  GlobalConfig,\n  IndividualConfig,\n  ToastPackage,\n  TOAST_CONFIG,\n} from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n  selector: '[toast-component]',\n  template: `\n  <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">&times;</span>\n  </button>\n  <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n    {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n  </div>\n  <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n    [class]=\"options.messageClass\" [innerHTML]=\"message\">\n  </div>\n  <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n    [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n    {{ message }}\n  </div>\n  <div *ngIf=\"options.progressBar\">\n    <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n  </div>\n  `,\n})\nexport class ToastNoAnimation implements OnDestroy {\n  message?: string | null;\n  title?: string;\n  options: IndividualConfig;\n  duplicatesCount!: number;\n  originalTimeout: number;\n  /** width of progress bar */\n  width = -1;\n  /** a combination of toast type and options.toastClass */\n  @HostBinding('class') toastClasses = '';\n\n  /** hides component when waiting to be displayed */\n  @HostBinding('style.display')\n  get displayStyle() {\n    if (this.state === 'inactive') {\n      return 'none';\n    }\n  }\n\n  /** controls animation */\n  state = 'inactive';\n  private timeout: any;\n  private intervalId: any;\n  private hideTime!: number;\n  private sub: Subscription;\n  private sub1: Subscription;\n  private sub2: Subscription;\n  private sub3: Subscription;\n\n  constructor(\n    protected toastrService: ToastrService,\n    public toastPackage: ToastPackage,\n    protected appRef: ApplicationRef,\n  ) {\n    this.message = toastPackage.message;\n    this.title = toastPackage.title;\n    this.options = toastPackage.config;\n    this.originalTimeout = toastPackage.config.timeOut;\n    this.toastClasses = `${toastPackage.toastType} ${\n      toastPackage.config.toastClass\n    }`;\n    this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n      this.activateToast();\n    });\n    this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n      this.remove();\n    });\n    this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n      this.resetTimeout();\n    });\n    this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n      this.duplicatesCount = count;\n    });\n  }\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    this.sub1.unsubscribe();\n    this.sub2.unsubscribe();\n    this.sub3.unsubscribe();\n    clearInterval(this.intervalId);\n    clearTimeout(this.timeout);\n  }\n  /**\n   * activates toast and sets timeout\n   */\n  activateToast() {\n    this.state = 'active';\n    if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n      this.timeout = setTimeout(() => {\n        this.remove();\n      }, this.options.timeOut);\n      this.hideTime = new Date().getTime() + this.options.timeOut;\n      if (this.options.progressBar) {\n        this.intervalId = setInterval(() => this.updateProgress(), 10);\n      }\n    }\n    if (this.options.onActivateTick) {\n      this.appRef.tick();\n    }\n  }\n  /**\n   * updates progress bar width\n   */\n  updateProgress() {\n    if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n      return;\n    }\n    const now = new Date().getTime();\n    const remaining = this.hideTime - now;\n    this.width = (remaining / this.options.timeOut) * 100;\n    if (this.options.progressAnimation === 'increasing') {\n      this.width = 100 - this.width;\n    }\n    if (this.width <= 0) {\n      this.width = 0;\n    }\n    if (this.width >= 100) {\n      this.width = 100;\n    }\n  }\n\n  resetTimeout() {\n    clearTimeout(this.timeout);\n    clearInterval(this.intervalId);\n    this.state = 'active';\n\n    this.options.timeOut = this.originalTimeout;\n    this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n    this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n    this.width = -1;\n    if (this.options.progressBar) {\n      this.intervalId = setInterval(() => this.updateProgress(), 10);\n    }\n  }\n\n  /**\n   * tells toastrService to remove this toast after animation time\n   */\n  remove() {\n    if (this.state === 'removed') {\n      return;\n    }\n    clearTimeout(this.timeout);\n    this.state = 'removed';\n    this.timeout = setTimeout(() =>\n      this.toastrService.remove(this.toastPackage.toastId),\n    );\n  }\n  @HostListener('click')\n  tapToast() {\n    if (this.state === 'removed') {\n      return;\n    }\n    this.toastPackage.triggerTap();\n    if (this.options.tapToDismiss) {\n      this.remove();\n    }\n  }\n  @HostListener('mouseenter')\n  stickAround() {\n    if (this.state === 'removed') {\n      return;\n    }\n    clearTimeout(this.timeout);\n    this.options.timeOut = 0;\n    this.hideTime = 0;\n\n    // disable progressBar\n    clearInterval(this.intervalId);\n    this.width = 0;\n  }\n  @HostListener('mouseleave')\n  delayedHideToast() {\n    if (\n      (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n      this.options.extendedTimeOut === 0 ||\n      this.state === 'removed'\n    ) {\n      return;\n    }\n    this.timeout = setTimeout(\n      () => this.remove(),\n      this.options.extendedTimeOut,\n    );\n    this.options.timeOut = this.options.extendedTimeOut;\n    this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n    this.width = -1;\n    if (this.options.progressBar) {\n      this.intervalId = setInterval(() => this.updateProgress(), 10);\n    }\n  }\n}\n\nexport const DefaultNoAnimationsGlobalConfig: GlobalConfig = {\n  ...DefaultNoComponentGlobalConfig,\n  toastComponent: ToastNoAnimation,\n};\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [ToastNoAnimation],\n  exports: [ToastNoAnimation],\n})\nexport class ToastNoAnimationModule {\n  static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastNoAnimationModule> {\n    return {\n      ngModule: ToastNoAnimationModule,\n      providers: [\n        {\n          provide: TOAST_CONFIG,\n          useValue: {\n            default: DefaultNoAnimationsGlobalConfig,\n            config,\n          },\n        },\n      ],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Overlay","i1.ToastrService","i2.ToastPackage"],"mappings":"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"}