{"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":["BUTTON_HOST_ATTRIBUTES","INDICATOR_ATTRIBUTES","VALID_ICON_BUTTON_ATTRIBUTES","DEFAULT_INDICATOR_ICONS","_SbbButtonMixinBase","mixinVariant","_elementRef","constructor","SbbButton","_focusMonitor","inject","FocusMonitor","_animationMode","ANIMATION_MODULE_TYPE","optional","_contentObserver","ContentObserver","_hasIconIndicator","_hasHostAttributes","_leftIconVisible","_rightIconVisible","_hasIconButtonClass","_isIconButton","svgIcon","disabled","_iconRefs","QueryList","elementRef","ElementRef","attr","_getHostElement","classList","add","nativeElement","ngAfterContentInit","observe","pipe","startWith","map","textContent","trim","length","subscribe","isIconButton","combineLatest","variant","v","ngAfterViewInit","monitor","ngOnDestroy","stopMonitoring","focus","origin","options","focusVia","attributes","some","attribute","hasAttribute","deps","target","i0","ɵɵFactoryTarget","Component","isStandalone","selector","inputs","booleanAttribute","host","properties","queries","propertyName","predicate","SbbIcon","read","exportAs","usesInheritance","ngImport","template","dependencies","kind","type","SbbIconModule","i1","AsyncPipe","name","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","args","imports","Input","transform","ContentChildren","SbbAnchor","_ngZone","NgZone","tabIndex","runOutsideAngular","addEventListener","_haltDisabledEvents","removeEventListener","event","preventDefault","stopImmediatePropagation","ɵcmp","ɵɵngDeclareComponent","minVersion","version","SbbButtonModule","NgModule","SbbCommonModule","exports","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}