{"version":3,"file":"lightbox.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-animations.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-container.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-container.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-ref.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-content-directives.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox.module.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/lightbox/lightbox-config.ts"],"sourcesContent":["import {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\n/**\n * Default parameters for the animation for backwards compatibility.\n * @docs-private\n */\nexport const sbbLightboxAnimationsDefaultParams = {\n  params: { enterAnimationDuration: '150ms', exitAnimationDuration: '75ms' },\n};\n\n/**\n * Animations used by SbbLightbox.\n * @docs-private\n */\nexport const sbbLightboxAnimations: {\n  readonly lightboxContainer: AnimationTriggerMetadata;\n} = {\n  /** Animation that is applied on the dialog container by default. */\n  lightboxContainer: trigger('lightboxContainer', [\n    // Note: The `enter` animation transitions to `transform: none`, because for some reason\n    // specifying the transform explicitly, causes IE both to blur the dialog content and\n    // decimate the animation performance. Leaving it as `none` solves both issues.\n    state('void, exit', style({ opacity: 0, transform: 'scale(0.7)' })),\n    state('enter', style({ transform: 'none' })),\n    transition(\n      '* => enter',\n      animate(\n        '{{enterAnimationDuration}} cubic-bezier(0, 0, 0.2, 1)',\n        style({ transform: 'none', opacity: 1 }),\n      ),\n      sbbLightboxAnimationsDefaultParams,\n    ),\n    transition(\n      '* => void, * => exit',\n      animate('{{exitAnimationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)', style({ opacity: 0 })),\n      sbbLightboxAnimationsDefaultParams,\n    ),\n  ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { OverlayRef, ViewportRuler } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostListener,\n  inject,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbDialogContainer } from '@sbb-esta/angular/dialog';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { sbbLightboxAnimations } from './lightbox-animations';\n\n/**\n * Internal component that wraps user-provided lightbox content.\n * @docs-private\n */\n@Component({\n  selector: 'sbb-lightbox-container',\n  templateUrl: 'lightbox-container.html',\n  styleUrls: ['lightbox.css'],\n  encapsulation: ViewEncapsulation.None,\n  // Using OnPush for dialogs caused some G3 sync issues. Disabled until we can track them down.\n  // tslint:disable-next-line:validate-decorators\n  changeDetection: ChangeDetectionStrategy.Default,\n  animations: [sbbLightboxAnimations.lightboxContainer],\n  host: {\n    class: 'sbb-lightbox-container',\n    tabindex: '-1',\n    '[id]': '_config.id',\n    '[attr.role]': '_config.role',\n    '[attr.aria-modal]': '_config.ariaModal',\n    '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledByQueue[0]',\n    '[attr.aria-label]': '_config.ariaLabel',\n    '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n    '[@lightboxContainer]': `_getAnimationState()`,\n  },\n  imports: [CdkPortalOutlet],\n})\nexport class SbbLightboxContainer extends SbbDialogContainer implements OnDestroy {\n  private _viewportRuler = inject(ViewportRuler);\n\n  /** Callback, invoked whenever an animation on the host completes. */\n  @HostListener('@lightboxContainer.done', ['$event'])\n  override _onAnimationDone({ toState, totalTime }: AnimationEvent) {\n    if (toState === 'enter') {\n      this._trapFocus();\n      this._animationStateChanged.next({ state: 'opened', totalTime });\n    } else if (toState === 'exit') {\n      this._animationStateChanged.next({ state: 'closed', totalTime });\n    }\n  }\n\n  /** Callback, invoked when an animation on the host starts. */\n  @HostListener('@lightboxContainer.start', ['$event'])\n  override _onAnimationStart({ toState, totalTime }: AnimationEvent) {\n    if (toState === 'enter') {\n      this._animationStateChanged.next({ state: 'opening', totalTime });\n    } else if (toState === 'exit' || toState === 'void') {\n      this._animationStateChanged.next({ state: 'closing', totalTime });\n    }\n  }\n\n  /** Starts the dialog exit animation. */\n  override _startExitAnimation(): void {\n    this._state = 'exit';\n\n    // Mark the container for check so it can react if the\n    // view container is using OnPush change detection.\n    this._changeDetectorRef.markForCheck();\n  }\n\n  private _destroyed = new Subject<void>();\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const overlayRef = inject(OverlayRef);\n\n    super();\n\n    // Manually calculate the height of the Lightbox. This is necessary because on mobile Chrome and\n    // Safari, 100vh includes the address bar and is therefore taller than the actual viewport.\n    // See https://bugs.webkit.org/show_bug.cgi?id=141832#c5\n    this._viewportRuler\n      ?.change()\n      .pipe(takeUntil(this._destroyed), startWith(null))\n      .subscribe(() =>\n        overlayRef.updateSize({\n          height: this._viewportRuler!.getViewportSize().height,\n        }),\n      );\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { SbbDialogContainer, SbbDialogRef } from '@sbb-esta/angular/dialog';\nimport { Subject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { SbbLightboxConfig } from './lightbox-config';\n\n/**\n * Reference to a dialog opened via the SbbLightbox service.\n */\nexport class SbbLightboxRef<T, R = any> extends SbbDialogRef<T, R> {\n  /**\n   * Observable that emits when closing the lightbox is requested when close is disabled.\n   */\n  readonly closeRequest: Subject<void> = new Subject<void>();\n\n  constructor(\n    ref: DialogRef<R, T>,\n    config: SbbLightboxConfig,\n    containerInstance: SbbDialogContainer,\n  ) {\n    super(ref, config, containerInstance);\n\n    ref.overlayRef\n      .keydownEvents()\n      .pipe(\n        filter(\n          (event) => event.keyCode === ESCAPE && !!this.disableClose && !hasModifierKey(event),\n        ),\n      )\n      .subscribe(() => this.closeRequest.next(null!));\n\n    ref.overlayRef.detachments().subscribe(() => {\n      this.closeRequest.complete();\n    });\n  }\n\n  /**\n   * Not supported for lightbox.\n   * @docs-private\n   */\n  override updatePosition(): this {\n    return this;\n  }\n\n  /**\n   * Not supported for lightbox.\n   * @docs-private\n   */\n  override updateSize(): this {\n    return this;\n  }\n}\n","import { createBlockScrollStrategy, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, InjectionToken, Injector, TemplateRef } from '@angular/core';\nimport { SbbDialogConfig, _SbbDialogBase } from '@sbb-esta/angular/dialog';\n\nimport { SbbLightboxConfig } from './lightbox-config';\nimport { SbbLightboxContainer } from './lightbox-container';\nimport { SbbLightboxRef } from './lightbox-ref';\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nexport const SBB_LIGHTBOX_DATA = new InjectionToken<any>('SbbLightboxData');\n\n/** Injection token that can be used to specify default dialog options. */\nexport const SBB_LIGHTBOX_DEFAULT_OPTIONS = new InjectionToken<SbbLightboxConfig>(\n  'sbb-lightbox-default-options',\n);\n\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport const SBB_LIGHTBOX_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n  'sbb-lightbox-scroll-strategy',\n  {\n    providedIn: 'root',\n    factory: () => {\n      const injector = inject(Injector);\n      return () => createBlockScrollStrategy(injector);\n    },\n  },\n);\n\n/**\n * Service to open modal lightboxes.\n */\n@Injectable({ providedIn: 'root' })\nexport class SbbLightbox extends _SbbDialogBase<SbbLightboxContainer, SbbLightboxRef<any>> {\n  protected override _idPrefix: string = 'sbb-lightbox-';\n\n  /** Keeps track of the currently-open lightboxes. */\n  get openLightboxes(): SbbLightboxRef<any>[] {\n    return this.openDialogs;\n  }\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const overlay = inject(Overlay);\n    const injector = inject(Injector);\n    const defaultOptions = inject<SbbLightboxConfig>(SBB_LIGHTBOX_DEFAULT_OPTIONS, {\n      optional: true,\n    });\n    const scrollStrategy = inject(SBB_LIGHTBOX_SCROLL_STRATEGY);\n    const parentDialog = inject(SbbLightbox, { optional: true, skipSelf: true });\n\n    super(\n      overlay,\n      injector,\n      defaultOptions,\n      parentDialog,\n      scrollStrategy,\n      SbbLightboxRef,\n      SbbLightboxContainer,\n      SBB_LIGHTBOX_DATA,\n    );\n  }\n\n  /**\n   * Opens a modal lightbox containing the given template.\n   * @param componentOrTemplateRef Component type or TemplateRef to instantiate as the lightbox content.\n   * @param config Extra configuration options.\n   * @returns Reference to the newly-opened lightbox.\n   */\n  override open<T, D = any, R = any>(\n    componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n    config?: SbbLightboxConfig<D>,\n  ): SbbLightboxRef<T, R> {\n    const dialogConfig: SbbDialogConfig<D> = {\n      ...config,\n      width: '100vw',\n      minWidth: '100vw',\n      maxWidth: '100vw',\n      height: '100vh',\n      minHeight: 'auto',\n      maxHeight: 'none',\n    };\n    dialogConfig.id = dialogConfig.id || this._idGenerator.getId(this._idPrefix);\n    return super.open(componentOrTemplateRef, dialogConfig) as any;\n  }\n\n  /**\n   * Finds an open lightbox by its id.\n   * @param id ID to use when looking up the lightbox.\n   * @alias getLightboxById\n   */\n  override getDialogById(id: string): SbbLightboxRef<any> | undefined {\n    return this.openDialogs.find((dialog) => dialog.id === id);\n  }\n\n  /**\n   * Finds an open lightbox by its id.\n   * @param id ID to use when looking up the lightbox.\n   */\n  getLightboxById(id: string): SbbLightboxRef<any> | undefined {\n    return this.getDialogById(id);\n  }\n}\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Directive,\n  inject,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport { SbbDialog, SbbDialogClose, _SbbDialogTitleBase } from '@sbb-esta/angular/dialog';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\n\nimport { SbbLightbox } from './lightbox';\nimport { SbbLightboxRef } from './lightbox-ref';\n\n/**\n * Button that will close the current lightbox.\n */\n@Directive({\n  selector: '[sbb-lightbox-close], [sbbLightboxClose]',\n  exportAs: 'sbbLightboxClose',\n  host: {\n    '[attr.aria-label]': 'ariaLabel || null',\n    '[attr.type]': 'type',\n  },\n})\nexport class SbbLightboxClose extends SbbDialogClose implements OnInit, OnChanges {\n  protected override _dialogRef: SbbLightboxRef<any> = inject<SbbLightboxRef<any>>(SbbLightboxRef, {\n    optional: true,\n  })!;\n  protected override _dialog: SbbDialog = inject(SbbLightbox) as unknown as SbbDialog;\n\n  /** Aria label for the close button. */\n  @Input('aria-label')\n  override ariaLabel: string =\n    $localize`:Aria label to close a dialog@@sbbLightboxCloseLightbox:Close lightbox`;\n\n  /** Lightbox close input. */\n  @Input('sbb-lightbox-close')\n  get lightboxResult(): any {\n    return this.dialogResult;\n  }\n  set lightboxResult(value: any) {\n    this.dialogResult = value;\n  }\n\n  @Input('sbbLightboxClose') _sbbLightboxClose: any;\n\n  override ngOnChanges(changes: SimpleChanges) {\n    const proxiedChange = changes['_sbbLightboxClose'] || changes['_sbbLightboxCloseResult'];\n\n    if (proxiedChange) {\n      this.dialogResult = proxiedChange.currentValue;\n    }\n  }\n}\n\n/**\n * Title of a lightbox element. Stays fixed to the top of the lightbox when scrolling.\n */\n@Component({\n  selector: 'sbb-lightbox-title, [sbb-lightbox-title], [sbbLightboxTitle]',\n  exportAs: 'sbbLightboxTitle',\n  template: `\n    <ng-content></ng-content>\n    <button\n      sbb-lightbox-close\n      class=\"sbb-lightbox-title-close-button sbb-button-reset-frameless\"\n      [aria-label]=\"closeAriaLabel\"\n    >\n      <sbb-icon svgIcon=\"circle-cross-small\" class=\"sbb-icon-scaled\"></sbb-icon>\n    </button>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'sbb-lightbox-title',\n    '[id]': 'id',\n  },\n  imports: [SbbLightboxClose, SbbIcon],\n})\nexport class SbbLightboxTitle extends _SbbDialogTitleBase implements OnInit {\n  protected override _dialogRef: SbbLightboxRef<any> = inject<SbbLightboxRef<any>>(SbbLightboxRef, {\n    optional: true,\n  })!;\n  protected override _dialog: SbbDialog = inject(SbbLightbox) as unknown as SbbDialog;\n\n  /** Unique id for the lightbox title. If none is supplied, it will be auto-generated. */\n  @Input() override id: string = inject(_IdGenerator).getId('sbb-lightbox-title-');\n\n  @ViewChild(SbbLightboxClose, { static: true }) _lightBoxClose: SbbLightboxClose;\n\n  /** Arial label for the close button. */\n  @Input()\n  override closeAriaLabel: string =\n    $localize`:Aria label to close a dialog@@sbbLightboxCloseLightbox:Close lightbox`;\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n    this._lightBoxClose._canCloseInterceptor = () => {\n      if (!this._closeEnabled) {\n        (this._dialogRef as SbbLightboxRef<any>)?.closeRequest.next();\n        return false;\n      }\n      return true;\n    };\n  }\n}\n\n/**\n * Scrollable content container of a lightbox.\n */\n@Directive({\n  selector: `[sbb-lightbox-content], sbb-lightbox-content, [sbbLightboxContent]`,\n  host: { class: 'sbb-lightbox-content sbb-scrollbar' },\n})\nexport class SbbLightboxContent {}\n\n/**\n * Container for the bottom action buttons in a lightbox.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n  selector: `[sbb-lightbox-actions], sbb-lightbox-actions, [sbbLightboxActions]`,\n  host: { class: 'sbb-lightbox-actions' },\n})\nexport class SbbLightboxActions {}\n","import { DialogModule } from '@angular/cdk/dialog';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbDialogModule } from '@sbb-esta/angular/dialog';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbLightbox } from './lightbox';\nimport { SbbLightboxContainer } from './lightbox-container';\nimport {\n  SbbLightboxActions,\n  SbbLightboxClose,\n  SbbLightboxContent,\n  SbbLightboxTitle,\n} from './lightbox-content-directives';\n\n@NgModule({\n  imports: [\n    DialogModule,\n    // To avoid injector problems of CDK Dialog. TODO: Check if it is still necessary (has to be done in a consumer project).\n    SbbDialogModule,\n    OverlayModule,\n    PortalModule,\n    SbbCommonModule,\n    SbbIconModule,\n    SbbLightboxContainer,\n    SbbLightboxClose,\n    SbbLightboxTitle,\n    SbbLightboxActions,\n    SbbLightboxContent,\n  ],\n  exports: [\n    SbbLightboxContainer,\n    SbbLightboxClose,\n    SbbLightboxTitle,\n    SbbLightboxContent,\n    SbbLightboxActions,\n  ],\n  providers: [SbbLightbox],\n})\nexport class SbbLightboxModule {}\n","import { ScrollStrategy } from '@angular/cdk/overlay';\nimport { Injector, ViewContainerRef } from '@angular/core';\nimport { SbbDialogRole } from '@sbb-esta/angular/dialog';\n\nimport { sbbLightboxAnimationsDefaultParams } from './lightbox-animations';\n\n/**\n * Configuration for opening a modal dialog with the SbbLightbox service.\n */\nexport class SbbLightboxConfig<D = any> {\n  /**\n   * Where the attached component should live in Angular's *logical* component tree.\n   * This affects what is available for injection and the change detection order for the\n   * component instantiated inside of the lightbox. This does not affect where the lightbox\n   * content will be rendered.\n   */\n  viewContainerRef?: ViewContainerRef;\n\n  /**\n   * Injector used for the instantiation of the component to be attached. If provided,\n   * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n   */\n  injector?: Injector;\n\n  /** ID for the lightbox. If omitted, a unique one will be generated. */\n  id?: string;\n\n  /** The ARIA role of the dialog element. */\n  role?: SbbDialogRole = 'dialog';\n\n  /** Custom class for the overlay pane. */\n  panelClass?: string | string[] = '';\n\n  /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n  disableClose?: boolean = false;\n\n  /** Data being injected into the child component. */\n  data?: D | null = null;\n\n  /** ID of the element that describes the dialog. */\n  ariaDescribedBy?: string | null = null;\n\n  /** ID of the element that labels the dialog. */\n  ariaLabelledBy?: string | null = null;\n\n  /** Aria label to assign to the dialog element. */\n  ariaLabel?: string | null = null;\n\n  /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n  ariaModal?: boolean = true;\n\n  /** Whether the dialog should focus the first focusable element on open. */\n  autoFocus?: boolean = true;\n\n  /**\n   * Whether the dialog should restore focus to the\n   * previously-focused element, after it's closed.\n   */\n  restoreFocus?: boolean = true;\n\n  /** Scroll strategy to be used for the dialog. */\n  scrollStrategy?: ScrollStrategy;\n\n  /**\n   * Whether the dialog should close when the user goes backwards/forwards in history.\n   * Note that this usually doesn't include clicking on links (unless the user is using\n   * the `HashLocationStrategy`).\n   */\n  closeOnNavigation?: boolean = true;\n\n  /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n  enterAnimationDuration?: string =\n    sbbLightboxAnimationsDefaultParams.params.enterAnimationDuration;\n\n  /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n  exitAnimationDuration?: string = sbbLightboxAnimationsDefaultParams.params.exitAnimationDuration;\n\n  // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n"],"names":["sbbLightboxAnimationsDefaultParams","params","enterAnimationDuration","exitAnimationDuration","sbbLightboxAnimations","lightboxContainer","trigger","state","style","opacity","transform","transition","animate","SbbLightboxContainer","SbbDialogContainer","_viewportRuler","inject","ViewportRuler","_onAnimationDone","toState","totalTime","_trapFocus","_animationStateChanged","next","_onAnimationStart","_startExitAnimation","_state","_changeDetectorRef","markForCheck","_destroyed","Subject","constructor","overlayRef","OverlayRef","change","pipe","takeUntil","startWith","subscribe","updateSize","height","getViewportSize","ngOnDestroy","complete","deps","target","i0","ɵɵFactoryTarget","Component","isStandalone","selector","host","attributes","listeners","properties","classAttribute","usesInheritance","ngImport","template","styles","dependencies","kind","type","CdkPortalOutlet","changeDetection","ChangeDetectionStrategy","Default","encapsulation","ViewEncapsulation","None","decorators","args","animations","class","tabindex","imports","HostListener","SbbLightboxRef","SbbDialogRef","closeRequest","ref","config","containerInstance","keydownEvents","filter","event","keyCode","ESCAPE","disableClose","hasModifierKey","detachments","updatePosition","SBB_LIGHTBOX_DATA","InjectionToken","SBB_LIGHTBOX_DEFAULT_OPTIONS","SBB_LIGHTBOX_SCROLL_STRATEGY","providedIn","factory","injector","Injector","createBlockScrollStrategy","SbbLightbox","_SbbDialogBase","_idPrefix","openLightboxes","openDialogs","overlay","Overlay","defaultOptions","optional","scrollStrategy","parentDialog","skipSelf","open","componentOrTemplateRef","dialogConfig","width","minWidth","maxWidth","minHeight","maxHeight","id","_idGenerator","getId","getDialogById","find","dialog","getLightboxById","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","SbbLightboxClose","SbbDialogClose","_dialogRef","_dialog","ariaLabel","$localize","lightboxResult","dialogResult","value","_sbbLightboxClose","ngOnChanges","changes","proxiedChange","currentValue","Directive","inputs","exportAs","usesOnChanges","Input","SbbLightboxTitle","_SbbDialogTitleBase","_IdGenerator","_lightBoxClose","closeAriaLabel","ngOnInit","_canCloseInterceptor","_closeEnabled","viewQueries","propertyName","first","predicate","descendants","static","isInline","SbbIcon","OnPush","ViewChild","SbbLightboxContent","SbbLightboxActions","SbbLightboxModule","NgModule","ɵmod","ɵɵngDeclareNgModule","DialogModule","SbbDialogModule","OverlayModule","PortalModule","SbbCommonModule","SbbIconModule","ɵinj","ɵɵngDeclareInjector","providers","exports","SbbLightboxConfig","viewContainerRef","role","panelClass","data","ariaDescribedBy","ariaLabelledBy","ariaModal","autoFocus","restoreFocus","closeOnNavigation"],"mappings":"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"}