{"version":3,"file":"ngx-toastr.mjs","sources":["../../../projects/ngx-toastr/src/lib/toastr/toast.directive.ts","../../../projects/ngx-toastr/src/lib/toastr/toastr-config.ts","../../../projects/ngx-toastr/src/lib/portal/portal.ts","../../../projects/ngx-toastr/src/lib/portal/dom-portal-host.ts","../../../projects/ngx-toastr/src/lib/overlay/overlay-container.ts","../../../projects/ngx-toastr/src/lib/overlay/overlay-ref.ts","../../../projects/ngx-toastr/src/lib/overlay/overlay.ts","../../../projects/ngx-toastr/src/lib/toastr/toast-ref.ts","../../../projects/ngx-toastr/src/lib/toastr/toastr.service.ts","../../../projects/ngx-toastr/src/lib/timeouts.service.ts","../../../projects/ngx-toastr/src/lib/toastr/base-toast/base-toast.component.ts","../../../projects/ngx-toastr/src/lib/toastr/base-toast/base-toast.component.html","../../../projects/ngx-toastr/src/lib/toastr/toast/toast.component.ts","../../../projects/ngx-toastr/src/lib/toastr/toast.provider.ts","../../../projects/ngx-toastr/src/lib/toastr/toastr.module.ts","../../../projects/ngx-toastr/src/lib/toastr/toast-noanimation/toast-noanimation.component.ts","../../../projects/ngx-toastr/src/public-api.ts","../../../projects/ngx-toastr/src/ngx-toastr.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n  selector: '[toastContainer]',\n  exportAs: 'toastContainer',\n  standalone: true,\n})\nexport class ToastContainerDirective {\n  private el = inject(ElementRef);\n\n  getContainerElement(): HTMLElement {\n    return this.el.nativeElement;\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<ConfigPayload = unknown> {\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<unknown>;\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 toast component\n   */\n  payload?: ConfigPayload;\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<C = unknown> extends IndividualConfig<C> {\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<ConfigPayload = unknown> {\n  private _onTap = new Subject<void>();\n  private _onAction = new Subject<unknown>();\n\n  constructor(\n    public toastId: number,\n    public config: IndividualConfig<ConfigPayload>,\n    public message: string | null | undefined,\n    public title: string | undefined,\n    public toastType: string,\n    public toastRef: ToastRef<unknown>,\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?: unknown): void {\n    this._onAction.next(action);\n  }\n\n  onAction(): Observable<unknown> {\n    return this._onAction.asObservable();\n  }\n}\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\nexport interface ToastToken {\n  default: GlobalConfig;\n  config: Partial<GlobalConfig>;\n}\n\nexport const TOAST_CONFIG = new InjectionToken<ToastToken>('ToastConfig');\n","import { ComponentRef, Injector, ViewContainerRef } from '@angular/core';\n\nexport type ComponentType<T> = new (...args: unknown[]) => T;\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<unknown> {\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<unknown>;\n\n  /** A function that will permanently dispose this host. */\n  private _disposeFn?: () => void;\n\n  attach(portal: ComponentPortal<unknown>, newestOnTop: boolean) {\n    this._attachedPortal = portal;\n    return this.attachComponentPortal(portal, newestOnTop);\n  }\n\n  abstract attachComponentPortal<T>(\n    portal: ComponentPortal<T>,\n    newestOnTop: boolean,\n  ): 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 { ApplicationRef, createComponent, ComponentRef, EmbeddedViewRef } 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 _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>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T> {\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    const componentRef = createComponent(portal.component, {\n      environmentInjector: this._appRef.injector,\n      elementInjector: portal.injector,\n    });\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(this._getComponentRootNode(componentRef));\n    }\n\n    return componentRef;\n  }\n\n  /** Gets the root HTMLElement for an instantiated component. */\n  private _getComponentRootNode(componentRef: ComponentRef<unknown>): HTMLElement {\n    return (componentRef.hostView as EmbeddedViewRef<unknown>).rootNodes[0] as HTMLElement;\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 _document = inject(DOCUMENT);\n  protected _containerElement!: HTMLElement;\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","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(portal: ComponentPortal<unknown>, newestOnTop = true): ComponentRef<unknown> {\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 { ApplicationRef, 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  private _overlayContainer = inject(OverlayContainer);\n  private _appRef = inject(ApplicationRef);\n  private _document = inject(DOCUMENT);\n\n  // Namespace panes by overlay container\n  private _paneElements = new Map<ToastContainerDirective, Record<string, HTMLElement>>();\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(positionClass = '', overlayContainer?: ToastContainerDirective): 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)![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._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 { 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<unknown> {\n    return this._manualClose.asObservable();\n  }\n\n  timeoutReset(): Observable<unknown> {\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<void> {\n    return this._afterClosed.asObservable();\n  }\n\n  isInactive() {\n    return this._activate.closed;\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<void> {\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 { ComponentRef, Injectable, Injector, NgZone, SecurityContext, inject } 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';\nimport type { ToastBase } from './base-toast/base-toast.component';\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<unknown>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastrService {\n  private overlay = inject(Overlay);\n  private _injector = inject(Injector);\n  private sanitizer = inject(DomSanitizer);\n  private ngZone = inject(NgZone);\n\n  toastrConfig: GlobalConfig;\n  currentlyActive = 0;\n  toasts: ActiveToast<unknown>[] = [];\n  overlayContainer?: ToastContainerDirective;\n  previousToastMessage: string | undefined;\n  private index = 0;\n\n  constructor() {\n    const token = inject<ToastToken>(TOAST_CONFIG);\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<C extends ToastBase = ToastBase, ConfigPayload = unknown>(\n    message?: string,\n    title?: string,\n    override: Partial<IndividualConfig<ConfigPayload>> = {},\n    type = '',\n  ) {\n    return this._preBuildNotification(\n      type,\n      message,\n      title,\n      this.applyConfig(override),\n    ) as ActiveToast<C> | null;\n  }\n  /** show successful toast */\n  success<ConfigPayload = unknown>(\n    message?: string,\n    title?: string,\n    override: Partial<IndividualConfig<ConfigPayload>> = {},\n  ) {\n    const type = this.toastrConfig.iconClasses.success || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show error toast */\n  error<ConfigPayload = unknown>(\n    message?: string,\n    title?: string,\n    override: Partial<IndividualConfig<ConfigPayload>> = {},\n  ) {\n    const type = this.toastrConfig.iconClasses.error || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show info toast */\n  info<ConfigPayload = unknown>(\n    message?: string,\n    title?: string,\n    override: Partial<IndividualConfig<ConfigPayload>> = {},\n  ) {\n    const type = this.toastrConfig.iconClasses.info || '';\n    return this._preBuildNotification(type, message, title, this.applyConfig(override));\n  }\n  /** show warning toast */\n  warning<ConfigPayload = unknown>(\n    message?: string,\n    title?: string,\n    override: Partial<IndividualConfig<ConfigPayload>> = {},\n  ) {\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<unknown> } | 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<unknown> | 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<unknown> | 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<unknown> = {\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 { inject, Injectable, NgZone } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class TimeoutsService {\n  protected ngZone? = inject(NgZone);\n\n  public setInterval(func: () => unknown, timeout: number): number {\n    if (this.ngZone) {\n      return this.ngZone.runOutsideAngular(() =>\n        window.setInterval(() => this.runInsideAngular(func), timeout),\n      );\n    } else {\n      return window.setInterval(() => func(), timeout);\n    }\n  }\n\n  public setTimeout(func: () => unknown, timeout?: number): number {\n    if (this.ngZone) {\n      return this.ngZone.runOutsideAngular(() =>\n        window.setTimeout(() => this.runInsideAngular(func), timeout),\n      );\n    } else {\n      return window.setTimeout(() => func(), timeout);\n    }\n  }\n\n  protected runInsideAngular(func: () => unknown) {\n    if (this.ngZone) {\n      this.ngZone.run(() => func());\n    } else {\n      func();\n    }\n  }\n}\n","import {\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  linkedSignal,\n  signal,\n  type OnDestroy,\n} from '@angular/core';\nimport { ToastPackage, type IndividualConfig } from '../toastr-config';\nimport { ToastrService } from '../toastr.service';\nimport type { Subscription } from 'rxjs';\nimport { TimeoutsService } from '../../timeouts.service';\n\n@Component({\n  selector: '[toast-component]',\n  templateUrl: './base-toast.component.html',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'toastClasses()',\n    '[style.display]': 'displayStyle()',\n    '(mouseenter)': 'stickAround()',\n    '(mouseleave)': 'delayedHideToast()',\n    '(click)': 'tapToast()',\n  },\n})\nexport class ToastBase<ConfigPayload = unknown> implements OnDestroy {\n  public toastPackage = inject(ToastPackage);\n  protected toastrService = inject(ToastrService);\n  protected appRef = inject(ApplicationRef);\n  protected timeoutsService = inject(TimeoutsService);\n\n  duplicatesCount!: number;\n  protected hideTime!: number;\n\n  /** width of progress bar */\n  readonly width = signal(-1);\n  readonly state = signal<'inactive' | 'active' | 'removed'>('inactive');\n  /** hides component when waiting to be displayed */\n  readonly displayStyle = computed(() => (this.state() === 'inactive' ? 'none' : undefined));\n  readonly message = computed(() => this.toastPackage.message);\n  readonly title = computed(() => this.toastPackage.title);\n  readonly options = linkedSignal<IndividualConfig<ConfigPayload>>(() => this.toastPackage.config);\n  readonly originalTimeout = computed(() => this.toastPackage.config.timeOut);\n  readonly toastClasses = computed(\n    () => `${this.toastPackage.toastType} ${this.toastPackage.config.toastClass}`,\n  );\n\n  protected timeout: number | undefined;\n  protected intervalId: number | undefined;\n\n  protected afterActivateSubscription!: Subscription;\n  protected manualClosedSubscription!: Subscription;\n  protected timeoutResetSubscription!: Subscription;\n  protected countDuplicateSubscription!: Subscription;\n\n  constructor() {\n    this.afterActivateSubscription = this.toastPackage.toastRef.afterActivate().subscribe(() => {\n      this.activateToast();\n    });\n    this.manualClosedSubscription = this.toastPackage.toastRef.manualClosed().subscribe(() => {\n      this.remove();\n    });\n    this.timeoutResetSubscription = this.toastPackage.toastRef.timeoutReset().subscribe(() => {\n      this.resetTimeout();\n    });\n    this.countDuplicateSubscription = this.toastPackage.toastRef\n      .countDuplicate()\n      .subscribe(count => {\n        this.duplicatesCount = count;\n      });\n  }\n\n  public ngOnDestroy(): void {\n    this.afterActivateSubscription.unsubscribe();\n    this.manualClosedSubscription.unsubscribe();\n    this.timeoutResetSubscription.unsubscribe();\n    this.countDuplicateSubscription.unsubscribe();\n\n    clearInterval(this.intervalId);\n    clearTimeout(this.timeout);\n  }\n\n  /**\n   * activates toast and sets timeout\n   */\n  activateToast() {\n    const options = this.options();\n    this.state.set('active');\n\n    if (\n      !(options.disableTimeOut === true || options.disableTimeOut === 'timeOut') &&\n      options.timeOut\n    ) {\n      this.timeout = this.timeoutsService.setTimeout(() => this.remove(), options.timeOut);\n      this.hideTime = new Date().getTime() + options.timeOut;\n      if (options.progressBar) {\n        this.intervalId = this.timeoutsService.setInterval(() => this.updateProgress(), 10);\n      }\n    }\n  }\n\n  /**\n   * updates progress bar width\n   */\n  updateProgress() {\n    const options = this.options();\n\n    if (this.width() === 0 || this.width() === 100 || !options.timeOut) {\n      return;\n    }\n    const now = new Date().getTime();\n    const remaining = this.hideTime - now;\n    this.width.set((remaining / options.timeOut) * 100);\n    if (options.progressAnimation === 'increasing') {\n      this.width.update(width => 100 - width);\n    }\n    if (this.width() <= 0) {\n      this.width.set(0);\n    }\n    if (this.width() >= 100) {\n      this.width.set(100);\n    }\n  }\n\n  resetTimeout() {\n    const options = this.options();\n    clearTimeout(this.timeout);\n    clearInterval(this.intervalId);\n    this.state.set('active');\n\n    this.options.update(options => ({ ...options, timeOut: this.originalTimeout() }));\n    this.timeout = this.timeoutsService.setTimeout(() => this.remove(), this.originalTimeout());\n    this.hideTime = new Date().getTime() + (this.originalTimeout() || 0);\n    this.width.set(-1);\n    if (options.progressBar)\n      this.intervalId = this.timeoutsService.setInterval(() => this.updateProgress(), 10);\n  }\n\n  /**\n   * tells toastrService to remove this toast after animation time\n   */\n  remove() {\n    if (this.state() === 'removed') return;\n\n    clearTimeout(this.timeout);\n    this.state.set('removed');\n    this.timeout = this.timeoutsService.setTimeout(() =>\n      this.toastrService.remove(this.toastPackage.toastId),\n    );\n  }\n\n  tapToast() {\n    if (this.state() === 'removed') return;\n\n    this.toastPackage.triggerTap();\n    if (this.options().tapToDismiss) {\n      this.remove();\n    }\n  }\n\n  stickAround() {\n    if (this.state() === 'removed') return;\n\n    if (this.options().disableTimeOut !== 'extendedTimeOut') {\n      clearTimeout(this.timeout);\n      this.options.update(options => ({ ...options, timeOut: 0 }));\n      this.hideTime = 0;\n\n      // disable progressBar\n      clearInterval(this.intervalId);\n      this.width.set(0);\n    }\n  }\n\n  delayedHideToast() {\n    const options = this.options();\n    if (\n      options.disableTimeOut === true ||\n      options.disableTimeOut === 'extendedTimeOut' ||\n      options.extendedTimeOut === 0 ||\n      this.state() === 'removed'\n    ) {\n      return;\n    }\n    const extendedTimeOut = options.extendedTimeOut;\n    this.timeout = this.timeoutsService.setTimeout(() => this.remove(), extendedTimeOut);\n    this.options.update(options => ({ ...options, timeOut: extendedTimeOut }));\n    this.hideTime = new Date().getTime() + (extendedTimeOut || 0);\n    this.width.set(-1);\n    if (options.progressBar) {\n      this.intervalId = this.timeoutsService.setInterval(() => this.updateProgress(), 10);\n    }\n  }\n}\n","@let _options = options();\n\n@if (_options.closeButton) {\n  <button (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">&times;</span>\n  </button>\n}\n\n@if (title()) {\n  <div [class]=\"_options.titleClass\" [attr.aria-label]=\"title()\">\n    {{ title() }}\n\n    @if (duplicatesCount) {\n      <ng-container>[{{ duplicatesCount + 1 }}]</ng-container>\n    }\n  </div>\n}\n\n@if (message()) {\n  @if (_options.enableHtml) {\n    <div role=\"alert\" [class]=\"_options.messageClass\" [innerHTML]=\"message()\"></div>\n  } @else {\n    <div role=\"alert\" [class]=\"_options.messageClass\" [attr.aria-label]=\"message()\">\n      {{ message() }}\n    </div>\n  }\n}\n\n@if (_options.progressBar) {\n  <div>\n    <div class=\"toast-progress\" [style.width]=\"width() + '%'\"></div>\n  </div>\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\nimport { ToastBase } from '../base-toast/base-toast.component';\n\n@Component({\n  selector: '[toast-component]',\n  templateUrl: '../base-toast/base-toast.component.html',\n  styleUrl: './toast.component.scss',\n  host: {\n    '[style.--animation-easing]': 'params.easing',\n    '[style.--animation-duration]': 'params.easeTime + \"ms\"',\n    'animate.enter': 'toast-in',\n  },\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Toast<ConfigPayload = unknown> extends ToastBase<ConfigPayload> {\n  readonly params = { easeTime: this.toastPackage.config.easeTime, easing: 'ease-in' };\n  private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  override remove(): void {\n    if (this.state() === 'removed') return;\n\n    clearTimeout(this.timeout);\n    this.state.set('removed');\n    this.elementRef.nativeElement.classList.add('toast-out');\n    this.timeout = this.timeoutsService.setTimeout(\n      () => this.toastrService.remove(this.toastPackage.toastId),\n      +this.params.easeTime,\n    );\n  }\n}\n","import { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from './toastr-config';\nimport { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { Toast } from './toast/toast.component';\n\nexport const DefaultGlobalConfig: GlobalConfig = {\n  ...DefaultNoComponentGlobalConfig,\n  toastComponent: Toast,\n};\n\n/**\n * @description\n * Provides the `TOAST_CONFIG` token with the given config.\n *\n * @param config The config to configure toastr.\n * @returns The environment providers.\n *\n * @example\n * ```ts\n * import { provideToastr } from 'ngx-toastr';\n *\n * bootstrap(AppComponent, {\n *   providers: [\n *     provideToastr({\n *       timeOut: 2000,\n *       positionClass: 'toast-top-right',\n *     }),\n *   ],\n * })\n */\nexport const provideToastr = (config: Partial<GlobalConfig> = {}): EnvironmentProviders => {\n  const providers: Provider[] = [\n    {\n      provide: TOAST_CONFIG,\n      useValue: {\n        default: DefaultGlobalConfig,\n        config,\n      },\n    },\n  ];\n\n  return makeEnvironmentProviders(providers);\n};\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { Toast } from './toast/toast.component';\nimport { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from './toastr-config';\nimport { provideToastr } from './toast.provider';\n\n@NgModule({\n  imports: [Toast],\n  exports: [Toast],\n})\nexport class ToastrModule {\n  static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n    return {\n      ngModule: ToastrModule,\n      providers: [provideToastr(config)],\n    };\n  }\n}\n\n@NgModule({})\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 { ModuleWithProviders } from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from '../toastr-config';\nimport { ToastBase as ToastNoAnimation } from '../base-toast/base-toast.component';\n\nexport const DefaultNoAnimationsGlobalConfig: GlobalConfig = {\n  ...DefaultNoComponentGlobalConfig,\n  toastComponent: ToastNoAnimation,\n};\n\n@NgModule({\n  imports: [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\nexport { ToastNoAnimation };\n","/*\n * Public API Surface of ngx-toastr\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ToastNoAnimation"],"mappings":"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"}