{"version":3,"file":"alert.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert-animations.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert-ref.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert-service.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert-outlet.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert-outlet.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/alert/alert.module.ts"],"sourcesContent":["import {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\n/** Animations used by alert. */\nexport const sbbAlertAnimations: {\n  readonly showDismiss: AnimationTriggerMetadata;\n} = {\n  /** Animation that applies when adding and dismissing an alert. */\n  showDismiss: trigger('showDismiss', [\n    state(\n      'void, dismissed',\n      style({\n        height: 0,\n        paddingTop: 0,\n        paddingBottom: 0,\n        borderTopWidth: 0,\n        borderBottomWidth: 0,\n      }),\n    ),\n    state(\n      'visible',\n      style({\n        height: '*',\n        paddingTop: '*',\n        paddingBottom: '*',\n        borderTopWidth: '*',\n        borderBottomWidth: '*',\n      }),\n    ),\n    transition('void => visible', animate('0.25s cubic-bezier(0.4,0.0,0.2,1)')),\n    transition('visible => dismissed', animate('0.25s cubic-bezier(0.4,0.0,0.2,1)')),\n  ]),\n};\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport { AnimationEvent } from '@angular/animations';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  inject,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { sbbAlertAnimations } from './alert-animations';\n\n/** Alert states used for the animation */\nexport type SbbAlertState = 'visible' | 'dismissed';\n\n/** Alert deleted custom event  */\nexport interface SbbAlertEvent {\n  alert: SbbAlert;\n}\n\n@Component({\n  selector: 'sbb-alert, a[sbbAlert]',\n  templateUrl: './alert.html',\n  styleUrls: ['./alert.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  animations: [sbbAlertAnimations.showDismiss],\n  host: {\n    class: 'sbb-alert',\n    '[id]': 'id',\n    '[attr.hidden]': '_closed ? true : null',\n    '[attr.aria-hidden]': '_closed ? true : null',\n    '[attr.role]': '!_closed ? \"alert\" : null',\n    '[class.sbb-alert-link]': '_isNativeLink',\n    '[@showDismiss]': '_animationState',\n  },\n  imports: [SbbIconModule],\n})\nexport class SbbAlert {\n  private _changeDetector = inject(ChangeDetectorRef);\n\n  _labelClose: string = $localize`:Hidden button label to close the alert@@sbbAlertCloseAlert:Close message`;\n\n  /** The id of this element. */\n  @Input() id: string = inject(_IdGenerator).getId('sbb-alert-');\n\n  /** The animation state of this alert. */\n  _animationState: SbbAlertState = 'visible';\n\n  /** Whether this alert is closed. */\n  _closed: boolean = false;\n\n  /** Set to true, if the host element is an <a> element. */\n  _isNativeLink: boolean = false;\n\n  /** Emitted when a alert is to be dismissed. */\n  @Output() readonly dismissed: EventEmitter<SbbAlertEvent> = new EventEmitter<SbbAlertEvent>();\n\n  /**\n   * The indicator icon, which will be shown before the content.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"plus-small\"\n   */\n  @Input() svgIcon: string = 'info';\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n    if (elementRef.nativeElement.nodeName.toLowerCase() === 'a') {\n      this._isNativeLink = true;\n    }\n  }\n\n  /** Dismiss this alert. */\n  dismiss(): void {\n    this._animationState = 'dismissed';\n  }\n\n  /** Handles the click on the close button. */\n  _handleDismiss(event: Event) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.dismiss();\n  }\n\n  @HostListener('@showDismiss.done', ['$event'])\n  _handleAnimation(event: AnimationEvent) {\n    const { phaseName, toState } = event;\n\n    if (phaseName === 'done' && toState === 'dismissed') {\n      this._closed = true;\n      this._changeDetector.markForCheck();\n      this.dismissed.next({ alert: this });\n    }\n  }\n}\n","<div class=\"sbb-alert-icon sbb-icon-scaled\">\n  <sbb-icon [svgIcon]=\"svgIcon || 'info'\"></sbb-icon>\n</div>\n<div class=\"sbb-alert-content\">\n  <ng-content></ng-content>\n  @if (_isNativeLink) {\n    <sbb-icon\n      svgIcon=\"arrow-long-right-small\"\n      class=\"sbb-alert-content-link-icon sbb-icon-scaled\"\n    ></sbb-icon>\n  }\n</div>\n<div class=\"sbb-alert-close\">\n  <button\n    type=\"button\"\n    class=\"sbb-alert-close-button sbb-button-reset-frameless sbb-icon-scaled\"\n    (click)=\"_handleDismiss($event)\"\n  >\n    <sbb-icon svgIcon=\"cross-small\" class=\"sbb-alert-close-button-icon\"></sbb-icon>\n    <span class=\"cdk-visually-hidden\">{{ _labelClose }}</span>\n  </button>\n</div>\n","import { EmbeddedViewRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { SbbAlertConfig, SbbRouterLink } from './alert-config';\nimport { SbbAlertOutlet } from './alert-outlet';\n\nexport class SbbAlertRefConnector implements SbbAlertConfig {\n  /** The message to display in the alert. */\n  message: string;\n  /**\n   * Icon to be used in the alert.\n   * Must be a valid svgIcon input for sbb-icon.\n   */\n  svgIcon?: string;\n  /** Link to be used for the alert. Will be applied to routerLink. */\n  routerLink?: SbbRouterLink;\n  /** Link to be used for the alert. Will be treated as an external link. */\n  link?: string;\n  /** Subject which will emit once the dismissed event happened. */\n  readonly afterDismissed = new Subject<void>();\n\n  constructor(message: string, config: SbbAlertConfig) {\n    this.message = message;\n    this.svgIcon = config.svgIcon;\n    this.routerLink =\n      typeof config.routerLink === 'string' || Array.isArray(config.routerLink)\n        ? { routerLink: config.routerLink }\n        : config.routerLink;\n    this.link = config.link;\n  }\n\n  /** Handles the dismissed event of the referenced alert. */\n  _handleDismissed() {\n    if (!this.afterDismissed.closed) {\n      this.afterDismissed.next();\n      this.afterDismissed.complete();\n    }\n  }\n}\n\n/**\n * Reference to a alert created via service API.\n */\nexport class SbbAlertRef {\n  /** The instance of the component making up the content of the alert. */\n  instance!: EmbeddedViewRef<any>;\n\n  // noinspection JSUnusedGlobalSymbols\n  constructor(\n    readonly instanceOutlet: SbbAlertOutlet,\n    private _connector: SbbAlertRefConnector,\n  ) {\n    this.afterDismissed().subscribe(() => this.instance.destroy());\n  }\n\n  dismiss(): void {\n    if (!this._connector.afterDismissed.closed) {\n      this.instance.destroy();\n      this._connector._handleDismissed();\n    }\n  }\n\n  /** Gets an observable that is notified when the alert has been dismissed. */\n  afterDismissed(): Observable<void> {\n    return this._connector.afterDismissed;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, mapTo, take } from 'rxjs/operators';\n\nimport { SbbAlertConfig } from './alert-config';\nimport type { SbbAlertOutlet } from './alert-outlet';\nimport { SbbAlertRef } from './alert-ref';\n\n/** Service to add alerts to a placed sbb-alert-outlet. */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SbbAlertService {\n  /** Observable you can subscribe to know if sbb-alert-outlet has been loaded */\n  readonly outletReady: Observable<void>;\n\n  private _outletReady = new BehaviorSubject<boolean>(false);\n  private _outletInstance?: SbbAlertOutlet;\n\n  constructor() {\n    this.outletReady = this._outletReady.pipe(\n      filter((r) => !!r),\n      take(1),\n      mapTo(undefined),\n    );\n  }\n\n  /** Add a new alert. */\n  add(config: SbbAlertConfig & { message: string }): SbbAlertRef;\n  add(message: string, config?: SbbAlertConfig): SbbAlertRef;\n  add(\n    messageOrConfig: string | (SbbAlertConfig & { message: string }),\n    config?: SbbAlertConfig,\n  ): SbbAlertRef {\n    this._assertOutlet();\n    if (typeof messageOrConfig === 'string') {\n      return this._outletInstance!.createAlert(messageOrConfig, config || {});\n    } else {\n      const { message, ...remainingConfig } = messageOrConfig;\n      return this._outletInstance!.createAlert(message, remainingConfig || {});\n    }\n  }\n\n  /** Dismiss all alerts. */\n  dismissAll() {\n    this._assertOutlet();\n    this._outletInstance!.dismissAll();\n  }\n\n  _register(outletInstance: SbbAlertOutlet) {\n    if (this._outletInstance) {\n      throw new Error('Only one <sbb-alert-outlet> can be used at a time!');\n    }\n    this._outletInstance = outletInstance;\n    this._outletReady.next(true);\n  }\n\n  _unregister(outletInstance: SbbAlertOutlet) {\n    if (!this._outletInstance) {\n      throw new Error(\n        'Trying to remove a <sbb-alert-outlet> that has not been registered previously!',\n      );\n    } else if (this._outletInstance !== outletInstance) {\n      throw new Error('Trying to remove an unregistered <sbb-alert-outlet>!');\n    }\n    this._outletInstance = undefined;\n    this._outletReady.next(false);\n  }\n\n  private _assertOutlet() {\n    if (!this._outletInstance) {\n      throw new Error(\n        'No <sbb-alert-outlet> has been registered! Have you added a <sbb-alert-outlet> element in your DOM?',\n      );\n    }\n  }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  inject,\n  Input,\n  OnDestroy,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { SbbAlert } from './alert';\nimport { SbbAlertConfig } from './alert-config';\nimport { SbbAlertRef, SbbAlertRefConnector } from './alert-ref';\nimport { SbbAlertService } from './alert-service';\n\n/**\n * This component is used for handle a collection of alerts via the AlertService.\n */\n@Component({\n  selector: 'sbb-alert-outlet',\n  templateUrl: './alert-outlet.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-alert-outlet',\n    '[id]': 'id',\n    role: 'region',\n    'aria-live': 'assertive',\n    'aria-relevant': 'all',\n    tabindex: '-1',\n  },\n  imports: [SbbAlert, RouterLink],\n})\nexport class SbbAlertOutlet implements OnDestroy {\n  private _alertService = inject(SbbAlertService);\n  private _changeDetectorRef = inject(ChangeDetectorRef);\n\n  @Input() id: string = inject(_IdGenerator).getId('sbb-alert-outlet-');\n\n  /** The portal where to attach the alerts generated by the service. */\n  @ViewChild('outlet', { static: true, read: ViewContainerRef }) _outletRef!: ViewContainerRef;\n\n  @ViewChild('standard', { static: true }) _templateStandard!: TemplateRef<any>;\n  @ViewChild('routerLink', { static: true }) _templateRouterLink!: TemplateRef<any>;\n  @ViewChild('externalLink', { static: true }) _templateExternalLink!: TemplateRef<any>;\n\n  constructor(...args: unknown[]);\n  constructor() {\n    this._alertService._register(this);\n  }\n\n  ngOnDestroy() {\n    this._alertService._unregister(this);\n  }\n\n  /** Creates a new ComponentPortal of an Alert and attach it to the cdkPortalOutlet */\n  createAlert(message: string, config: SbbAlertConfig): SbbAlertRef {\n    const template = this._selectTemplate(config);\n    const connector = new SbbAlertRefConnector(message, config);\n    const ref = new SbbAlertRef(this, connector);\n    ref.instance = this._outletRef.createEmbeddedView(template, { connector });\n    this._changeDetectorRef.markForCheck();\n    return ref;\n  }\n\n  /** Dismiss all alert instances from this outlet. */\n  dismissAll() {\n    this._outletRef.clear();\n  }\n\n  private _selectTemplate(config: SbbAlertConfig) {\n    if (config.link) {\n      return this._templateExternalLink;\n    } else if (config.routerLink) {\n      return this._templateRouterLink;\n    }\n\n    return this._templateStandard;\n  }\n}\n","<ng-content select=\"sbb-alert\"></ng-content>\n<ng-template #outlet></ng-template>\n\n<ng-template #standard let-connector=\"connector\">\n  <sbb-alert #alert [svgIcon]=\"connector.svgIcon\" (dismissed)=\"connector._handleDismissed()\">{{\n    connector.message\n  }}</sbb-alert>\n</ng-template>\n<ng-template #routerLink let-connector=\"connector\">\n  <a\n    sbbAlert\n    #alert\n    [svgIcon]=\"connector.svgIcon\"\n    [routerLink]=\"connector.routerLink.routerLink\"\n    [queryParams]=\"connector.routerLink.queryParams\"\n    [fragment]=\"connector.routerLink.fragment\"\n    [queryParamsHandling]=\"connector.routerLink.queryParamsHandling\"\n    [preserveFragment]=\"connector.routerLink.preserveFragment\"\n    [skipLocationChange]=\"connector.routerLink.skipLocationChange\"\n    [replaceUrl]=\"connector.routerLink.replaceUrl\"\n    [state]=\"connector.routerLink.state\"\n    [relativeTo]=\"connector.routerLink.relativeTo\"\n    (dismissed)=\"connector._handleDismissed()\"\n    >{{ connector.message }}</a\n  >\n</ng-template>\n<ng-template #externalLink let-connector=\"connector\">\n  <a\n    sbbAlert\n    #alert\n    [href]=\"connector.link\"\n    [svgIcon]=\"connector.svgIcon\"\n    (dismissed)=\"connector._handleDismissed()\"\n    >{{ connector.message }}</a\n  >\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbAlert } from './alert';\nimport { SbbAlertOutlet } from './alert-outlet';\n\n@NgModule({\n  imports: [RouterModule, SbbCommonModule, SbbIconModule, SbbAlert, SbbAlertOutlet],\n  exports: [SbbAlert, SbbAlertOutlet],\n})\nexport class SbbAlertModule {}\n"],"names":[],"mappings":"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"}