{"version":3,"file":"skyux-toast.mjs","sources":["../../../../../libs/components/toast/src/lib/modules/toast/toast-instance.ts","../../../../../libs/components/toast/src/lib/modules/shared/sky-toast-resources.module.ts","../../../../../libs/components/toast/src/lib/modules/toast/toaster.service.ts","../../../../../libs/components/toast/src/lib/modules/toast/types/toast-type.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast.component.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast.component.html","../../../../../libs/components/toast/src/lib/modules/toast/toast.module.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast-body-context.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast-body.component.ts","../../../../../libs/components/toast/src/lib/modules/toast/toast-body.component.html","../../../../../libs/components/toast/src/lib/modules/toast/toast-adapter.service.ts","../../../../../libs/components/toast/src/lib/modules/toast/types/toast-container-options.ts","../../../../../libs/components/toast/src/lib/modules/toast/types/toast-display-direction.ts","../../../../../libs/components/toast/src/lib/modules/toast/toaster.component.ts","../../../../../libs/components/toast/src/lib/modules/toast/toaster.component.html","../../../../../libs/components/toast/src/lib/modules/toast/toast.service.ts","../../../../../libs/components/toast/src/skyux-toast.ts"],"sourcesContent":["// #region imports\nimport { Observable, Subject } from 'rxjs';\n\n// #endregion\n\nexport class SkyToastInstance {\n  /**\n   * An observable that indicates when the toast is closed.\n   */\n  public get closed(): Observable<void> {\n    return this.#closedObs;\n  }\n\n  #closed: Subject<void>;\n  #closedObs: Observable<void>;\n\n  constructor() {\n    this.#closed = new Subject<void>();\n    this.#closedObs = this.#closed.asObservable();\n  }\n\n  /**\n   * Closes the toast component.\n   */\n  public close(): void {\n    this.#closed.next();\n    this.#closed.complete();\n  }\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-toast' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n  SkyI18nModule,\n  SkyLibResources,\n  SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n  'EN-US': {\n    skyux_toast_close_button_aria_label: { message: 'Close message:' },\n    skyux_toast_close_button_title: { message: 'Close the message' },\n  },\n  'FR-CA': {\n    skyux_toast_close_button_aria_label: { message: 'Message de fermeture :' },\n    skyux_toast_close_button_title: { message: 'Fermer le message' },\n  },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n  exports: [SkyI18nModule],\n})\nexport class SkyToastResourcesModule {}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyToasterService {\n  public focusIn = new BehaviorSubject<boolean>(false);\n\n  public mouseOver = new BehaviorSubject<boolean>(false);\n}\n","export enum SkyToastType {\n  /**\n   * Sets the toast's icon and background color to the `danger` style.\n   */\n  Danger,\n  /**\n   * Sets the toast's icon and background color to the `info` style.\n   */\n  Info,\n  /**\n   * Sets the toast's icon and background color to the `success` style.\n   */\n  Success,\n  /**\n   * Sets the toast's icon and background color to the `warning` style.\n   */\n  Warning,\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport { skyAnimationEmerge } from '@skyux/animations';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Subject, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyToastResourcesModule } from '../shared/sky-toast-resources.module';\n\nimport { SkyToasterService } from './toaster.service';\nimport { SkyToastType } from './types/toast-type';\n\nconst AUTO_CLOSE_MILLISECONDS = 6000;\nconst SKY_TOAST_TYPE_DEFAULT = SkyToastType.Info;\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  animations: [skyAnimationEmerge],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    CommonModule,\n    SkyIconModule,\n    SkyIdModule,\n    SkyThemeModule,\n    SkyToastResourcesModule,\n  ],\n})\nexport class SkyToastComponent implements OnInit, OnDestroy {\n  /**\n   * Whether to automatically close the toast. Only close toasts\n   * automatically if users can access the messages after the toasts close.\n   */\n  @Input()\n  public autoClose: boolean | undefined;\n\n  /**\n   * The `SkyToastType` type for the toast to determine the color and icon to display.\n   */\n  @Input()\n  public set toastType(value: SkyToastType | undefined) {\n    this.toastTypeOrDefault = value ?? SKY_TOAST_TYPE_DEFAULT;\n    this.#updateForToastType();\n  }\n\n  /**\n   * Fires when the toast closes.\n   */\n  @Output()\n  public closed = new EventEmitter<void>();\n\n  public get isOpen(): boolean {\n    return this.#isOpen;\n  }\n\n  public ariaLive = 'polite';\n  public ariaRole: string | undefined;\n  public classNames = '';\n  public iconName: string | undefined;\n  public toastTypeOrDefault: SkyToastType = SKY_TOAST_TYPE_DEFAULT;\n\n  #autoCloseTimeoutId: unknown;\n  #isOpen = false;\n  #ngUnsubscribe = new Subject<void>();\n\n  readonly #changeDetector = inject(ChangeDetectorRef);\n  readonly #toasterService = inject(SkyToasterService, { optional: true });\n  readonly #ngZone = inject(NgZone);\n\n  public ngOnInit(): void {\n    this.#isOpen = true;\n\n    this.startAutoCloseTimer();\n\n    if (this.#toasterService) {\n      combineLatest([\n        this.#toasterService.focusIn,\n        this.#toasterService.mouseOver,\n      ])\n        .pipe(takeUntil(this.#ngUnsubscribe))\n        .subscribe(([hasFocus, hasMouseOver]) => {\n          if (hasFocus || hasMouseOver) {\n            this.stopAutoCloseTimer();\n          } else {\n            this.startAutoCloseTimer();\n          }\n        });\n    }\n\n    this.#updateForToastType();\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n\n    this.stopAutoCloseTimer();\n  }\n\n  public onAnimationDone(event: AnimationEvent): void {\n    if (event.toState === 'closed') {\n      this.closed.emit();\n      this.closed.complete();\n    }\n  }\n\n  public close(): void {\n    this.stopAutoCloseTimer();\n\n    this.#isOpen = false;\n    this.#changeDetector.markForCheck();\n  }\n\n  public startAutoCloseTimer(): void {\n    if (\n      this.autoClose &&\n      (!this.#toasterService ||\n        (!this.#toasterService.focusIn.getValue() &&\n          !this.#toasterService.mouseOver.getValue()))\n    ) {\n      this.stopAutoCloseTimer();\n\n      this.#ngZone.runOutsideAngular(() => {\n        this.#autoCloseTimeoutId = setTimeout(() => {\n          this.close();\n        }, AUTO_CLOSE_MILLISECONDS);\n      });\n    }\n  }\n\n  public stopAutoCloseTimer(): void {\n    if (this.#autoCloseTimeoutId) {\n      clearTimeout(this.#autoCloseTimeoutId as number);\n    }\n  }\n\n  #updateForToastType(): void {\n    let icon: string;\n\n    switch (this.toastTypeOrDefault) {\n      case SkyToastType.Danger:\n      case SkyToastType.Warning:\n        icon = 'warning';\n        break;\n      case SkyToastType.Info:\n        icon = 'info';\n        break;\n      case SkyToastType.Success:\n        icon = 'success';\n        break;\n    }\n\n    this.iconName = icon;\n\n    let typeLabel: string;\n    switch (this.toastTypeOrDefault) {\n      case SkyToastType.Danger:\n        typeLabel = 'danger';\n        break;\n\n      case SkyToastType.Info:\n      default:\n        typeLabel = 'info';\n        break;\n\n      case SkyToastType.Success:\n        typeLabel = 'success';\n        break;\n\n      case SkyToastType.Warning:\n        typeLabel = 'warning';\n        break;\n    }\n\n    this.classNames = `sky-toast-${typeLabel}`;\n  }\n}\n","<aside\n  [@skyAnimationEmerge]=\"isOpen ? 'open' : 'closed'\"\n  (@skyAnimationEmerge.done)=\"onAnimationDone($event)\"\n>\n  <div\n    class=\"sky-toast sky-shadow sky-rounded-corners sky-box sky-elevation-16\"\n    [ngClass]=\"classNames\"\n  >\n    <div *skyThemeIf=\"'modern'\" aria-hidden=\"true\" class=\"sky-toast-icon\">\n      <sky-icon iconSize=\"xl\" variant=\"solid\" [iconName]=\"iconName\" />\n    </div>\n    <div *skyThemeIf=\"'default'\" aria-hidden=\"true\" class=\"sky-toast-icon\">\n      <sky-icon variant=\"solid\" [iconName]=\"iconName\" />\n    </div>\n    <div\n      #toastContent\n      class=\"sky-toast-content\"\n      skyId=\"toastContent\"\n      role=\"alert\"\n    >\n      <ng-content />\n    </div>\n    <button\n      class=\"sky-toast-btn-close\"\n      type=\"button\"\n      [attr.title]=\"'skyux_toast_close_button_title' | skyLibResources\"\n      [attr.aria-labelledby]=\"toastCloseMessage.id + ' ' + toastContent.id\"\n      (click)=\"close()\"\n    >\n      <sky-icon iconName=\"close\" />\n    </button>\n  </div>\n  <span\n    #toastCloseMessage\n    class=\"sky-screen-reader-only\"\n    skyId=\"toastCloseMessage\"\n    >{{ 'skyux_toast_close_button_aria_label' | skyLibResources }}</span\n  >\n</aside>\n","import { NgModule } from '@angular/core';\n\nimport { SkyToastComponent } from './toast.component';\n\n@NgModule({\n  imports: [SkyToastComponent],\n  exports: [SkyToastComponent],\n})\nexport class SkyToastModule {}\n","// #region imports\nimport { Provider, Type } from '@angular/core';\n\nimport { SkyToastInstance } from './toast-instance';\nimport { SkyToastConfig } from './types/toast-config';\n\n// #endregion\n\nlet toastCount = 0;\n\n/**\n * @internal\n */\nexport class SkyToast {\n  public get bodyComponent(): Type<unknown> {\n    return this.#bodyComponent;\n  }\n\n  public get bodyComponentProviders(): Provider[] {\n    return this.#bodyComponentProviders;\n  }\n\n  public get config(): SkyToastConfig | undefined {\n    return this.#config;\n  }\n\n  public get instance(): SkyToastInstance {\n    return this.#instance;\n  }\n\n  public isRendered = false;\n\n  public toastId: number;\n\n  #bodyComponent: Type<unknown>;\n  #bodyComponentProviders: Provider[];\n  #config: SkyToastConfig | undefined;\n\n  #instance: SkyToastInstance;\n\n  constructor(\n    bodyComponent: Type<unknown>,\n    bodyComponentProviders: Provider[],\n    instance: SkyToastInstance,\n    config?: SkyToastConfig,\n  ) {\n    this.#bodyComponent = bodyComponent;\n    this.#bodyComponentProviders = bodyComponentProviders;\n    this.#instance = instance;\n    this.#config = config;\n\n    this.toastId = ++toastCount;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyToastBodyContext {\n  public message: string | undefined;\n}\n","import { Component, inject } from '@angular/core';\n\nimport { SkyToastBodyContext } from './toast-body-context';\n\n/**\n * @internal\n */\n@Component({\n  standalone: true,\n  selector: 'sky-toast-body',\n  templateUrl: './toast-body.component.html',\n})\nexport class SkyToastBodyComponent {\n  protected readonly context = inject(SkyToastBodyContext);\n}\n","<div class=\"sky-toast-body\">\n  {{ context.message }}\n</div>\n","import { ElementRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyToastAdapterService {\n  #windowRef: SkyAppWindowRef;\n  constructor(windowRef: SkyAppWindowRef) {\n    this.#windowRef = windowRef;\n  }\n\n  public scrollBottom(elementRef: ElementRef): void {\n    const element = elementRef.nativeElement;\n    this.#windowRef.nativeWindow.setTimeout(() => {\n      element.scrollTop = element.scrollHeight;\n    });\n  }\n\n  public getToastId(containerRef: ViewContainerRef): number {\n    return +containerRef.element.nativeElement.dataset.toastId;\n  }\n}\n","import { SkyToastDisplayDirection } from './toast-display-direction';\n\n/**\n * Global configuration options for displaying toast components.\n */\nexport class SkyToastContainerOptions {\n  /**\n   * Order in which toasts should appear in the page's toast container.\n   */\n  public displayDirection: SkyToastDisplayDirection | undefined;\n}\n","export enum SkyToastDisplayDirection {\n  /**\n   * Displays new toasts below previous toasts.\n   */\n  OldestOnTop,\n  /**\n   * Displays new toasts on top of previous toasts.\n   */\n  NewestOnTop,\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EnvironmentInjector,\n  OnDestroy,\n  QueryList,\n  StaticProvider,\n  ViewChild,\n  ViewChildren,\n  ViewContainerRef,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport { SKY_STACKING_CONTEXT, SkyDynamicComponentService } from '@skyux/core';\n\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyToastResourcesModule } from '../shared/sky-toast-resources.module';\n\nimport { SkyToast } from './toast';\nimport { SkyToastAdapterService } from './toast-adapter.service';\nimport { SkyToastComponent } from './toast.component';\nimport { SkyToastService } from './toast.service';\nimport { SkyToasterService } from './toaster.service';\nimport { SkyToastContainerOptions } from './types/toast-container-options';\nimport { SkyToastDisplayDirection } from './types/toast-display-direction';\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-toaster',\n  templateUrl: './toaster.component.html',\n  styleUrls: ['./toaster.component.scss'],\n  providers: [SkyToastAdapterService, SkyToasterService],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommonModule, SkyToastComponent, SkyToastResourcesModule],\n})\nexport class SkyToasterComponent implements AfterViewInit, OnDestroy {\n  public toastsForDisplay: SkyToast[] | undefined;\n\n  @ViewChild('toaster')\n  public toaster: ElementRef | undefined;\n\n  @ViewChildren('toastContent', { read: ViewContainerRef })\n  public toastContent: QueryList<ViewContainerRef> | undefined;\n\n  @ViewChildren(SkyToastComponent)\n  public toastComponents: QueryList<SkyToastComponent> | undefined;\n\n  protected zIndex$ = new BehaviorSubject(1051);\n\n  #ngUnsubscribe = new Subject<void>();\n\n  readonly #changeDetector = inject(ChangeDetectorRef);\n  readonly #containerOptions = inject(SkyToastContainerOptions, {\n    optional: true,\n  });\n  readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n  readonly #domAdapter = inject(SkyToastAdapterService);\n  readonly #environmentInjector = inject(EnvironmentInjector);\n  readonly #toastService = inject(SkyToastService);\n  readonly #toasterService = inject(SkyToasterService);\n\n  public ngAfterViewInit(): void {\n    if (this.toastContent) {\n      this.toastContent.changes.subscribe(() => {\n        this.#injectToastContent();\n      });\n\n      this.#toastService.toastStream\n        .pipe(takeUntil(this.#ngUnsubscribe))\n        .subscribe((toasts: SkyToast[]) => {\n          this.toastsForDisplay = this.#sortToastsForDisplay(toasts);\n\n          // Scroll to the bottom of the toaster element when a new toast is added.\n          if (\n            this.toaster &&\n            (!this.#containerOptions ||\n              this.#containerOptions.displayDirection ===\n                SkyToastDisplayDirection.OldestOnTop)\n          ) {\n            this.#domAdapter.scrollBottom(this.toaster);\n          }\n\n          this.#changeDetector.detectChanges();\n        });\n    }\n  }\n\n  public onToastClosed(toast: SkyToast): void {\n    toast.instance.close();\n  }\n\n  public closeAll(): void {\n    // Sanity check\n    /* istanbul ignore else */\n    if (this.toastComponents) {\n      for (const toastComponent of this.toastComponents) {\n        toastComponent.close();\n      }\n    }\n  }\n\n  public onMouseEnter(): void {\n    this.#toasterService.mouseOver.next(true);\n  }\n\n  public onMouseLeave(): void {\n    this.#toasterService.mouseOver.next(false);\n  }\n\n  public onFocusIn(): void {\n    this.#toasterService.focusIn.next(true);\n  }\n\n  public onFocusOut(): void {\n    this.#toasterService.focusIn.next(false);\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n  }\n\n  #injectToastContent(): void {\n    // Dynamically inject each toast's body content when the number of toasts changes.\n    this.#toastService.toastStream.pipe(take(1)).subscribe((toasts) => {\n      /* istanbul ignore else */\n      if (this.toastContent) {\n        for (const target of this.toastContent) {\n          const toastId = this.#domAdapter.getToastId(target);\n\n          const toast = toasts.find((item) => item.toastId === toastId);\n\n          if (toast && !toast.isRendered) {\n            target.clear();\n\n            const providers = [\n              ...toast.bodyComponentProviders,\n              {\n                provide: SKY_STACKING_CONTEXT,\n                useValue: {\n                  zIndex: this.zIndex$\n                    .asObservable()\n                    .pipe(takeUntil(this.#ngUnsubscribe)),\n                },\n              },\n            ] as StaticProvider[];\n\n            const componentRef = this.#dynamicComponentSvc.createComponent(\n              toast.bodyComponent,\n              {\n                environmentInjector: this.#environmentInjector,\n                providers,\n              },\n            );\n\n            const toastEl = document.querySelector(\n              `[data-toast-id=\"${toast.toastId}\"]`,\n            );\n\n            /* istanbul ignore else */\n            if (toastEl) {\n              toastEl.appendChild(componentRef.location.nativeElement);\n            }\n\n            componentRef.changeDetectorRef.detectChanges();\n\n            toast.isRendered = true;\n          }\n        }\n      }\n    });\n  }\n\n  #sortToastsForDisplay(toasts: SkyToast[]): SkyToast[] {\n    const sortedToasts = toasts.slice();\n\n    if (\n      sortedToasts &&\n      this.#containerOptions &&\n      this.#containerOptions.displayDirection ===\n        SkyToastDisplayDirection.NewestOnTop\n    ) {\n      sortedToasts.reverse();\n    }\n\n    return sortedToasts;\n  }\n}\n","<div\n  #toaster\n  class=\"sky-toaster\"\n  [style.z-index]=\"zIndex$ | async\"\n  (focusin)=\"onFocusIn()\"\n  (focusout)=\"onFocusOut()\"\n  (mouseenter)=\"onMouseEnter()\"\n  (mouseleave)=\"onMouseLeave()\"\n>\n  @for (toast of toastsForDisplay; track toast.toastId) {\n    <sky-toast\n      [autoClose]=\"toast.config?.autoClose\"\n      [toastType]=\"toast.config?.type\"\n      (closed)=\"onToastClosed(toast)\"\n    >\n      <div #toastContent [attr.data-toast-id]=\"toast.toastId\"></div>\n    </sky-toast>\n  }\n</div>\n","import {\n  ComponentRef,\n  EnvironmentInjector,\n  Injectable,\n  OnDestroy,\n  Provider,\n  Type,\n  inject,\n} from '@angular/core';\nimport {\n  SkyDynamicComponentLegacyService,\n  SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyToast } from './toast';\nimport { SkyToastBodyContext } from './toast-body-context';\nimport { SkyToastBodyComponent } from './toast-body.component';\nimport { SkyToastInstance } from './toast-instance';\nimport { SkyToasterComponent } from './toaster.component';\nimport { SkyToastConfig } from './types/toast-config';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SkyToastService implements OnDestroy {\n  private static host: ComponentRef<SkyToasterComponent> | undefined;\n  private static toasts: SkyToast[] = [];\n  private static toastStream: BehaviorSubject<SkyToast[]>;\n\n  /**\n   * @internal\n   */\n  public get toastStream(): Observable<SkyToast[]> {\n    return SkyToastService.toastStream;\n  }\n\n  #dynamicComponentService: SkyDynamicComponentService;\n  #environmentInjector = inject(EnvironmentInjector);\n\n  constructor(dynamicComponentService: SkyDynamicComponentService) {\n    this.#dynamicComponentService = dynamicComponentService;\n    SkyToastService.toastStream = new BehaviorSubject<SkyToast[]>([]);\n  }\n\n  public ngOnDestroy(): void {\n    if (SkyToastService.host) {\n      this.closeAll();\n      this.#removeHostComponent();\n    }\n\n    SkyToastService.toasts = [];\n    SkyToastService.toastStream.complete();\n  }\n\n  /**\n   * Opens a new toast and displays the specified message.\n   * @param message Specifies the text to display in the toast.\n   * @param config Specifies additional configuration options for the toast.\n   */\n  public openMessage(\n    message: string,\n    config?: SkyToastConfig,\n  ): SkyToastInstance {\n    const context = new SkyToastBodyContext();\n    context.message = message;\n\n    const providers = [\n      {\n        provide: SkyToastBodyContext,\n        useValue: context,\n      },\n    ];\n\n    return this.openComponent(SkyToastBodyComponent, config, providers);\n  }\n\n  /**\n   * Opens a new toast using a custom component.\n   * @param component Specifies an Angular component to inject into the toast body,\n   * @param config Specifies additional configuration options for the toast.\n   * @param providers Specifies an array of custom providers to pass to the custom component's\n   * constructor.\n   */\n  public openComponent(\n    component: Type<unknown>,\n    config?: SkyToastConfig,\n    providers: Provider[] = [],\n  ): SkyToastInstance {\n    const instance = new SkyToastInstance();\n\n    providers.push({\n      provide: SkyToastInstance,\n      useValue: instance,\n    });\n\n    const toast = new SkyToast(component, providers, instance, config);\n    this.#addToast(toast, instance);\n\n    return instance;\n  }\n\n  /**\n   * Closes all active toast components.\n   */\n  public closeAll(): void {\n    if (!SkyToastService.host) {\n      return;\n    }\n\n    SkyToastService.host.instance.closeAll();\n  }\n\n  #addToast(toast: SkyToast, instance: SkyToastInstance): void {\n    if (!SkyToastService.host) {\n      SkyToastService.host = this.#createHostComponent();\n    }\n\n    SkyToastService.toasts.push(toast);\n    SkyToastService.toastStream.next(SkyToastService.toasts);\n    instance.closed.subscribe(() => {\n      this.#removeToast(toast);\n    });\n  }\n\n  #removeToast(toast: SkyToast): void {\n    SkyToastService.toasts = SkyToastService.toasts.filter((t) => t !== toast);\n    SkyToastService.toastStream.next(SkyToastService.toasts);\n\n    if (SkyToastService.toasts.length === 0) {\n      this.#removeHostComponent();\n    }\n  }\n\n  #createHostComponent(): ComponentRef<SkyToasterComponent> {\n    const componentRef = this.#dynamicComponentService.createComponent(\n      SkyToasterComponent,\n      {\n        environmentInjector: this.#environmentInjector,\n      },\n    );\n\n    return componentRef;\n  }\n\n  #removeHostComponent(): void {\n    if (SkyToastService.host) {\n      this.#dynamicComponentService.removeComponent(SkyToastService.host);\n      SkyToastService.host = undefined;\n    }\n  }\n}\n\n/**\n * @internal\n * @deprecated Use `SkyToastService` to open a standalone component instead.\n */\n@Injectable({\n  // Toast service has always been provided in root, but we need\n  // to inject SkyDynamicComponentLegacyService for backward compatibility.\n  providedIn: 'root',\n})\nexport class SkyToastLegacyService extends SkyToastService {\n  /* istanbul ignore next */\n  constructor(dynamicComponentSvc: SkyDynamicComponentLegacyService) {\n    super(dynamicComponentSvc);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1"],"mappings":"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"}