{"version":3,"file":"toggle.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-animations.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-directives.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-option.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.module.ts"],"sourcesContent":["import {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nconst SBB_TOGGLE_ANIMATION_TRANSITION = '225ms cubic-bezier(0.785, 0.135, 0.15, 0.86)';\n\n/**\n * Animations used by the SBB toggle.\n * @docs-private\n */\nexport const sbbToggleAnimations: {\n  readonly translateHeight: AnimationTriggerMetadata;\n} = {\n  translateHeight: trigger('translateHeight', [\n    state('void', style({ height: 0, paddingTop: 0, paddingBottom: 0 })),\n    state('auto', style({ height: '*', paddingTop: '*', paddingBottom: '*' })),\n    transition('fixed => auto, initial => auto, * => void', [\n      style({ height: '{{currentHeight}}px' }),\n      animate(SBB_TOGGLE_ANIMATION_TRANSITION),\n    ]),\n    transition('void => fixed, void => auto', animate(SBB_TOGGLE_ANIMATION_TRANSITION)),\n    transition('void => initial', animate(0)),\n  ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n  AfterContentInit,\n  afterNextRender,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  inject,\n  Injector,\n  NgZone,\n  OnDestroy,\n  signal,\n  ViewChild,\n  ViewEncapsulation,\n  WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SbbRadioGroup, SBB_RADIO_GROUP } from '@sbb-esta/angular/radio-button';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { sbbToggleAnimations } from './toggle-animations';\nimport { SbbToggleOption } from './toggle-option';\n\n@Component({\n  selector: 'sbb-toggle',\n  templateUrl: './toggle.html',\n  styleUrls: ['./toggle.css'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SbbToggle),\n      multi: true,\n    },\n    { provide: SbbRadioGroup, useExisting: SbbToggle },\n    { provide: SBB_RADIO_GROUP, useExisting: SbbToggle },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-toggle',\n    '[class.sbb-toggle-first-option-selected]': '_radios.first.checked',\n    '[class.sbb-toggle-middle-option-selected]': '!_radios.first.checked && !_radios.last.checked',\n    '[class.sbb-toggle-last-option-selected]': '_radios.last.checked',\n    '[class.sbb-toggle-triple]': '_radios.length === 3',\n    '[class.sbb-toggle-option-has-content]': '!!selected?._details()',\n  },\n  animations: [sbbToggleAnimations.translateHeight],\n  imports: [CdkPortalOutlet],\n})\nexport class SbbToggle\n  extends SbbRadioGroup<SbbToggleOption>\n  implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n  /** The element id for the selected option content. */\n  readonly _contentId = inject(_IdGenerator).getId('sbb-toggle-option-content-');\n\n  private _destroyed = new Subject<void>();\n\n  @ViewChild('toggleOptionContentWrapper') _toggleOptionContentWrapper!: ElementRef;\n  _heightAnimationState: 'void' | 'initial' | 'fixed' | 'auto' = 'initial';\n  _currentOptionContentWrapperHeight: WritableSignal<number> = signal(0);\n\n  private _injector = inject(Injector);\n\n  constructor(\n    private _zone: NgZone,\n    changeDetectorRef: ChangeDetectorRef,\n  ) {\n    super(changeDetectorRef);\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n    // The specification states that if no previous selection has been defined\n    // the first option should be selected.\n    afterNextRender(\n      () => {\n        this._zone.run(() => {\n          if (this._radios.toArray().every((r) => this.value !== r.value)) {\n            this._radios.first._onInputChange();\n          }\n        });\n      },\n      { injector: this._injector },\n    );\n\n    this.change.pipe(startWith(null!), takeUntil(this._destroyed)).subscribe(() => {\n      // Animate toggle height by using current height as start height of transition\n      if (this._toggleOptionContentWrapper) {\n        this._currentOptionContentWrapperHeight.set(\n          this._toggleOptionContentWrapper.nativeElement.offsetHeight,\n        );\n        this._heightAnimationState = 'auto';\n      }\n      Promise.resolve().then(() => {\n        this._changeDetector.markForCheck();\n      });\n    });\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  _onHeightAnimationDone(event: AnimationEvent) {\n    if (event.toState === 'auto') {\n      this._heightAnimationState = 'fixed';\n    }\n  }\n}\n","<div class=\"sbb-toggle-label-wrapper\">\n  <ng-content select=\"sbb-toggle-option, ng-container\"></ng-content>\n</div>\n\n<section class=\"sbb-toggle-option-content\" [id]=\"_contentId\">\n  @if (selected?._details()) {\n    <div\n      class=\"sbb-toggle-option-content-wrapper sbb-scrollbar\"\n      #toggleOptionContentWrapper\n      [@translateHeight]=\"{\n        value: _heightAnimationState,\n        params: { currentHeight: _currentOptionContentWrapperHeight() },\n      }\"\n      (@translateHeight.done)=\"_onHeightAnimationDone($event)\"\n    >\n      <ng-template\n        [cdkPortalOutlet]=\"selected!._details() ? selected!._content() : null\"\n      ></ng-template>\n    </div>\n  }\n</section>\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'sbb-toggle-icon',\n})\nexport class SbbToggleIcon {}\n\n@Directive({\n  selector: 'sbb-toggle-label',\n})\nexport class SbbToggleLabel {}\n\n@Directive({\n  selector: 'sbb-toggle-subtitle',\n})\nexport class SbbToggleSubtitle {}\n\n@Directive({\n  selector: 'sbb-toggle-details',\n})\nexport class SbbToggleDetails {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CdkPortal } from '@angular/cdk/portal';\nimport {\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  contentChild,\n  ContentChild,\n  ElementRef,\n  Inject,\n  Input,\n  Signal,\n  viewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport {\n  SbbRadioButton,\n  SBB_RADIO_BUTTON,\n  SBB_RADIO_GROUP,\n  _SbbRadioButtonBase,\n} from '@sbb-esta/angular/radio-button';\n\nimport type { SbbToggle } from './toggle';\nimport {\n  SbbToggleDetails,\n  SbbToggleIcon,\n  SbbToggleLabel,\n  SbbToggleSubtitle,\n} from './toggle-directives';\n\n@Component({\n  selector: 'sbb-toggle-option',\n  templateUrl: './toggle-option.html',\n  inputs: ['tabIndex'],\n  providers: [\n    { provide: SBB_RADIO_BUTTON, useExisting: SbbRadioButton },\n    { provide: SbbRadioButton, useExisting: SbbToggleOption },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-toggle-option',\n    '[class.sbb-toggle-option-selected]': 'checked',\n    '[class.sbb-toggle-option-has-icon]': '_hasIcon()',\n    // Needs to be removed since it causes some a11y issues (see angular/components#21266).\n    '[attr.tabindex]': 'null',\n    '[attr.id]': 'id',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n    // Note: under normal conditions focus shouldn't land on this element, however it may be\n    // programmatically set, for example inside of a focus trap, in this case we want to forward\n    // the focus to the native element.\n    '(focus)': '_inputElement.nativeElement.focus()',\n  },\n  imports: [SbbIcon, CdkPortal],\n})\nexport class SbbToggleOption extends _SbbRadioButtonBase {\n  /** Label of a sbb-toggle-option. */\n  @Input() label?: string;\n  /** Additional information for this option. */\n  @Input() subtitle?: string;\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleLabel) _labelNonStatic!: SbbToggleLabel;\n  @ContentChild(SbbToggleLabel, { static: true }) _labelStatic!: SbbToggleLabel;\n  get _label() {\n    // TODO: we need this workaround in order to support both Ivy and ViewEngine.\n    // We should clean this up once Ivy is the default renderer.\n    return this._labelNonStatic || this._labelStatic;\n  }\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleSubtitle) _subtitleNonStatic!: SbbToggleSubtitle;\n  @ContentChild(SbbToggleSubtitle, { static: true }) _subtitleStatic!: SbbToggleSubtitle;\n  get _subtitle() {\n    return this._subtitleNonStatic || this._subtitleStatic;\n  }\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleIcon) _iconNonStatic!: SbbToggleIcon;\n  @ContentChild(SbbToggleIcon, { static: true }) _iconStatic!: SbbToggleIcon;\n  get _icon() {\n    return this._iconNonStatic || this._iconStatic;\n  }\n\n  /**\n   * The indicator icon, which will be shown on the left-hand side of the toggle option.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"plus-small\"\n   */\n  @Input() svgIcon!: string;\n\n  /** The toggle content projection label. */\n  _details: Signal<SbbToggleDetails | undefined> = contentChild(SbbToggleDetails);\n  _content: Signal<CdkPortal | undefined> = viewChild(CdkPortal);\n\n  constructor(\n    @Inject(SBB_RADIO_GROUP) readonly toggle: SbbToggle,\n    elementRef: ElementRef,\n    changeDetector: ChangeDetectorRef,\n    focusMonitor: FocusMonitor,\n    radioDispatcher: UniqueSelectionDispatcher,\n    @Attribute('tabindex') tabIndex?: string,\n  ) {\n    super(toggle, elementRef, changeDetector, focusMonitor, radioDispatcher, tabIndex);\n  }\n\n  /** Whether this toggle option has an icon. */\n  _hasIcon() {\n    return !!(this._icon || this.svgIcon);\n  }\n}\n","<label [attr.for]=\"inputId\" class=\"sbb-toggle-option-button\">\n  <input\n    #input\n    type=\"radio\"\n    class=\"cdk-visually-hidden sbb-transparent-parent-overlay\"\n    [id]=\"inputId\"\n    [checked]=\"checked\"\n    [disabled]=\"disabled\"\n    [tabIndex]=\"tabIndex\"\n    [attr.name]=\"name\"\n    [attr.value]=\"value\"\n    [required]=\"required\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [attr.aria-controls]=\"checked && _details() ? toggle._contentId : null\"\n    (change)=\"_onInputChange($event)\"\n    (click)=\"_onInputClick($event)\"\n  />\n  <span class=\"sbb-toggle-option-button-label-wrapper\">\n    @if (_hasIcon()) {\n      <span role=\"presentation\" class=\"sbb-toggle-option-button-icon sbb-icon-scaled\">\n        @switch (!!_icon) {\n          @case (true) {\n            <ng-content select=\"sbb-toggle-icon\"></ng-content>\n          }\n          @default {\n            <span>\n              <sbb-icon [svgIcon]=\"svgIcon\"></sbb-icon>\n            </span>\n          }\n        }\n      </span>\n    }\n    <span class=\"sbb-toggle-option-button-label\">\n      @switch (!!_label) {\n        @case (true) {\n          <ng-content select=\"sbb-toggle-label\"></ng-content>\n        }\n        @default {\n          <ng-container>{{ label }}</ng-container>\n        }\n      }\n    </span>\n    @if (subtitle || _subtitle) {\n      <span class=\"sbb-toggle-option-button-subtitle\">\n        <span class=\"cdk-visually-hidden\">&nbsp;</span>\n        @switch (!!_subtitle) {\n          @case (true) {\n            <ng-content select=\"sbb-toggle-subtitle\"></ng-content>\n          }\n          @default {\n            {{ subtitle }}\n          }\n        }\n      </span>\n    }\n  </span>\n</label>\n\n<ng-template cdkPortal>\n  <ng-content select=\"sbb-toggle-details\"></ng-content>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbToggle } from './toggle';\nimport {\n  SbbToggleDetails,\n  SbbToggleIcon,\n  SbbToggleLabel,\n  SbbToggleSubtitle,\n} from './toggle-directives';\nimport { SbbToggleOption } from './toggle-option';\n\n@NgModule({\n  imports: [\n    PortalModule,\n    SbbCommonModule,\n    SbbIconModule,\n    SbbToggle,\n    SbbToggleOption,\n    SbbToggleIcon,\n    SbbToggleLabel,\n    SbbToggleSubtitle,\n    SbbToggleDetails,\n  ],\n  exports: [\n    SbbToggle,\n    SbbToggleOption,\n    SbbToggleIcon,\n    SbbToggleLabel,\n    SbbToggleSubtitle,\n    SbbToggleDetails,\n  ],\n})\nexport class SbbToggleModule {}\n"],"names":[],"mappings":"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"}