{"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":["sbbAlertAnimations","showDismiss","trigger","state","style","height","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","transition","animate","SbbAlert","_changeDetector","inject","ChangeDetectorRef","_labelClose","$localize","id","_IdGenerator","getId","_animationState","_closed","_isNativeLink","dismissed","EventEmitter","svgIcon","constructor","elementRef","ElementRef","nativeElement","nodeName","toLowerCase","dismiss","_handleDismiss","event","preventDefault","stopPropagation","_handleAnimation","phaseName","toState","markForCheck","next","alert","deps","target","i0","ɵɵFactoryTarget","Component","isStandalone","selector","inputs","outputs","host","listeners","properties","classAttribute","ngImport","template","styles","dependencies","kind","type","SbbIconModule","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","args","animations","class","imports","Input","Output","HostListener","SbbAlertRefConnector","message","routerLink","link","afterDismissed","Subject","config","Array","isArray","_handleDismissed","closed","complete","SbbAlertRef","instanceOutlet","_connector","instance","subscribe","destroy","SbbAlertService","outletReady","_outletReady","BehaviorSubject","_outletInstance","pipe","filter","r","take","mapTo","undefined","add","messageOrConfig","_assertOutlet","createAlert","remainingConfig","dismissAll","_register","outletInstance","Error","_unregister","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","providedIn","SbbAlertOutlet","_alertService","_changeDetectorRef","_outletRef","_templateStandard","_templateRouterLink","_templateExternalLink","ngOnDestroy","_selectTemplate","connector","ref","createEmbeddedView","clear","ɵcmp","ɵɵngDeclareComponent","ViewContainerRef","static","propertyName","first","predicate","descendants","RouterLink","role","tabindex","ViewChild","read","SbbAlertModule","NgModule","ɵmod","ɵɵngDeclareNgModule","RouterModule","SbbCommonModule","exports"],"mappings":"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"}