{"version":3,"file":"button.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/button/button.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/button/button.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/button/button.module.ts"],"sourcesContent":["import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { AsyncPipe } from '@angular/common';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ANIMATION_MODULE_TYPE,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  QueryList,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { mixinVariant } from '@sbb-esta/angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n/**\n * List of classes to add to SbbButton instances based on host attributes to\n * style as different variants.\n */\nconst BUTTON_HOST_ATTRIBUTES = [\n  'sbb-button',\n  'sbb-alt-button',\n  'sbb-secondary-button',\n  'sbb-ghost-button',\n  'sbb-frameless-button',\n  'sbb-link',\n];\n\nconst INDICATOR_ATTRIBUTES = [\n  'sbb-button',\n  'sbb-secondary-button',\n  'sbb-frameless-button',\n  'sbb-link',\n];\n\nconst VALID_ICON_BUTTON_ATTRIBUTES = [\n  'sbb-button',\n  'sbb-alt-button',\n  'sbb-secondary-button',\n  'sbb-ghost-button',\n];\n\nconst DEFAULT_INDICATOR_ICONS: { [attr: string]: string } = {\n  'sbb-button': 'arrow-right-small',\n  'sbb-secondary-button': 'arrow-right-small',\n  'sbb-frameless-button': 'plus-small',\n  'sbb-link': 'arrow-right-small',\n};\n\n// Boilerplate for applying mixins to SbbButton.\nconst _SbbButtonMixinBase = mixinVariant(\n  class {\n    constructor(public _elementRef: ElementRef) {}\n  },\n);\n\n/**\n * SBB design button.\n */\n@Component({\n  selector: `button[sbb-button], button[sbb-alt-button], button[sbb-secondary-button],\n             button[sbb-ghost-button],  button[sbb-frameless-button], button[sbb-link]`,\n  exportAs: 'sbbButton',\n  host: {\n    '[attr.disabled]': 'disabled || null',\n    '[class._sbb-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '[class.sbb-disabled]': 'disabled',\n    '[class.sbb-icon-button]': '_hasIconButtonClass',\n  },\n  templateUrl: 'button.html',\n  inputs: ['disabled'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [SbbIconModule, AsyncPipe],\n})\nexport class SbbButton\n  extends _SbbButtonMixinBase\n  implements AfterViewInit, AfterContentInit, OnDestroy, FocusableOption\n{\n  private _focusMonitor = inject(FocusMonitor);\n  _animationMode: 'NoopAnimations' | 'BrowserAnimations' = inject(ANIMATION_MODULE_TYPE, {\n    optional: true,\n  })!;\n  private _contentObserver = inject(ContentObserver);\n\n  /** Whether this button has an icon indicator. */\n  _hasIconIndicator: boolean = this._hasHostAttributes(...INDICATOR_ATTRIBUTES);\n  /** Whether the left indicator icon is visible. */\n  _leftIconVisible!: Observable<boolean>;\n  /** Whether the right indicator icon is visible. */\n  _rightIconVisible!: Observable<boolean>;\n  /** Whether the button has the `sbb-icon-button` class */\n  _hasIconButtonClass: boolean = false;\n  /** Whether the button is an icon button. */\n  _isIconButton!: Observable<boolean>;\n  /**\n   * The indicator icon, which will be shown around the button content\n   * in the standard variant or behind the sbb-link in lean variant.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"plus-small\"\n   */\n  @Input() svgIcon!: string;\n\n  /** Whether the button is disabled. */\n  @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n  @ContentChildren(SbbIcon, { read: ElementRef }) _iconRefs: QueryList<ElementRef> =\n    new QueryList<ElementRef>();\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const elementRef = inject(ElementRef);\n    super(elementRef);\n\n    // For each of the variant selectors that is present in the button's host\n    // attributes, add the correct corresponding class.\n    for (const attr of BUTTON_HOST_ATTRIBUTES) {\n      if (this._hasHostAttributes(attr)) {\n        (this._getHostElement() as HTMLElement).classList.add(attr);\n\n        // Assign the correct default indicator icon.\n        if (attr in DEFAULT_INDICATOR_ICONS) {\n          this.svgIcon = DEFAULT_INDICATOR_ICONS[attr];\n        }\n      }\n    }\n\n    // Add a class that applies to all buttons. This makes it easier to target if somebody\n    // wants to target all sbb-angular buttons. We do it here rather than `host` to ensure that\n    // the class is applied to derived classes.\n    elementRef.nativeElement.classList.add('sbb-button-base');\n  }\n\n  ngAfterContentInit() {\n    this._isIconButton = this._contentObserver.observe(this._elementRef).pipe(\n      startWith([]),\n      map(\n        () =>\n          this._hasHostAttributes(...VALID_ICON_BUTTON_ATTRIBUTES) &&\n          this._elementRef.nativeElement.textContent.trim() === '' &&\n          this._iconRefs.length === 1,\n      ),\n    );\n\n    this._isIconButton.subscribe((isIconButton) => (this._hasIconButtonClass = isIconButton));\n\n    this._leftIconVisible = combineLatest([this.variant, this._isIconButton]).pipe(\n      map(([v, isIconButton]) => !isIconButton && v === 'standard' && this._hasIconIndicator),\n    );\n    this._rightIconVisible = combineLatest([this.variant, this._isIconButton]).pipe(\n      map(\n        ([v, isIconButton]) =>\n          !isIconButton &&\n          ((v === 'standard' && this._hasIconIndicator) ||\n            (v === 'lean' && this._hasHostAttributes('sbb-link'))),\n      ),\n    );\n  }\n\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this._elementRef, true);\n  }\n\n  ngOnDestroy() {\n    this._focusMonitor.stopMonitoring(this._elementRef);\n  }\n\n  /** Focuses the button. */\n  focus(origin?: FocusOrigin, options?: FocusOptions): void {\n    if (origin) {\n      this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n    } else {\n      this._getHostElement().focus(options);\n    }\n  }\n\n  private _getHostElement() {\n    return this._elementRef.nativeElement;\n  }\n\n  /** Gets whether the button has one of the given attributes. */\n  private _hasHostAttributes(...attributes: string[]) {\n    return attributes.some((attribute) => this._getHostElement().hasAttribute(attribute));\n  }\n}\n\n/**\n * SBB design anchor button.\n */\n@Component({\n  selector: `a[sbb-button], a[sbb-alt-button], a[sbb-secondary-button],\n             a[sbb-ghost-button], a[sbb-frameless-button], a[sbb-link]`,\n  exportAs: 'sbbButton, sbbAnchor',\n  host: {\n    // Note that we ignore the user-specified tabindex when it's disabled for\n    // consistency with the `sbb-button` applied on native buttons where even\n    // though they have an index, they're not tabbable.\n    '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n    '[attr.disabled]': 'disabled || null',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[class._sbb-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '[class.sbb-disabled]': 'disabled',\n  },\n  inputs: ['disabled'],\n  templateUrl: 'button.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [SbbIconModule, AsyncPipe],\n})\nexport class SbbAnchor extends SbbButton implements AfterViewInit, OnDestroy {\n  private _ngZone = inject(NgZone);\n\n  /** Tabindex of the button. */\n  @Input() tabIndex!: number;\n\n  override ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n\n    this._ngZone.runOutsideAngular(() => {\n      this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n    });\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n  }\n\n  _haltDisabledEvents = (event: Event): void => {\n    // A disabled button shouldn't apply any actions\n    if (this.disabled) {\n      event.preventDefault();\n      event.stopImmediatePropagation();\n    }\n  };\n}\n","@if ((_leftIconVisible | async) && svgIcon) {\n  <sbb-icon class=\"sbb-button-indicator-icon sbb-button-left-icon\" [svgIcon]=\"svgIcon\"></sbb-icon>\n}\n<ng-content></ng-content>\n@if ((_rightIconVisible | async) && svgIcon) {\n  <sbb-icon class=\"sbb-button-indicator-icon sbb-button-right-icon\" [svgIcon]=\"svgIcon\"></sbb-icon>\n}\n","import { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbAnchor, SbbButton } from './button';\n\n@NgModule({\n  imports: [SbbCommonModule, SbbIconModule, SbbButton, SbbAnchor],\n  exports: [SbbButton, SbbAnchor],\n})\nexport class SbbButtonModule {}\n"],"names":[],"mappings":"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"}