{"version":3,"file":"tag.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tag.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tag.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tag-link.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tag-link.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tags.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tags.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/tag/tag.module.ts"],"sourcesContent":["// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport {\n  afterNextRender,\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  inject,\n  Injector,\n  Input,\n  NgZone,\n  numberAttribute,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SbbBadge } from '@sbb-esta/angular/badge';\nimport { SbbCheckbox } from '@sbb-esta/angular/checkbox';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'sbb-tag',\n  exportAs: 'sbbTag',\n  templateUrl: './tag.html',\n  styleUrls: ['./tag.css'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SbbTag),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  inputs: ['tabIndex'],\n  host: {\n    class: 'sbb-tag',\n    '[class.sbb-tag-disabled]': 'disabled',\n    '[class.sbb-tag-active]': 'active',\n  },\n  imports: [SbbBadge, SbbIcon],\n})\nexport class SbbTag extends SbbCheckbox implements OnDestroy {\n  private _zone = inject(NgZone);\n  /** Amount displayed in badge */\n  @Input({ transform: numberAttribute })\n  get amount(): number {\n    return this._amount;\n  }\n  set amount(value: number) {\n    this._amount = value;\n    this._badgeDescriptionFallback = $localize`:Aria label for amount of results displayed in badge pill@@sbbTagBadgePillAmountOfResults:${this.amount} results available`;\n\n    this._amountChange.next(this._amount);\n  }\n  private _amount!: number;\n\n  /** Description of the badge (amount) */\n  @Input('sbbBadgeDescription')\n  badgeDescription!: string;\n  _badgeDescriptionFallback!: string;\n\n  /**\n   * The indicator icon, which will be shown before the text.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"circle-information-small\"\n   */\n  @Input() svgIcon!: string;\n\n  /** Emits the current amount when the amount changes */\n  readonly _amountChange = new Subject<number>();\n\n  /** Emits when values are set from outside */\n  readonly _valueChange = new Subject<any>();\n\n  /** Refers if a tag is active. */\n  get active() {\n    return this._active || (this.checked && !this.disabled);\n  }\n  set active(value: boolean) {\n    this._active = value;\n    this._changeDetectorRef.markForCheck();\n  }\n  private _active = false;\n\n  private _injector = inject(Injector);\n\n  constructor(...args: unknown[]);\n  constructor() {\n    super();\n\n    afterNextRender(() => this._zone.run(() => this._valueChange.next(this.checked)), {\n      injector: this._injector,\n    });\n  }\n\n  override writeValue(value: any) {\n    super.writeValue(value);\n    this._valueChange.next(value);\n  }\n\n  /** @docs-private internal use only */\n  _setCheckedAndEmit(checked: boolean) {\n    const previousChecked = this.checked;\n    this.checked = checked;\n    if (previousChecked !== this.checked) {\n      this._emitChangeEvent();\n    }\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this._amountChange.complete();\n    this._valueChange.complete();\n  }\n}\n","<label class=\"sbb-tag-base sbb-tag-label\" [attr.for]=\"inputId\">\n  <input\n    #input\n    type=\"checkbox\"\n    class=\"cdk-visually-hidden sbb-transparent-parent-overlay\"\n    [id]=\"inputId\"\n    [attr.name]=\"name\"\n    [attr.value]=\"value\"\n    [required]=\"required\"\n    [checked]=\"checked\"\n    [tabIndex]=\"tabIndex\"\n    [attr.aria-checked]=\"checked\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [disabled]=\"disabled\"\n    (change)=\"_onInteractionEvent($event)\"\n    (click)=\"_onInputClick($event)\"\n  />\n\n  @if (svgIcon) {\n    <sbb-icon [svgIcon]=\"svgIcon\" class=\"sbb-tag-icon\"></sbb-icon>\n  }\n  <!-- Add an invisible span so JAWS can read the label -->\n  <span hidden>&nbsp;</span>\n  <span class=\"sbb-tag-content\"><ng-content></ng-content></span>\n  <span\n    [sbbBadge]=\"amount\"\n    [sbbBadgeDisabled]=\"this.disabled || !this.checked\"\n    sbbBadgePosition=\"after\"\n    [sbbBadgeDescription]=\"badgeDescription || _badgeDescriptionFallback\"\n  ></span>\n</label>\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  numberAttribute,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbBadge } from '@sbb-esta/angular/badge';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\n\n@Component({\n  selector: 'a[sbb-tag-link]',\n  exportAs: 'sbbTagLink',\n  templateUrl: './tag-link.html',\n  styleUrls: ['./tag.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-tag-base sbb-link-reset sbb-tag-link',\n  },\n  imports: [SbbBadge, SbbIcon],\n})\nexport class SbbTagLink {\n  /** Amount displayed in badge */\n  @Input({ transform: numberAttribute })\n  get amount(): number {\n    return this._amount;\n  }\n  set amount(value: number) {\n    this._amount = value;\n    this._badgeDescriptionFallback = $localize`:Aria label for amount of results displayed in badge pill@@sbbTagBadgePillAmountOfResults:${this.amount} results available`;\n  }\n  private _amount!: number;\n\n  /**\n   * The indicator icon, which will be shown before the text.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"circle-information-small\"\n   */\n  @Input() svgIcon!: string;\n\n  /** Description of the badge (amount) */\n  @Input('sbbBadgeDescription')\n  badgeDescription!: string;\n  _badgeDescriptionFallback!: string;\n}\n","@if (svgIcon) {\n  <sbb-icon [svgIcon]=\"svgIcon\" class=\"sbb-tag-icon\"></sbb-icon>\n}\n<span class=\"sbb-tag-content\"><ng-content></ng-content></span>\n<span\n  [sbbBadge]=\"amount\"\n  sbbBadgePosition=\"after\"\n  [sbbBadgeDescription]=\"badgeDescription || _badgeDescriptionFallback\"\n></span>\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport { AsyncPipe } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  forwardRef,\n  Input,\n  numberAttribute,\n  OnDestroy,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { filter, mergeAll, mergeMap, startWith, takeUntil } from 'rxjs/operators';\n\nimport { SbbTag } from './tag';\n\n@Component({\n  selector: 'sbb-tags',\n  exportAs: 'sbbTags',\n  templateUrl: './tags.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-tags',\n  },\n  imports: [SbbTag, AsyncPipe],\n})\nexport class SbbTags implements AfterContentInit, OnDestroy {\n  _labelAllTag: string = $localize`:Label for the 'All' tag@@sbbTagsAll:All`;\n\n  get _labelBadgeDescription(): string {\n    return $localize`:Badge description (total amount) for the 'All' tag@@sbbTagsAllBadgeDescription:A total of ${this.totalAmount} results available`;\n  }\n\n  /**\n   * Total amount visible on the \"All\" tag badge.\n   * If not provided, the total amount is calculated by the sum of all amounts of all tags.\n   */\n  @Input({ transform: numberAttribute })\n  get totalAmount(): number {\n    return this._totalAmount.value;\n  }\n  set totalAmount(totalAmount: number) {\n    this._totalAmountSetAsInput = true;\n    this._totalAmount.next(totalAmount);\n  }\n  _totalAmount: BehaviorSubject<number> = new BehaviorSubject<number>(0);\n\n  private _totalAmountSetAsInput = false;\n\n  /** Refers to the tags contained. */\n  @ContentChildren(forwardRef(() => SbbTag))\n  tags!: QueryList<SbbTag>;\n\n  /** Refers to the tag always displayed in the filter. */\n  @ViewChild('allTag')\n  allTag!: SbbTag;\n\n  private _destroyed = new Subject<void>();\n\n  ngAfterContentInit() {\n    // Listen to tag changes in order to update state of \"All\" tag\n    this.tags.changes\n      .pipe(\n        startWith(this.tags.toArray()),\n        mergeMap((tags) => [\n          ...tags.map((tag: SbbTag) => tag.change),\n          ...tags.map((tag: SbbTag) => tag._valueChange),\n        ]),\n        mergeAll(),\n        takeUntil(this._destroyed),\n      )\n      .subscribe(() => this._setCheckedStateOfAllTag());\n\n    // Listen to tag changes and amount changes of every tag component\n    this.tags.changes\n      .pipe(\n        startWith(this.tags.toArray()),\n        mergeMap((tags: SbbTag[]) =>\n          tags.length === 0\n            ? [of(null)]\n            : tags.map((tag) => tag._amountChange.pipe(startWith(null))),\n        ),\n        mergeAll(),\n        filter(() => !this._totalAmountSetAsInput),\n        takeUntil(this._destroyed),\n      )\n      .subscribe(() => this._calculateTotalAmountOfTags());\n  }\n\n  private _setCheckedStateOfAllTag() {\n    const noTagChecked = this.tags.map((t) => !t.disabled && t.checked).every((v) => !v);\n    if (noTagChecked !== this.allTag.checked) {\n      this.allTag.checked = noTagChecked;\n    }\n  }\n\n  private _calculateTotalAmountOfTags() {\n    const calculatedTotalAmount = this.tags.reduce((current, next) => current + next.amount, 0);\n    this._totalAmount.next(calculatedTotalAmount);\n  }\n\n  _setAllTagChecked() {\n    this.allTag._setCheckedAndEmit(true);\n    this.tags.forEach((t) => t._setCheckedAndEmit(false));\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n    this._totalAmount.complete();\n  }\n}\n","<sbb-tag\n  #allTag\n  (change)=\"_setAllTagChecked()\"\n  [amount]=\"_totalAmount | async\"\n  [sbbBadgeDescription]=\"_labelBadgeDescription\"\n  >{{ _labelAllTag }}</sbb-tag\n>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { SbbBadgeModule } from '@sbb-esta/angular/badge';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\n\nimport { SbbTag } from './tag';\nimport { SbbTagLink } from './tag-link';\nimport { SbbTags } from './tags';\n\n@NgModule({\n  imports: [SbbCommonModule, SbbBadgeModule, SbbTag, SbbTags, SbbTagLink],\n  exports: [SbbTag, SbbTags, SbbTagLink],\n})\nexport class SbbTagModule {}\n"],"names":[],"mappings":"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"}