{"version":3,"file":"sidebar.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar-base.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/icon-sidebar/icon-sidebar.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/icon-sidebar/icon-sidebar.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/icon-sidebar/icon-sidebar-container.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/icon-sidebar/icon-sidebar-item.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/icon-sidebar/icon-sidebar-item.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar/sidebar.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar/sidebar.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar/sidebar-container.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar/sidebar-link.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar/sidebar-link.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/sidebar/sidebar.module.ts"],"sourcesContent":["import { BreakpointObserver } from '@angular/cdk/layout';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  QueryList,\n} from '@angular/core';\nimport { Breakpoints } from '@sbb-esta/angular/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, takeUntil } from 'rxjs/operators';\n\n/**\n * Throws an exception if more than one SbbSidebarBase is provided.\n * @docs-private\n */\nexport function throwSbbDuplicatedSidebarError(position: string) {\n  throw Error(`A sidebar was already declared for 'position=\"${position}\"'`);\n}\n\n/**\n * Used to provide a sidebar container to a sidebar while avoiding circular references.\n * @docs-private\n */\nexport const SBB_SIDEBAR_CONTAINER = new InjectionToken('SBB_SIDEBAR_CONTAINER');\n\n/** @docs-private */\nexport interface SbbSidebarMobileCapableContainer {\n  _mobile: boolean;\n}\n\n@Directive()\nexport abstract class SbbSidebarContentBase extends CdkScrollable {\n  _elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n\n/** This component corresponds to a sidebar. */\n@Directive({\n  host: {\n    '[class.sbb-sidebar-end]': 'position === \"end\"',\n  },\n})\nexport abstract class SbbSidebarBase implements AfterViewInit, OnDestroy {\n  abstract _container: SbbSidebarMobileCapableContainer;\n  protected _elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n  protected _doc: Document = inject(DOCUMENT);\n\n  abstract _mobileChanged(mobile: boolean): void;\n\n  /** Whether the view of the component has been attached. */\n  private _isAttached: boolean = false;\n\n  /** Anchor node used to restore the sidebar to its initial position. */\n  private _anchor: Comment | null = null;\n\n  /** The side that the sidebar is attached to. */\n  @Input()\n  set position(value: 'start' | 'end') {\n    // Make sure we have a valid value.\n    value = value === 'end' ? 'end' : 'start';\n    if (value !== this._position) {\n      // Static inputs in Ivy are set before the element is in the DOM.\n      if (this._isAttached) {\n        this._updatePositionInParent(value);\n      }\n\n      this._position = value;\n      this.onPositionChanged.emit();\n    }\n  }\n  get position() {\n    return this._position;\n  }\n  _position: 'start' | 'end' = 'start';\n\n  /** Event emitted when the sidebar's position changes. */\n  @Output('positionChanged') readonly onPositionChanged = new EventEmitter<void>();\n\n  protected constructor(...args: unknown[]);\n  protected constructor() {}\n\n  /*\n   * Updates the position of the sidebar in the DOM. We need to move the element around ourselves\n   * when it's in the `end` position so that it comes after the content and the visual order\n   * matches the tab order. We also need to be able to move it back to `start` if the sidebar\n   * started off as `end` and was changed to `start`.\n   */\n  protected _updatePositionInParent(newPosition: 'start' | 'end'): void {\n    // Don't move the DOM node around on the server, because it can throw off hydration.\n    const element = this._elementRef.nativeElement;\n    const parent = element.parentNode!;\n\n    if (newPosition === 'end') {\n      if (!this._anchor) {\n        this._anchor = this._doc.createComment('sbb-sidebar-anchor')!;\n        parent.insertBefore(this._anchor!, element);\n      }\n\n      parent.appendChild(element);\n    } else if (this._anchor) {\n      this._anchor.parentNode!.insertBefore(element, this._anchor);\n    }\n  }\n\n  ngAfterViewInit() {\n    this._isAttached = true;\n\n    // Only update the DOM position when the sidenav is positioned at\n    // the end since we project the sidenav before the content by default.\n    if (this._position === 'end') {\n      this._updatePositionInParent('end');\n    }\n  }\n\n  ngOnDestroy() {\n    this._anchor?.remove();\n    this._anchor = null;\n  }\n}\n\n/**\n * This is the parent component to one or two `<sbb-sidebar>`s that validates the state internally\n * and coordinates the backdrop and content styling.\n */\n@Directive()\nexport abstract class SbbSidebarContainerBase<T extends SbbSidebarBase>\n  implements AfterContentInit, OnDestroy, SbbSidebarMobileCapableContainer\n{\n  protected _ngZone: NgZone = inject(NgZone);\n  protected _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n  protected _breakpointObserver: BreakpointObserver = inject(BreakpointObserver);\n\n  _mobile: boolean = false;\n\n  /**\n   * The sidebar child at the start or end position.\n   * @deprecated Use `start` or `end` instead.\n   * @breaking-change 19.0.0\n   */\n  get sidebar(): T | null {\n    return this._start || this._end;\n  }\n\n  /** The sidebar child with the `start` position. */\n  get start(): T | null {\n    return this._start;\n  }\n\n  /** The sidebar child with the `end` position. */\n  get end(): T | null {\n    return this._end;\n  }\n\n  /** Reference to the CdkScrollable instance that wraps the scrollable content. */\n  get scrollable(): CdkScrollable {\n    return this._userContent || this._content;\n  }\n\n  /** All sidebars, also nested sidebars included **/\n  _allSidebars!: QueryList<T>;\n\n  /** Sidebars that belong to this container. */\n  _sidebars: QueryList<T> = new QueryList<T>();\n\n  _content!: SbbSidebarContentBase;\n  _userContent!: SbbSidebarContentBase;\n\n  /** The sidebar at the start/end position. */\n  protected _start: T | null = null;\n  protected _end: T | null = null;\n\n  /** Emits when the component is destroyed. */\n  protected readonly _destroyed: Subject<void> = new Subject<void>();\n\n  protected constructor(...args: unknown[]);\n  protected constructor() {}\n\n  ngAfterContentInit() {\n    this._allSidebars.changes\n      .pipe(startWith(this._allSidebars), takeUntil(this._destroyed))\n      .subscribe((allSidebars: QueryList<T>) => {\n        this._sidebars.reset(allSidebars.filter((sidebar) => sidebar._container === this));\n        this._sidebars.notifyOnChanges();\n      });\n  }\n\n  protected _watchBreakpointObserver() {\n    this._breakpointObserver\n      .observe(Breakpoints.Mobile)\n      .pipe(\n        map((r) => r.matches),\n        distinctUntilChanged(),\n        takeUntil(this._destroyed),\n      )\n      .subscribe((newMobile) => this._updateMobileState(newMobile));\n  }\n\n  private _updateMobileState(newMobile: boolean) {\n    const currentMobile = this._mobile;\n    this._mobile = newMobile;\n\n    if ((!this._start && !this._end) || currentMobile === newMobile) {\n      return;\n    }\n\n    this._start?._mobileChanged(newMobile);\n    this._end?._mobileChanged(newMobile);\n    this._changeDetectorRef.markForCheck();\n  }\n\n  ngOnDestroy() {\n    this._sidebars.destroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Validate the state of the sidebar children components. */\n  protected _validateSidebars() {\n    this._start = this._end = null;\n\n    // Ensure that we have at most one start and one end sidebar.\n    this._sidebars.forEach((sidebar) => {\n      if (sidebar.position === 'end') {\n        if (this._end != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n          throwSbbDuplicatedSidebarError('end');\n        }\n        this._end = sidebar;\n      } else {\n        if (this._start != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n          throwSbbDuplicatedSidebarError('start');\n        }\n        this._start = sidebar;\n      }\n    });\n  }\n}\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  QueryList,\n  signal,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { startWith } from 'rxjs/operators';\n\nimport {\n  SbbSidebarBase,\n  SbbSidebarContainerBase,\n  SbbSidebarContentBase,\n  SbbSidebarMobileCapableContainer,\n  SBB_SIDEBAR_CONTAINER,\n} from '../sidebar-base';\n\nexport function throwSbbDuplicatedIconSidebarError() {\n  throw Error(\n    `Only one icon-sidebar as direct descendant of sidebar container at once is allowed'`,\n  );\n}\n\n@Component({\n  selector: 'sbb-icon-sidebar-content',\n  template: '<ng-content></ng-content>',\n  host: {\n    class: 'sbb-icon-sidebar-content sbb-scrollbar',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: CdkScrollable,\n      useExisting: SbbIconSidebarContent,\n    },\n  ],\n})\nexport class SbbIconSidebarContent extends SbbSidebarContentBase {}\n\n@Component({\n  selector: 'sbb-icon-sidebar',\n  exportAs: 'sbbIconSidebar',\n  templateUrl: './icon-sidebar.html',\n  host: {\n    class: 'sbb-icon-sidebar',\n    tabIndex: '-1',\n    // must prevent the browser from aligning text based on value\n    '[attr.align]': 'null',\n    role: 'navigation',\n    '[class.sbb-icon-sidebar-expanded]': 'expanded && !_container._mobile',\n    '[class.sbb-icon-sidebar-collapsed]': '!expanded && !_container._mobile',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CdkScrollable, SbbIcon],\n})\nexport class SbbIconSidebar extends SbbSidebarBase {\n  private _changeDetectorRef = inject(ChangeDetectorRef);\n\n  _container: SbbIconSidebarContainer = inject<SbbIconSidebarContainer>(SBB_SIDEBAR_CONTAINER);\n\n  _labelCollapse: string = $localize`:Label to 'collapse' icon sidebar@@sbbSidebarCollapse:Collapse`;\n\n  _labelExpand: string = $localize`:Label to 'expand' icon sidebar@@sbbSidebarExpand:Expand`;\n\n  /** Whether the sidebar is expanded. */\n  @Input({ transform: booleanAttribute })\n  get expanded(): boolean {\n    return this._expanded();\n  }\n  set expanded(value: boolean) {\n    this.toggleExpanded(value);\n  }\n  private _expanded = signal(false);\n\n  /** Event emitted when the icon sidebar expanded state is changed. */\n  @Output() readonly expandedChange: EventEmitter<boolean> =\n    // Note this has to be async in order to avoid some issues with two-bindings (see #8872).\n    new EventEmitter<boolean>(/* isAsync */ true);\n\n  constructor(...args: unknown[]);\n  constructor() {\n    super();\n  }\n\n  toggleExpanded(expanded: boolean = !this._expanded()) {\n    this._expanded.set(expanded);\n    this.expandedChange.emit(this.expanded);\n  }\n\n  _mobileChanged(mobile: boolean): void {\n    this._elementRef.nativeElement.querySelector('.sbb-icon-sidebar-inner-container')!.scrollLeft =\n      0;\n\n    this._updatePositionInParent(this.position);\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /**\n   * On mobile devices, the position of the sidebar is always 'start'.\n   * @docs-private\n   */\n  override _updatePositionInParent(position: 'start' | 'end') {\n    if (this._container._mobile) {\n      super._updatePositionInParent('start');\n    } else {\n      super._updatePositionInParent(position);\n    }\n  }\n}\n\n@Component({\n  selector: 'sbb-icon-sidebar-container',\n  exportAs: 'sbbIconSidebarContainer',\n  templateUrl: './icon-sidebar-container.html',\n  styleUrls: ['./icon-sidebar.css'],\n  host: {\n    class: 'sbb-icon-sidebar-container',\n    '[class.sbb-icon-sidebar-container-mobile]': '_mobile',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: SBB_SIDEBAR_CONTAINER,\n      useExisting: SbbIconSidebarContainer,\n    },\n  ],\n  imports: [SbbIconSidebarContent],\n})\nexport class SbbIconSidebarContainer\n  extends SbbSidebarContainerBase<SbbIconSidebar>\n  implements AfterContentInit, SbbSidebarMobileCapableContainer\n{\n  /** All sidebars in the container. Includes sidebars from inside nested containers. */\n  @ContentChildren(SbbIconSidebar, {\n    // We need to use `descendants: true`, because Ivy will no longer match\n    // indirect descendants if it's left as false.\n    descendants: true,\n  })\n  // We need an initializer here to avoid a TS error.\n  override _allSidebars: QueryList<SbbIconSidebar> = undefined!;\n  @ContentChild(SbbIconSidebarContent) override _content: SbbIconSidebarContent = undefined!;\n  @ViewChild(SbbIconSidebarContent) override _userContent: SbbIconSidebarContent = undefined!;\n\n  constructor(...args: unknown[]);\n  constructor() {\n    super();\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    this._sidebars.changes.pipe(startWith(null)).subscribe(() => {\n      this._validateSidebars();\n    });\n\n    // Has to be called at last (needs sidebar to be set)\n    this._watchBreakpointObserver();\n  }\n\n  /** Validate the state of the icon sidebar children components. */\n  override _validateSidebars() {\n    super._validateSidebars();\n\n    if (this._sidebars.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throwSbbDuplicatedIconSidebarError();\n    }\n  }\n}\n","<div class=\"sbb-icon-sidebar-inner-container sbb-scrollbar sbb-scrollbar-opaque\" cdkScrollable>\n  <div class=\"sbb-icon-sidebar-links\">\n    <ng-content select=\"a[sbbIconSidebarItem], hr\"></ng-content>\n  </div>\n\n  @if (!_container._mobile) {\n    <button\n      class=\"sbb-icon-sidebar-item sbb-button-reset-frameless sbb-icon-sidebar-collapse-expand-button\"\n      (click)=\"toggleExpanded()\"\n      type=\"button\"\n    >\n      <span class=\"sbb-icon-sidebar-item-icon sbb-icon-scaled\">\n        <sbb-icon svgIcon=\"chevron-small-left-circle-small\"></sbb-icon>\n      </span>\n      <span [attr.aria-hidden]=\"!expanded\" class=\"sbb-icon-sidebar-item-label\">{{\n        _labelCollapse\n      }}</span>\n      <span [attr.aria-hidden]=\"expanded\" class=\"sbb-icon-sidebar-item-label cdk-visually-hidden\">{{\n        _labelExpand\n      }}</span>\n    </button>\n  }\n</div>\n","<ng-content select=\"sbb-icon-sidebar\"></ng-content>\n\n<ng-content select=\"sbb-icon-sidebar-content\"> </ng-content>\n@if (!_content) {\n  <sbb-icon-sidebar-content>\n    <ng-content></ng-content>\n  </sbb-icon-sidebar-content>\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'a[sbbIconSidebarItem]',\n  templateUrl: './icon-sidebar-item.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'sbb-icon-sidebar-item sbb-icon-scaled',\n  },\n})\nexport class SbbIconSidebarItem {\n  /** Label of the icon */\n  @Input()\n  label!: string;\n}\n","<span class=\"sbb-icon-sidebar-item-icon\">\n  <ng-content select=\"sbb-icon\"></ng-content>\n</span>\n<span class=\"sbb-icon-sidebar-item-label\"> {{ label }} </span>\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport {\n  ConfigurableFocusTrapFactory,\n  FocusMonitor,\n  FocusOrigin,\n  FocusTrap,\n} from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Platform } from '@angular/cdk/platform';\nimport { CdkScrollable, ViewportRuler } from '@angular/cdk/scrolling';\nimport { AsyncPipe } from '@angular/common';\nimport {\n  AfterContentInit,\n  afterNextRender,\n  ANIMATION_MODULE_TYPE,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Injector,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  signal,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { BehaviorSubject, combineLatest, fromEvent, merge, NEVER, Observable, Subject } from 'rxjs';\nimport { filter, map, mapTo, startWith, take, takeUntil } from 'rxjs/operators';\n\nimport {\n  SbbSidebarBase,\n  SbbSidebarContainerBase,\n  SbbSidebarContentBase,\n  SbbSidebarMobileCapableContainer,\n  SBB_SIDEBAR_CONTAINER,\n} from '../sidebar-base';\n\n/** Result of the toggle promise that indicates the state of the sidebar. */\nexport type SbbSidebarToggleResult = 'open' | 'close';\n\n/** Sidebar display modes. */\nexport type SbbSidebarMode = 'over' | 'side';\n\n@Component({\n  selector: 'sbb-sidebar-content',\n  template: '<ng-content></ng-content>',\n  host: {\n    class: 'sbb-sidebar-content sbb-scrollbar',\n    '[style.margin-left.px]': '_container._contentMargins.left',\n    '[style.margin-right.px]': '_container._contentMargins.right',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: CdkScrollable,\n      useExisting: SbbSidebarContent,\n    },\n  ],\n})\nexport class SbbSidebarContent extends SbbSidebarContentBase implements AfterContentInit {\n  _container: SbbSidebarContainer = inject(SbbSidebarContainer);\n  _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n  ngAfterContentInit() {\n    this._container._contentMarginChanges.subscribe(() => {\n      this._changeDetectorRef.markForCheck();\n    });\n  }\n}\n\n@Component({\n  selector: 'sbb-sidebar',\n  exportAs: 'sbbSidebar',\n  templateUrl: './sidebar.html',\n  host: {\n    class: 'sbb-sidebar',\n    tabIndex: '-1',\n    // must prevent the browser from aligning text based on value\n    '[attr.align]': 'null',\n    '[class.sbb-sidebar-over]': 'mode === \"over\"',\n    '[class.sbb-sidebar-mobile]': '_mobile',\n    '[class.sbb-sidebar-side]': 'mode === \"side\"',\n    '[class.sbb-sidebar-opened]': 'opened',\n    '[class.sbb-sidebar-collapsible]': 'collapsible',\n    '[style.visibility]': '(!_container && !opened) ? \"hidden\" : null',\n    // The sidebar container should not be focused on when used in side mode.\n    // Updates tabIndex to default to null if in side mode.\n    '[attr.tabIndex]': '(mode !== \"side\") ? \"-1\" : null',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CdkScrollable, SbbIcon],\n})\nexport class SbbSidebar extends SbbSidebarBase implements AfterContentInit, OnDestroy {\n  private _focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n  private _focusMonitor = inject(FocusMonitor);\n  private _ngZone = inject(NgZone);\n  private _renderer = inject(Renderer2);\n  override _container: SbbSidebarContainer = inject<SbbSidebarContainer>(SBB_SIDEBAR_CONTAINER);\n  private _router = inject(Router, { optional: true });\n\n  _labelCloseSidebar: string = $localize`:Button label to close the sidebar@@sbbSidebarCloseSidebar:Close Sidebar`;\n\n  /** Whether the sidebar is in mobile mode. */\n  _mobile: boolean = false;\n\n  /** Whether the sidebar is collapsible. */\n  @Input({ transform: booleanAttribute })\n  set collapsible(value: boolean) {\n    this._collapsible = value;\n    this.mode = value || this._mobile ? 'over' : 'side';\n\n    if (!this._collapsible && !this.opened) {\n      this.open();\n    }\n  }\n  get collapsible(): boolean {\n    return this._collapsible;\n  }\n  _collapsible: boolean = false;\n\n  /** Optional title to display in the sidebar header next to the close icon if sidebar is collapsible. */\n  @Input() collapsibleTitle?: string | null;\n\n  /** Mode of the sidebar; one of 'over', or 'side'. */\n  get mode(): SbbSidebarMode {\n    return this._mode;\n  }\n  set mode(value: SbbSidebarMode) {\n    this._mode = value;\n    this._updateFocusTrapState();\n    this._modeChanged.next();\n  }\n\n  /**\n   * Whether the collapsible sidebar is opened.\n   */\n  @Input()\n  get opened(): boolean {\n    return this._opened();\n  }\n  set opened(value: BooleanInput) {\n    this._openedViaInput = true;\n    this.toggle(coerceBooleanProperty(value));\n  }\n  private _opened = signal(true);\n\n  /**\n   * Whether the `opened` state was set via the @Input.\n   * If true, the sidebar will not be toggled automatically if the mobile state changes.\n   */\n  private _openedViaInput = false;\n\n  /** Emits whenever the sidebar has started animating. */\n  readonly _animationStarted = new Subject<TransitionEvent | void>();\n\n  /** Emits whenever the sidebar is done animating. */\n  readonly _animationEnd = new Subject<TransitionEvent | void>();\n\n  /**\n   * Name of the svg icon for the trigger on mobile devices.\n   */\n  @Input() set triggerSvgIcon(value: string) {\n    this._triggerSvgIconSubject.next(value);\n  }\n  get triggerSvgIcon(): string | null {\n    return this._triggerSvgIconSubject.value;\n  }\n  private _triggerSvgIconSubject = new BehaviorSubject<string | null>(null);\n\n  /** Event emitted when the sidebar has started opening. */\n  @Output()\n  readonly openedStart: Observable<void> = this._animationStarted.pipe(\n    filter(() => this.opened),\n    mapTo(undefined),\n  );\n\n  /** Event emitted when the sidebar has started closing. */\n  @Output()\n  readonly closedStart: Observable<void> = this._animationStarted.pipe(\n    filter(() => !this.opened),\n    mapTo(undefined),\n  );\n\n  private _focusTrap!: FocusTrap;\n  private _elementFocusedBeforeSidebarWasOpened: HTMLElement | null = null;\n  private _eventCleanups!: (() => void)[];\n\n  private _mode: SbbSidebarMode = 'side';\n\n  /** How the sidebar was opened (keypress, mouse click etc.) */\n  private _openedVia: FocusOrigin | null = null;\n\n  /** Event emitted when the sidebar open state is changed. */\n  @Output() readonly openedChange: EventEmitter<boolean> =\n    // Note this has to be async in order to avoid some issues with two-bindings (see #8872).\n    new EventEmitter<boolean>(/* isAsync */ true);\n\n  /** Event emitted when the sidebar has been opened. */\n  // tslint:disable-next-line:no-output-rename\n  @Output('opened')\n  readonly _openedStream: Observable<void> = this.openedChange.pipe(\n    filter((o) => o),\n    mapTo(undefined),\n  );\n\n  /** Event emitted when the sidebar has been closed. */\n  // tslint:disable-next-line:no-output-rename\n  @Output('closed')\n  readonly _closedStream: Observable<void> = this.openedChange.pipe(\n    filter((o) => !o),\n    mapTo(undefined),\n  );\n\n  /** Emits when the component is destroyed. */\n  private readonly _destroyed = new Subject<void>();\n\n  /**\n   * An observable that emits when the sidebar mode changes. This is used by the sidebar container to\n   * to know when to when the mode changes so it can adapt the margins on the content.\n   */\n  readonly _modeChanged = new Subject<void>();\n\n  readonly _svgIcon: Observable<string> = combineLatest([\n    this._triggerSvgIconSubject,\n    this.onPositionChanged.pipe(startWith(null)),\n  ]).pipe(\n    takeUntil(this._destroyed),\n    map(([icon]) =>\n      icon ? icon : this._position === 'start' ? 'hamburger-menu-small' : 'controls-small',\n    ),\n  );\n\n  private _changeDetectorRef = inject(ChangeDetectorRef);\n\n  private _injector = inject(Injector);\n\n  constructor(...args: unknown[]);\n  constructor() {\n    super();\n\n    this.openedChange.pipe(takeUntil(this._destroyed)).subscribe((opened: boolean) => {\n      if (opened) {\n        if (this._doc) {\n          this._elementFocusedBeforeSidebarWasOpened = this._doc.activeElement as HTMLElement;\n        }\n        this._takeFocus();\n      } else if (this._isFocusWithinSidebar()) {\n        this._restoreFocus(this._openedVia || 'program');\n      }\n    });\n\n    this.onPositionChanged.pipe(takeUntil(this._destroyed));\n\n    /**\n     * Listen to `keydown` events outside the zone so that change detection is not run every\n     * time a key is pressed. Instead we re-enter the zone only if the `ESC` key is pressed.\n     * Additionally listen to router navigation start events to close the sidebar.\n     */\n    this._ngZone.runOutsideAngular(() => {\n      const element = this._elementRef.nativeElement;\n      merge(\n        (fromEvent(element, 'keydown') as Observable<KeyboardEvent>).pipe(\n          filter((event) => {\n            return event.keyCode === ESCAPE && !hasModifierKey(event);\n          }),\n        ),\n        this._router\n          ? this._router.events.pipe(\n              filter((e) => e instanceof NavigationStart),\n              mapTo(null),\n            )\n          : NEVER,\n      )\n        .pipe(takeUntil(this._destroyed))\n        .subscribe((event: KeyboardEvent | null) =>\n          this._ngZone.run(() => {\n            if (this.mode === 'side') {\n              return;\n            }\n            this.close();\n            if (!event) {\n              return;\n            }\n            event.stopPropagation();\n            event.preventDefault();\n          }),\n        );\n\n      this._eventCleanups = [\n        this._renderer.listen(element, 'transitionrun', this._handleTransitionEvent),\n        this._renderer.listen(element, 'transitionend', this._handleTransitionEvent),\n        this._renderer.listen(element, 'transitioncancel', this._handleTransitionEvent),\n      ];\n    });\n\n    this._animationEnd.subscribe(() => {\n      this.openedChange.emit(this.opened);\n    });\n  }\n\n  /**\n   * Moves focus into the sidebar. Note that this works even if\n   * the focus trap is disabled in `side` mode.\n   */\n  private _takeFocus() {\n    if (this.mode === 'side' || !this._focusTrap) {\n      return;\n    }\n\n    const element = this._elementRef.nativeElement;\n\n    afterNextRender(\n      () => {\n        const hasMovedFocus = this._focusTrap!.focusInitialElement();\n        if (!hasMovedFocus && typeof element.focus === 'function') {\n          element.focus();\n        }\n      },\n      { injector: this._injector },\n    );\n  }\n\n  /**\n   * Restores focus to the element that was originally focused when the sidebar opened.\n   * If no element was focused at that time, the focus will be restored to the sidebar.\n   */\n  private _restoreFocus(focusOrigin: Exclude<FocusOrigin, null>) {\n    if (this.mode === 'side') {\n      return;\n    }\n\n    if (this._elementFocusedBeforeSidebarWasOpened) {\n      this._focusMonitor.focusVia(this._elementFocusedBeforeSidebarWasOpened, focusOrigin);\n    } else {\n      this._elementRef.nativeElement.blur();\n    }\n\n    this._elementFocusedBeforeSidebarWasOpened = null;\n  }\n\n  /** Whether focus is currently within the sidebar. */\n  private _isFocusWithinSidebar(): boolean {\n    const activeEl = this._doc?.activeElement;\n    return !!activeEl && this._elementRef.nativeElement.contains(activeEl);\n  }\n\n  ngAfterContentInit() {\n    this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n    this._updateFocusTrapState();\n  }\n\n  override ngOnDestroy() {\n    this._eventCleanups.forEach((cleanup) => cleanup());\n    super.ngOnDestroy();\n    if (this._focusTrap) {\n      this._focusTrap.destroy();\n    }\n\n    this._animationStarted.complete();\n    this._animationEnd.complete();\n    this._modeChanged.complete();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /**\n   * Open the sidebar.\n   * @param openedVia Whether the sidebar was opened by a key press, mouse click or programmatically.\n   * Used for focus management after the sidebar is closed.\n   */\n  open(openedVia?: FocusOrigin): Promise<SbbSidebarToggleResult> {\n    return this.toggle(true, openedVia);\n  }\n\n  /** Close the sidebar. */\n  close(): Promise<SbbSidebarToggleResult> {\n    return this.toggle(false);\n  }\n\n  /** Closes the sidebar with context that the backdrop was clicked. */\n  _closeViaBackdropClick(): Promise<SbbSidebarToggleResult> {\n    // If the sidebar is closed upon a backdrop click, we always want to restore focus. We\n    // don't need to check whether focus is currently in the sidebar, as clicking on the\n    // backdrop causes blurs the active element.\n    return this._setOpen(/* isOpen */ false, /* restoreFocus */ true, 'mouse');\n  }\n\n  /**\n   * Toggle this sidebar.\n   * @param isOpen Whether the sidebar should be open.\n   * @param openedVia Whether the sidebar was opened by a key press, mouse click or programmatically.\n   * Used for focus management after the sidebar is closed.\n   */\n  toggle(isOpen: boolean = !this.opened, openedVia?: FocusOrigin): Promise<SbbSidebarToggleResult> {\n    // If the focus is currently inside the sidebar content and we are closing the sidebar,\n    // restore the focus to the initially focused element (when the sidebar opened).\n    if (isOpen && openedVia) {\n      this._openedVia = openedVia;\n    }\n\n    const result = this._setOpen(\n      isOpen,\n      /* restoreFocus */ !isOpen && this._isFocusWithinSidebar(),\n      this._openedVia || 'program',\n    );\n\n    if (!isOpen) {\n      this._openedVia = null;\n    }\n\n    return result;\n  }\n\n  /**\n   * Toggles the opened state of the sidebar.\n   * @param isOpen Whether the sidebar should open or close.\n   * @param restoreFocus Whether focus should be restored on close.\n   * @param focusOrigin Origin to use when restoring focus.\n   */\n  private _setOpen(\n    isOpen: boolean,\n    restoreFocus: boolean,\n    focusOrigin: Exclude<FocusOrigin, null>,\n  ): Promise<SbbSidebarToggleResult> {\n    if (isOpen === this.opened) {\n      return Promise.resolve(isOpen ? 'open' : 'close');\n    }\n\n    this._opened.set(isOpen);\n\n    if (this._container?._transitionsEnabled) {\n      // Note: it's importatnt to set this as early as possible,\n      // otherwise the animation can look glitchy in some cases.\n      this._setIsAnimating(true);\n    } else {\n      // Simulate the animation events if animations are disabled.\n      setTimeout(() => {\n        this._animationStarted.next();\n        this._animationEnd.next();\n      });\n    }\n\n    this._elementRef.nativeElement.classList.toggle('sbb-sidebar-opened', isOpen);\n\n    if (!isOpen && restoreFocus) {\n      this._restoreFocus(focusOrigin);\n    }\n\n    // Needed to ensure that the closing sequence fires off correctly.\n    this._changeDetectorRef.markForCheck();\n    this._updateFocusTrapState();\n\n    return new Promise<SbbSidebarToggleResult>((resolve) => {\n      this.openedChange.pipe(take(1)).subscribe((open) => resolve(open ? 'open' : 'close'));\n    });\n  }\n\n  /** Toggles whether the drawer is currently animating. */\n  private _setIsAnimating(isAnimating: boolean) {\n    this._elementRef.nativeElement.classList.toggle('sbb-sidebar-animating', isAnimating);\n  }\n\n  _getWidth(): number {\n    return this._elementRef.nativeElement.offsetWidth || 0;\n  }\n\n  /** Updates the enabled state of the focus trap. */\n  private _updateFocusTrapState() {\n    if (this._focusTrap) {\n      // The focus trap is only enabled when the sidebar is open in any mode other than side.\n      this._focusTrap.enabled = this.opened && this.mode !== 'side';\n    }\n  }\n\n  _mobileChanged(mobile: boolean): void {\n    this._mobile = mobile;\n    Promise.resolve().then(() => {\n      const wereTransitionsEnabled = this._container._transitionsEnabled;\n\n      // temporary disabled animations when changing mode\n      this._container._transitionsEnabled = false;\n      this.mode = this.collapsible || mobile ? 'over' : 'side';\n\n      if (!this._openedViaInput) {\n        this.toggle(!mobile);\n      } else {\n        this._changeDetectorRef.markForCheck();\n      }\n      this._container._transitionsEnabled = wereTransitionsEnabled;\n    });\n  }\n\n  /** Event handler for animation events. */\n  private _handleTransitionEvent = (event: TransitionEvent) => {\n    const element = this._elementRef.nativeElement;\n\n    if (event.target === element) {\n      this._ngZone.run(() => {\n        if (event.type === 'transitionrun') {\n          this._animationStarted.next(event);\n        } else {\n          // Don't toggle the animating state on `transitioncancel` since another animation should\n          // start afterwards. This prevents the drawer from blinking if an animation is interrupted.\n          if (event.type === 'transitionend') {\n            this._setIsAnimating(false);\n          }\n\n          this._animationEnd.next(event);\n        }\n      });\n    }\n  };\n}\n\n@Component({\n  selector: 'sbb-sidebar-container',\n  exportAs: 'sbbSidebarContainer',\n  templateUrl: './sidebar-container.html',\n  styleUrls: ['./sidebar.css'],\n  host: {\n    class: 'sbb-sidebar-container',\n    '[class.sbb-sidebar-container-mobile]': '_mobile',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: SBB_SIDEBAR_CONTAINER,\n      useExisting: SbbSidebarContainer,\n    },\n  ],\n  imports: [SbbIcon, SbbSidebarContent, AsyncPipe],\n})\nexport class SbbSidebarContainer\n  extends SbbSidebarContainerBase<SbbSidebar>\n  implements AfterContentInit, SbbSidebarMobileCapableContainer, OnDestroy\n{\n  private _element = inject<ElementRef<HTMLElement>>(ElementRef);\n  private _animationMode = inject(ANIMATION_MODULE_TYPE, { optional: true });\n\n  _transitionsEnabled: boolean = false;\n  _labelOpenSidebar: string = $localize`:Button label to open the sidebar@@sbbSidebarOpenSidebar:Open Sidebar`;\n\n  /** The sidebar child at the start/end position. */\n  override get start(): SbbSidebar | null {\n    return this._start;\n  }\n  override get end(): SbbSidebar | null {\n    return this._start;\n  }\n\n  /** Whether the sidebar container should have a backdrop while one of the sidebars is open. */\n  get hasBackdrop() {\n    return !this.start || this.start.mode !== 'side' || !this.end || this.end.mode !== 'side';\n  }\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const platform = inject(Platform);\n    const viewportRuler = inject(ViewportRuler);\n\n    super();\n\n    // Since the minimum width of the sidebar depends on the viewport width,\n    // we need to recompute the margins if the viewport changes.\n    viewportRuler\n      .change()\n      .pipe(takeUntil(this._destroyed))\n      .subscribe(() => this.updateContentMargins());\n\n    if (this._animationMode !== 'NoopAnimations' && platform.isBrowser) {\n      this._ngZone.runOutsideAngular(() => {\n        // Enable the animations after a delay in order to skip\n        // the initial transition if a sidebar is open by default.\n        setTimeout(() => {\n          this._element.nativeElement.classList.add('sbb-sidebar-transition');\n          this._transitionsEnabled = true;\n        }, 300);\n      });\n    }\n  }\n\n  /** All sidebars in the container. Includes sidebars from inside nested containers. */\n  @ContentChildren(SbbSidebar, {\n    // We need to use `descendants: true`, because Ivy will no longer match\n    // indirect descendants if it's left as false.\n    descendants: true,\n  })\n  // We need an initializer here to avoid a TS error.\n  override _allSidebars: QueryList<SbbSidebar> = undefined!;\n\n  // We need an initializer here to avoid a TS error.\n  @ContentChild(SbbSidebarContent) override _content: SbbSidebarContent = undefined!;\n  @ViewChild(SbbSidebarContent) override _userContent: SbbSidebarContent = undefined!;\n\n  /** Event emitted when the sidebar backdrop is clicked. */\n  @Output() readonly backdropClick: EventEmitter<void> = new EventEmitter<void>();\n\n  /**\n   * Margins to be applied to the content. These are used to shrink the sidebar content when a\n   * sidebar is open. We use margin rather than transform because transform breaks\n   * fixed position elements inside of the transformed element.\n   */\n  _contentMargins: { left: number | null; right: number | null } = { left: null, right: null };\n\n  readonly _contentMarginChanges = new Subject<{ left: number | null }>();\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    this._sidebars.changes.pipe(startWith(null)).subscribe(() => {\n      this._validateSidebars();\n\n      this._sidebars.forEach((sidebar: SbbSidebar) => {\n        this._watchSidebarToggle(sidebar);\n        this._watchSidebarMode(sidebar);\n        this._watchSidebarPosition(sidebar);\n      });\n\n      if (\n        !this._sidebars.length ||\n        this._isSidebarOpen(this._start) ||\n        this._isSidebarOpen(this._end)\n      ) {\n        this.updateContentMargins();\n      }\n\n      this._changeDetectorRef.markForCheck();\n    });\n\n    // Has to be called at last (needs sidebar to be set)\n    this._watchBreakpointObserver();\n  }\n\n  /** Calls `open` of both start and end sidebars */\n  open(): void {\n    this._sidebars.forEach((sidebar) => sidebar.open());\n  }\n\n  /** Calls `close` of both start and end sidebars */\n  close(): void {\n    this._sidebars.forEach((sidebar) => sidebar.close());\n  }\n\n  /**\n   * Recalculates and updates the inline styles for the content. Note that this should be used\n   * sparingly, because it causes a reflow.\n   */\n  updateContentMargins() {\n    // 1. For sidebars in `over` mode, they don't affect the content.\n    // 2. For sidebars in `side` mode they should shrink the content. We do this by adding to the\n    //    left margin (for left sidebar).\n    let left = 0;\n    let right = 0;\n\n    if (this._start && this._start.opened && this._start.mode === 'side') {\n      left += this._start._getWidth();\n    }\n\n    if (this._end && this._end.opened && this._end.mode === 'side') {\n      right += this._end._getWidth();\n    }\n\n    // If `left` is zero, don't set a style to the element. This\n    // allows users to specify a custom size via CSS class in SSR scenarios where the\n    // measured widths will always be zero. Note that we reset to `null` here, rather\n    // than below, in order to ensure that the types in the `if` below are consistent.\n    left = left || null!;\n    right = right || null!;\n\n    if (left !== this._contentMargins.left) {\n      this._contentMargins = { left, right };\n\n      // Pull back into the NgZone since in some cases we could be outside. We need to be careful\n      // to do it only when something changed, otherwise we can end up hitting the zone too often.\n      this._ngZone.run(() => this._contentMarginChanges.next(this._contentMargins));\n    }\n  }\n\n  /**\n   * Subscribes to sidebar events in order to set a class on the main container element when the\n   * sidebar is open and the backdrop is visible. This ensures any overflow on the container element\n   * is properly hidden.\n   */\n  private _watchSidebarToggle(sidebar: SbbSidebar): void {\n    sidebar._animationStarted.pipe(takeUntil(this._sidebars.changes)).subscribe(() => {\n      this.updateContentMargins();\n      this._changeDetectorRef.markForCheck();\n    });\n\n    sidebar.openedChange\n      .pipe(takeUntil(this._sidebars.changes))\n      .subscribe(() => this._setContainerClass(sidebar.opened));\n  }\n\n  /** Subscribes to changes in sidebar mode so we can run change detection. */\n  private _watchSidebarMode(sidebar: SbbSidebar): void {\n    if (sidebar) {\n      sidebar._modeChanged\n        .pipe(takeUntil(merge(this._sidebars.changes, this._destroyed)))\n        .subscribe(() => {\n          this.updateContentMargins();\n          this._changeDetectorRef.markForCheck();\n        });\n    }\n  }\n\n  /**\n   * Subscribes to sidebar onPositionChanged event in order to\n   * re-validate sidebars when the position changes.\n   */\n  private _watchSidebarPosition(sidebar: SbbSidebar) {\n    if (!sidebar) {\n      return;\n    }\n\n    sidebar.onPositionChanged.pipe(takeUntil(this._sidebars.changes)).subscribe(() => {\n      this._validateSidebars();\n      this.updateContentMargins();\n      this._changeDetectorRef.markForCheck();\n    });\n  }\n\n  /** Toggles the 'sbb-sidebar-opened' class on the main 'sbb-sidebar-container' element. */\n  private _setContainerClass(isAdd: boolean): void {\n    const classList = this._element.nativeElement.classList;\n    const className = 'sbb-sidebar-container-has-open';\n\n    if (isAdd) {\n      classList.add(className);\n    } else {\n      classList.remove(className);\n    }\n  }\n\n  _onBackdropClicked() {\n    this.backdropClick.emit();\n    this._closeModalSidebarsViaBackdrop();\n  }\n\n  _closeModalSidebarsViaBackdrop() {\n    // Close open sidebar where closing is not disabled and the mode is not `side`.\n    [this._start, this._end]\n      .filter((sidebar) => sidebar && this._canHaveBackdrop(sidebar))\n      .forEach((sidebar) => sidebar!._closeViaBackdropClick());\n  }\n\n  _isShowingBackdrop(): boolean {\n    return (\n      (this._isSidebarOpen(this._start) && this._canHaveBackdrop(this._start)) ||\n      (this._isSidebarOpen(this._end) && this._canHaveBackdrop(this._end))\n    );\n  }\n\n  private _canHaveBackdrop(sidebar: SbbSidebar): boolean {\n    return sidebar.mode !== 'side';\n  }\n\n  private _isSidebarOpen(sidebar: SbbSidebar | null): sidebar is SbbSidebar {\n    return sidebar != null && sidebar.opened;\n  }\n\n  toggleSidebar(position: 'start' | 'end') {\n    if (position === 'start') {\n      this._start?.toggle();\n    } else {\n      this._end?.toggle();\n    }\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this._contentMarginChanges.complete();\n  }\n}\n","<div class=\"sbb-sidebar-inner-container sbb-scrollbar sbb-scrollbar-opaque\" cdkScrollable>\n  @if (mode === 'over') {\n    <div class=\"sbb-sidebar-menu-bar-wrapper\">\n      <span class=\"sbb-sidebar-menu-bar-title\">{{ collapsibleTitle }}</span>\n      <button\n        type=\"button\"\n        class=\"sbb-button-reset-frameless sbb-sidebar-menu-bar-close sbb-icon-scaled\"\n        (click)=\"toggle()\"\n        [attr.aria-label]=\"_labelCloseSidebar\"\n      >\n        <sbb-icon svgIcon=\"cross-small\"></sbb-icon>\n      </button>\n    </div>\n  }\n  <ng-content select=\"sbb-expansion-panel, fieldset\"></ng-content>\n</div>\n","@if (_mobile) {\n  <div class=\"sbb-sidebar-mobile-menu-bar\">\n    @if (_start) {\n      <button\n        type=\"button\"\n        class=\"sbb-button-reset-frameless sbb-sidebar-mobile-menu-bar-trigger sbb-icon-scaled\"\n        (click)=\"toggleSidebar('start')\"\n        [attr.aria-label]=\"_labelOpenSidebar\"\n      >\n        <sbb-icon [svgIcon]=\"(_start._svgIcon | async)!\"></sbb-icon>\n      </button>\n    }\n    <span></span>\n    @if (_end) {\n      <button\n        type=\"button\"\n        class=\"sbb-button-reset-frameless sbb-sidebar-mobile-menu-bar-trigger sbb-icon-scaled\"\n        (click)=\"toggleSidebar('end')\"\n        [attr.aria-label]=\"_labelOpenSidebar\"\n      >\n        <sbb-icon [svgIcon]=\"(_end._svgIcon | async)!\"></sbb-icon>\n      </button>\n    }\n  </div>\n}\n\n@if (hasBackdrop) {\n  <div\n    class=\"sbb-sidebar-backdrop\"\n    (click)=\"_onBackdropClicked()\"\n    [class.sbb-sidebar-shown]=\"_isShowingBackdrop()\"\n  ></div>\n}\n\n<ng-content select=\"sbb-sidebar\"></ng-content>\n\n<ng-content select=\"sbb-sidebar-content\"> </ng-content>\n@if (!_content) {\n  <sbb-sidebar-content>\n    <ng-content></ng-content>\n  </sbb-sidebar-content>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\n\n@Component({\n  selector: 'a[sbbSidebarLink]',\n  templateUrl: './sidebar-link.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'sbb-sidebar-link',\n  },\n  imports: [SbbIcon],\n})\nexport class SbbSidebarLink {}\n","<span class=\"sbb-sidebar-link-label\">\n  <ng-content></ng-content>\n</span>\n<sbb-icon\n  svgIcon=\"arrow-right-small\"\n  class=\"sbb-sidebar-link-arrow sbb-icon-scaled\"\n  aria-hidden=\"true\"\n></sbb-icon>\n","import { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport {\n  SbbIconSidebar,\n  SbbIconSidebarContainer,\n  SbbIconSidebarContent,\n} from './icon-sidebar/icon-sidebar';\nimport { SbbIconSidebarItem } from './icon-sidebar/icon-sidebar-item';\nimport { SbbSidebar, SbbSidebarContainer, SbbSidebarContent } from './sidebar/sidebar';\nimport { SbbSidebarLink } from './sidebar/sidebar-link';\n\n@NgModule({\n  imports: [\n    CdkScrollableModule,\n    SbbCommonModule,\n    SbbIconModule,\n    SbbSidebar,\n    SbbSidebarContainer,\n    SbbSidebarContent,\n    SbbSidebarLink,\n    SbbIconSidebar,\n    SbbIconSidebarContainer,\n    SbbIconSidebarContent,\n    SbbIconSidebarItem,\n  ],\n  exports: [\n    CdkScrollableModule,\n    SbbSidebar,\n    SbbSidebarContainer,\n    SbbSidebarContent,\n    SbbSidebarLink,\n    SbbIconSidebar,\n    SbbIconSidebarContainer,\n    SbbIconSidebarContent,\n    SbbIconSidebarItem,\n  ],\n})\nexport class SbbSidebarModule {}\n"],"names":[],"mappings":"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"}