{"version":3,"file":"processflow.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/processflow-animations.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/step-content.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/step-label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/step-header.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/step-header.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/processflow.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/step.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/processflow.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/processflow-button.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/processflow/processflow.module.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by the Sbb processflow.\n * @docs-private\n */\nexport const sbbProcessflowAnimations: {\n  readonly stepTransition: AnimationTriggerMetadata;\n} = {\n  /** Animation that transitions the step along the X axis in a horizontal stepper. */\n  stepTransition: trigger('stepTransition', [\n    transition('* => previous, * => next', [\n      style({ opacity: 1 }),\n      animate('150ms ease', style({ opacity: 0 })),\n    ]),\n    transition('previous => current, next => current', [\n      style({ opacity: 0 }),\n      animate('500ms ease', style({ opacity: 1 })),\n    ]),\n    transition('void => current', animate('0s')),\n  ]),\n};\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n/**\n * Content for a `sbb-step` that will be rendered lazily.\n */\n@Directive({\n  selector: 'ng-template[sbbStepContent]',\n})\nexport class SbbStepContent {\n  _template: TemplateRef<any> = inject<TemplateRef<any>>(TemplateRef);\n\n  constructor(...args: unknown[]);\n  constructor() {}\n}\n","import { CdkStepLabel } from '@angular/cdk/stepper';\nimport { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[sbbStepLabel]',\n})\nexport class SbbStepLabel extends CdkStepLabel {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { CdkStepHeader, StepState } from '@angular/cdk/stepper';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  Input,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { SbbStepLabel } from './step-label';\n\n@Component({\n  selector: 'sbb-step-header',\n  templateUrl: 'step-header.html',\n  styleUrls: ['step-header.css'],\n  host: {\n    class: 'sbb-step-header',\n    role: 'tab',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet],\n})\nexport class SbbStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n  private _focusMonitor = inject(FocusMonitor);\n\n  /** State of the given step. */\n  @Input() state!: StepState;\n\n  /** Label of the given step. */\n  @Input() label!: SbbStepLabel | string;\n\n  /** Index of the given step. */\n  @Input() index!: number;\n\n  /** Whether the given step is selected. */\n  @Input() selected: boolean = false;\n\n  /** Whether the given step label is active. */\n  @Input() active: boolean = false;\n\n  /** Whether the given step is optional. */\n  @Input() optional: boolean = false;\n\n  /** Whether the given step is not editable and completed. */\n  @Input() locked: boolean = false;\n\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this._elementRef, true);\n  }\n\n  ngOnDestroy() {\n    this._focusMonitor.stopMonitoring(this._elementRef);\n  }\n\n  /** Focuses the step header. */\n  override focus(origin?: FocusOrigin, options?: FocusOptions) {\n    if (origin) {\n      this._focusMonitor.focusVia(this._elementRef, origin, options);\n    } else {\n      this._elementRef.nativeElement.focus(options);\n    }\n  }\n\n  /** Returns string label of given step if it is a text label. */\n  _stringLabel(): string | null {\n    return this.label instanceof SbbStepLabel ? null : this.label;\n  }\n\n  /** Returns SbbStepLabel if the label of given step is a template label. */\n  _templateLabel(): SbbStepLabel | null {\n    return this.label instanceof SbbStepLabel ? this.label : null;\n  }\n\n  /** Returns the host HTML element. */\n  _getHostElement() {\n    return this._elementRef.nativeElement;\n  }\n}\n","<div\n  class=\"sbb-step-label\"\n  [class.sbb-step-label-active]=\"active\"\n  [class.sbb-step-label-selected]=\"selected\"\n  [class.sbb-step-label-locked]=\"locked\"\n  [class.sbb-step-label-error]=\"state == 'error'\"\n>\n  <!-- If there is a label template, use it. -->\n  @if (_templateLabel()) {\n    <div class=\"sbb-step-text-label\">\n      <ng-container [ngTemplateOutlet]=\"_templateLabel()!.template\"></ng-container>\n    </div>\n  }\n  <!-- If there is no label template, fall back to the text label. -->\n  @if (_stringLabel()) {\n    <div class=\"sbb-step-text-label\">{{ label }}</div>\n  }\n</div>\n","import { AnimationEvent } from '@angular/animations';\nimport { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { CdkStep, CdkStepper, StepContentPositionState } from '@angular/cdk/stepper';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  inject,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { SbbErrorStateMatcher } from '@sbb-esta/angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { Subject, Subscription } from 'rxjs';\nimport { map, startWith, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { sbbProcessflowAnimations } from './processflow-animations';\nimport { SbbStepContent } from './step-content';\nimport { SbbStepHeader } from './step-header';\nimport { SbbStepLabel } from './step-label';\n\n@Component({\n  selector: 'sbb-step',\n  templateUrl: 'step.html',\n  providers: [\n    { provide: SbbErrorStateMatcher, useExisting: SbbStep },\n    { provide: CdkStep, useExisting: SbbStep },\n  ],\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'sbbStep',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [CdkPortalOutlet],\n})\nexport class SbbStep extends CdkStep implements SbbErrorStateMatcher, AfterContentInit, OnDestroy {\n  private _errorStateMatcher = inject(SbbErrorStateMatcher, { skipSelf: true });\n  private _viewContainerRef = inject(ViewContainerRef);\n  private _isSelected = Subscription.EMPTY;\n\n  /** Content for step label given by `<ng-template sbbStepLabel>`. */\n  // We need an initializer here to avoid a TS error.\n  @ContentChild(SbbStepLabel) override stepLabel: SbbStepLabel = undefined!;\n\n  /** Content that will be rendered lazily. */\n  @ContentChild(SbbStepContent, { static: false }) _lazyContent!: SbbStepContent;\n\n  /** Currently-attached portal containing the lazy content. */\n  _portal!: TemplatePortal;\n\n  ngAfterContentInit() {\n    this._isSelected = this._stepper.steps.changes\n      .pipe(\n        switchMap(() => {\n          return this._stepper.selectionChange.pipe(\n            map((event) => event.selectedStep === this),\n            startWith(this._stepper.selected === this),\n          );\n        }),\n      )\n      .subscribe((isSelected) => {\n        if (isSelected && this._lazyContent && !this._portal) {\n          this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef!);\n        }\n      });\n  }\n\n  ngOnDestroy() {\n    this._isSelected.unsubscribe();\n  }\n\n  /** Custom error state matcher that additionally checks for validity of interacted form. */\n  isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n    const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n\n    // Custom error state checks for the validity of form that is not submitted or touched\n    // since user can trigger a form change by calling for another step without directly\n    // interacting with the current form.\n    const customErrorState = !!(control && control.invalid && this.interacted);\n\n    return originalErrorState || customErrorState;\n  }\n}\n\n@Component({\n  selector: 'sbb-processflow, [sbbProcessflow]',\n  exportAs: 'sbbProcessflow',\n  templateUrl: 'processflow.html',\n  styleUrls: ['processflow.css'],\n  inputs: ['selectedIndex'],\n  host: {\n    class: 'sbb-processflow',\n    '[attr.aria-orientation]': 'orientation',\n    role: 'tablist',\n  },\n  animations: [sbbProcessflowAnimations.stepTransition],\n  providers: [{ provide: CdkStepper, useExisting: SbbProcessflow }],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [SbbStepHeader, SbbIcon, NgTemplateOutlet],\n})\nexport class SbbProcessflow extends CdkStepper implements AfterContentInit {\n  /** The list of step headers of the steps in the processflow. */\n  // We need an initializer here to avoid a TS error.\n  @ViewChildren(SbbStepHeader) override _stepHeader: QueryList<SbbStepHeader> = undefined!;\n  @ViewChild('stepListContainer', { static: true }) _tabListContainer!: ElementRef;\n\n  /** Full list of steps inside the processflow, including inside nested processflows. */\n  // We need an initializer here to avoid a TS error.\n  @ContentChildren(SbbStep, { descendants: true }) override _steps: QueryList<SbbStep> = undefined!;\n\n  /** Steps that belong to the current processflow, excluding ones from nested processflows. */\n  override readonly steps: QueryList<SbbStep> = new QueryList<SbbStep>();\n\n  /** Event emitted when the current step is done transitioning in. */\n  @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n  /** Stream of animation `done` events when the body expands/collapses. */\n  readonly _animationDone = new Subject<AnimationEvent>();\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    // Mark the component for change detection whenever the content children query changes\n    this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n      this._stateChanged();\n    });\n\n    this.selectionChange.pipe(takeUntil(this._destroyed)).subscribe((selection) => {\n      this._scrollToLabel(selection.selectedIndex);\n    });\n\n    this._animationDone.pipe(takeUntil(this._destroyed)).subscribe((event) => {\n      if ((event.toState as StepContentPositionState) === 'current') {\n        this.animationDone.emit();\n      }\n    });\n  }\n\n  /**\n   * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n   */\n  _scrollToLabel(labelIndex: number) {\n    const selectedLabel = this._stepHeader ? this._stepHeader.toArray()[labelIndex] : null;\n    if (!selectedLabel) {\n      return;\n    }\n\n    const containerElement = this._tabListContainer.nativeElement;\n    // The view length is the visible width of the tab labels.\n    const viewLength = containerElement.offsetWidth;\n    const { offsetLeft, offsetWidth } = selectedLabel._elementRef.nativeElement;\n\n    // The offset is off by 24 pixels, which we have to manually remove.\n    const labelBeforePos = offsetLeft - 24;\n    const labelAfterPos = labelBeforePos + offsetWidth;\n\n    if (labelBeforePos < containerElement.scrollLeft) {\n      containerElement.scrollTo({ left: labelBeforePos, behavior: 'smooth' });\n    } else if (viewLength + containerElement.scrollLeft < labelAfterPos) {\n      containerElement.scrollTo({ left: labelAfterPos - viewLength, behavior: 'smooth' });\n    }\n  }\n}\n","<ng-template>\n  <ng-content></ng-content>\n  <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n","<div #stepListContainer class=\"sbb-processflow-header-container sbb-scrollbar\">\n  @for (step of steps; track step; let isLast = $last) {\n    <sbb-step-header\n      class=\"sbb-processflow-header\"\n      (click)=\"step.select()\"\n      (keydown)=\"_onKeydown($event)\"\n      [tabIndex]=\"_getFocusIndex() === step.index() ? 0 : -1\"\n      [id]=\"_getStepLabelId(step.index())\"\n      [attr.aria-posinset]=\"step.index() + 1\"\n      [attr.aria-setsize]=\"steps.length\"\n      [attr.aria-controls]=\"_getStepContentId(step.index())\"\n      [attr.aria-selected]=\"step.isSelected()\"\n      [attr.aria-label]=\"step.ariaLabel || null\"\n      [attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n      [index]=\"step.index()\"\n      [state]=\"step.indicatorType()\"\n      [label]=\"step.stepLabel || step.label\"\n      [selected]=\"step.isSelected()\"\n      [active]=\"step.completed || selectedIndex === step.index() || !linear\"\n      [optional]=\"step.optional\"\n      [locked]=\"!step.editable && step.index() < selectedIndex\"\n    ></sbb-step-header>\n    @if (!isLast) {\n      <div class=\"sbb-processflow-separator\">\n        <sbb-icon svgIcon=\"chevron-right-small\" class=\"sbb-icon-fit\"></sbb-icon>\n      </div>\n    }\n  }\n</div>\n\n<div class=\"sbb-processflow-content-container\">\n  @for (step of steps; track step; let i = $index) {\n    <div\n      class=\"sbb-processflow-content\"\n      [class.sbb-processflow-content-hidden]=\"selectedIndex !== i\"\n      role=\"tabpanel\"\n      [@stepTransition]=\"_getAnimationDirection(i)\"\n      (@stepTransition.done)=\"_animationDone.next($event)\"\n      [id]=\"_getStepContentId(i)\"\n      [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n    >\n      <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n    </div>\n  }\n</div>\n","import { CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';\nimport { Directive } from '@angular/core';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n  selector: 'button[sbbProcessflowNext]',\n  host: {\n    class: 'sbb-processflow-next',\n    '[type]': 'type',\n  },\n  inputs: ['type'],\n})\nexport class SbbProcessflowNext extends CdkStepperNext {}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n  selector: 'button[sbbProcessflowPrevious]',\n  host: {\n    class: 'sbb-processflow-previous',\n    '[type]': 'type',\n  },\n  inputs: ['type'],\n})\nexport class SbbProcessflowPrevious extends CdkStepperPrevious {}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbProcessflow, SbbStep } from './processflow';\nimport { SbbProcessflowNext, SbbProcessflowPrevious } from './processflow-button';\nimport { SbbStepContent } from './step-content';\nimport { SbbStepHeader } from './step-header';\nimport { SbbStepLabel } from './step-label';\n\n@NgModule({\n  imports: [\n    PortalModule,\n    CdkStepperModule,\n    SbbCommonModule,\n    SbbIconModule,\n    SbbStep,\n    SbbStepLabel,\n    SbbProcessflow,\n    SbbProcessflowNext,\n    SbbProcessflowPrevious,\n    SbbStepHeader,\n    SbbStepContent,\n  ],\n  exports: [\n    SbbStep,\n    SbbStepLabel,\n    SbbProcessflow,\n    SbbProcessflowNext,\n    SbbProcessflowPrevious,\n    SbbStepHeader,\n    SbbStepContent,\n  ],\n})\nexport class SbbProcessflowModule {}\n"],"names":[],"mappings":"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"}