{"version":3,"file":"skyux-progress-indicator.mjs","sources":["../../../../../libs/components/progress-indicator/src/lib/modules/shared/sky-progress-indicator-resources.module.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/types/progress-indicator-item-status.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker-class.pipe.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-item/progress-indicator-item.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-item/progress-indicator-item.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button-class.pipe.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button-disabled.pipe.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/types/progress-indicator-action-click-progress-handler.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/types/progress-indicator-message-type.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/types/progress-indicator-mode.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-title/progress-indicator-title.component.ts","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator-title/progress-indicator-title.component.html","../../../../../libs/components/progress-indicator/src/lib/modules/progress-indicator/progress-indicator.module.ts","../../../../../libs/components/progress-indicator/src/skyux-progress-indicator.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-progress-indicator' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n  SkyI18nModule,\n  SkyLibResources,\n  SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n  'EN-US': {\n    skyux_progress_indicator_navigator_finish: { message: 'Finish' },\n    skyux_progress_indicator_navigator_next: { message: 'Next' },\n    skyux_progress_indicator_navigator_previous: { message: 'Previous' },\n    skyux_progress_indicator_navigator_reset: { message: 'Reset' },\n  },\n  'FR-CA': {\n    skyux_progress_indicator_navigator_finish: { message: 'Terminer' },\n    skyux_progress_indicator_navigator_next: { message: 'Suivant' },\n    skyux_progress_indicator_navigator_previous: { message: 'Précédent' },\n    skyux_progress_indicator_navigator_reset: { message: 'Réinitialiser' },\n  },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n  exports: [SkyI18nModule],\n})\nexport class SkyProgressIndicatorResourcesModule {}\n","export enum SkyProgressIndicatorItemStatus {\n  /**\n   * The item is active.\n   */\n  Active = 0,\n\n  /**\n   * The item is complete.\n   */\n  Complete,\n\n  /**\n   * The item is incomplete.\n   */\n  Incomplete,\n\n  /**\n   * The item is pending.\n   */\n  Pending,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { SkyProgressIndicatorItemStatus } from '../types/progress-indicator-item-status';\n\n@Pipe({\n  name: 'skyProgressIndicatorMarkerClass',\n  standalone: false,\n})\nexport class SkyProgressIndicatorMarkerClassPipe implements PipeTransform {\n  public transform(\n    displayMode: string,\n    status: SkyProgressIndicatorItemStatus,\n  ): string {\n    let statusName: string;\n\n    switch (status) {\n      case SkyProgressIndicatorItemStatus.Complete:\n        statusName = 'complete';\n        break;\n      case SkyProgressIndicatorItemStatus.Incomplete:\n        statusName = 'incomplete';\n        break;\n      case SkyProgressIndicatorItemStatus.Pending:\n        statusName = 'pending';\n        break;\n      default:\n        statusName = 'active';\n    }\n\n    return `sky-progress-indicator-status-marker-mode-${displayMode} sky-progress-indicator-status-marker-status-${statusName}`;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnDestroy,\n  Optional,\n} from '@angular/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyProgressIndicatorItemStatus } from '../types/progress-indicator-item-status';\n\n/**\n * Specifies the content to display in the status marker.\n * @internal\n */\n@Component({\n  selector: 'sky-progress-indicator-status-marker',\n  templateUrl: './progress-indicator-status-marker.component.html',\n  styleUrls: ['./progress-indicator-status-marker.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorStatusMarkerComponent implements OnDestroy {\n  @Input()\n  public set displayMode(value: 'vertical' | 'horizontal') {\n    this.#_displayMode = value;\n  }\n\n  public get displayMode(): 'vertical' | 'horizontal' {\n    return this.#_displayMode;\n  }\n\n  @Input()\n  public set status(value: SkyProgressIndicatorItemStatus) {\n    this.#_status = value;\n    this.isComplete = this.#_status === SkyProgressIndicatorItemStatus.Complete;\n  }\n\n  public get status(): SkyProgressIndicatorItemStatus {\n    return this.#_status;\n  }\n\n  public isComplete = false;\n\n  #ngUnsubscribe = new Subject<void>();\n  #changeDetector: ChangeDetectorRef;\n\n  #_status: SkyProgressIndicatorItemStatus =\n    SkyProgressIndicatorItemStatus.Active;\n  #_displayMode: 'vertical' | 'horizontal' = 'vertical';\n\n  constructor(\n    changeDetector: ChangeDetectorRef,\n    @Optional() themeSvc?: SkyThemeService,\n  ) {\n    this.#changeDetector = changeDetector;\n\n    // Update icons when theme changes.\n    themeSvc?.settingsChange\n      .pipe(takeUntil(this.#ngUnsubscribe))\n      .subscribe(() => {\n        this.#changeDetector.markForCheck();\n      });\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n  }\n}\n","<div\n  class=\"sky-progress-indicator-status-marker\"\n  role=\"presentation\"\n  [ngClass]=\"displayMode | skyProgressIndicatorMarkerClass: status\"\n>\n  <div class=\"sky-progress-indicator-status-marker-icon\">\n    @if (isComplete) {\n      <sky-icon iconName=\"checkmark\" />\n    }\n  </div>\n  <div class=\"sky-progress-indicator-status-marker-line\"></div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n} from '@angular/core';\n\nimport { SkyProgressIndicatorItemStatus } from '../types/progress-indicator-item-status';\n\nconst STATUS_DEFAULT = SkyProgressIndicatorItemStatus.Incomplete;\nconst STATUS_NAME_DEFAULT = 'incomplete';\n\n/**\n * Specifies a step to include in the progress indicator. Each step requires a label,\n * and you can also specify step details within the `sky-progress-indicator-item` element.\n */\n@Component({\n  selector: 'sky-progress-indicator-item',\n  templateUrl: './progress-indicator-item.component.html',\n  styleUrls: ['./progress-indicator-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorItemComponent implements OnInit {\n  /**\n   * The step label for the step in the progress indicator.\n   * @required\n   */\n  @Input()\n  public set title(value: string | undefined) {\n    this.#_title = value;\n    this.#updateFormattedTitle();\n  }\n\n  public get title(): string | undefined {\n    return this.#_title;\n  }\n\n  /**\n   * A help key that identifies the global help content to display. When specified along with `title`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n   * placed beside the progress indicator item label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help) as configured by the application.\n   * This property only applies when `title` is also specified.\n   */\n  @Input()\n  public helpKey: string | undefined;\n\n  /**\n   * The content of the help popover. When specified along with `title`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n   * button is added to the progress indicator item label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n   * when clicked using the specified content and optional title. This property only applies when `title` is also specified.\n   */\n  @Input()\n  public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n  /**\n   * The title of the help popover. This property only applies when `helpPopoverContent` is\n   * also specified.\n   */\n  @Input()\n  public helpPopoverTitle: string | undefined;\n\n  public set status(value: SkyProgressIndicatorItemStatus | undefined) {\n    if (value === this.#_status) {\n      return;\n    }\n\n    /* istanbul ignore next */\n    this.#_status = value ?? STATUS_DEFAULT;\n\n    switch (this.#_status) {\n      case SkyProgressIndicatorItemStatus.Active:\n        this.statusName = 'active';\n        break;\n      case SkyProgressIndicatorItemStatus.Complete:\n        this.statusName = 'complete';\n        break;\n      case SkyProgressIndicatorItemStatus.Incomplete:\n        this.statusName = 'incomplete';\n        break;\n      case SkyProgressIndicatorItemStatus.Pending:\n        this.statusName = 'pending';\n        break;\n    }\n\n    this.#changeDetector.markForCheck();\n  }\n\n  public get status(): SkyProgressIndicatorItemStatus {\n    return this.#_status;\n  }\n\n  public formattedTitle: string | undefined;\n\n  public set isVisible(value: boolean | undefined) {\n    this.#_isVisible = !!value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get isVisible(): boolean {\n    return this.#_isVisible;\n  }\n\n  public set showStatusMarker(value: boolean | undefined) {\n    this.#_showStatusMarker = !!value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get showStatusMarker(): boolean {\n    return this.#_showStatusMarker;\n  }\n\n  public set showTitle(value: boolean | undefined) {\n    this.#_showTitle = !!value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get showTitle(): boolean {\n    return this.#_showTitle;\n  }\n\n  public statusName = STATUS_NAME_DEFAULT;\n\n  #titlePrefix: string | undefined;\n  #changeDetector: ChangeDetectorRef;\n\n  #_isVisible = false;\n  #_title: string | undefined;\n  #_showStatusMarker = true;\n  #_showTitle = true;\n  #_status = STATUS_DEFAULT;\n\n  constructor(changeDetector: ChangeDetectorRef) {\n    this.#changeDetector = changeDetector;\n  }\n\n  public ngOnInit(): void {\n    this.#updateFormattedTitle();\n  }\n\n  public showStepNumber(step: number): void {\n    this.#titlePrefix = `${step} - `;\n    this.#updateFormattedTitle();\n  }\n\n  public hideStepNumber(): void {\n    this.#titlePrefix = '';\n    this.#updateFormattedTitle();\n  }\n\n  #updateFormattedTitle(): void {\n    this.formattedTitle = `${this.#titlePrefix}${this.title}`;\n    this.#changeDetector.markForCheck();\n  }\n}\n","@if (isVisible) {\n  <div\n    class=\"sky-progress-indicator-item\"\n    [ngClass]=\"'sky-progress-indicator-item-status-' + statusName\"\n  >\n    @if (showStatusMarker) {\n      <sky-progress-indicator-status-marker [status]=\"status\" />\n    }\n\n    <div class=\"sky-progress-indicator-item-content\">\n      @if (showTitle) {\n        <div class=\"sky-progress-indicator-item-heading-wrapper\" skyTrim>\n          <span\n            aria-level=\"2\"\n            class=\"sky-progress-indicator-item-heading\"\n            role=\"heading\"\n            [ngClass]=\"{\n              'sky-font-deemphasized': statusName === 'pending'\n            }\"\n            [skyThemeClass]=\"{\n              'sky-font-display-3': 'modern'\n            }\"\n          >\n            {{ formattedTitle }}\n            @if (!helpKey && !helpPopoverContent) {\n              <span class=\"sky-control-help-container\" skyTrim\n                ><ng-content select=\".sky-control-help\"></ng-content\n              ></span>\n            }\n          </span>\n          @if (helpKey || helpPopoverContent) {\n            <span class=\"sky-control-help-container\">\n              <sky-help-inline\n                [helpKey]=\"helpKey\"\n                [labelText]=\"title\"\n                [popoverTitle]=\"helpPopoverTitle\"\n                [popoverContent]=\"helpPopoverContent\"\n              />\n            </span>\n          }\n        </div>\n      }\n      <div class=\"sky-progress-indicator-item-body\">\n        @if (statusName !== 'incomplete') {\n          <ng-content />\n        }\n      </div>\n    </div>\n  </div>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'skyProgressIndicatorNavButtonClass',\n  standalone: false,\n})\nexport class SkyProgressIndicatorNavButtonClass implements PipeTransform {\n  public transform(buttonType: string): string[] {\n    const classNames = [`sky-progress-indicator-nav-button-${buttonType}`];\n\n    switch (buttonType) {\n      case 'next':\n      case 'finish':\n        classNames.push('sky-btn-primary');\n        break;\n      case 'reset':\n        classNames.push('sky-btn-link');\n        break;\n      default:\n        classNames.push('sky-btn-default');\n    }\n\n    return classNames;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { SkyProgressIndicatorItemStatus } from '../types/progress-indicator-item-status';\nimport { SkyProgressIndicatorNavButtonType } from '../types/progress-indicator-nav-button-type';\n\n@Pipe({\n  name: 'skyProgressIndicatorNavButtonDisabled',\n  standalone: false,\n})\nexport class SkyProgressIndicatorNavButtonDisabledPipe implements PipeTransform {\n  public transform(\n    disabled: boolean | undefined,\n    buttonType: SkyProgressIndicatorNavButtonType,\n    activeIndex: number | undefined,\n    itemStatuses: SkyProgressIndicatorItemStatus[] | undefined,\n  ): boolean | undefined {\n    const isLastStep = itemStatuses && activeIndex === itemStatuses.length - 1;\n\n    return (\n      (buttonType === 'next' && isLastStep) ||\n      (buttonType === 'previous' && activeIndex === 0) ||\n      disabled\n    );\n  }\n}\n","/**\n * Allows the consumer to decide whether the button's action should be completed successfully.\n * The handler is provided with all nav button types.\n */\nexport class SkyProgressIndicatorActionClickProgressHandler {\n  /**\n   *\n   * @param advance Advances the progress indicator to the next step.\n   */\n  constructor(public readonly advance: () => void) {}\n}\n","export enum SkyProgressIndicatorMessageType {\n  /**\n   * The current step is complete.\n   * This completes the active item and moves to the next item.\n   */\n  Progress = 0,\n\n  /**\n   * Returns progress to the previous step.\n   * This moves from the active item to the item that precedes it.\n   */\n  Regress = 1,\n\n  /**\n   * Progress is incomplete.\n   * This marks all items as incomplete and sets the first item as the active item.\n   */\n  Reset = 2,\n\n  /**\n   * Progress is complete.\n   * This marks all items as complete and sets the last item as the active item.\n   */\n  Finish = 3,\n\n  /**\n   * Moves progress to the item indicated by the `data.activeIndex` property.\n   */\n  GoTo = 4,\n}\n","/**\n * @deprecated Use `SkyProgressIndicatorDisplayModeType` instead.\n * @internal\n */\nexport enum SkyProgressIndicatorDisplayMode {\n  /**\n   * The vertical layout for the progress indicator.\n   */\n  Vertical = 0,\n\n  /**\n   * The horizontal layout for the progress indicator.\n   */\n  Horizontal,\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyLogService } from '@skyux/core';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { delay, takeUntil } from 'rxjs/operators';\n\nimport { SkyProgressIndicatorItemComponent } from './progress-indicator-item/progress-indicator-item.component';\nimport { SkyProgressIndicatorChange } from './types/progress-indicator-change';\nimport { SkyProgressIndicatorDisplayModeType } from './types/progress-indicator-display-mode-type';\nimport { SkyProgressIndicatorItemStatus } from './types/progress-indicator-item-status';\nimport { SkyProgressIndicatorMessage } from './types/progress-indicator-message';\nimport { SkyProgressIndicatorMessageType } from './types/progress-indicator-message-type';\nimport { SkyProgressIndicatorDisplayMode } from './types/progress-indicator-mode';\n\n@Component({\n  selector: 'sky-progress-indicator',\n  templateUrl: './progress-indicator.component.html',\n  styleUrls: ['./progress-indicator.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorComponent\n  implements OnInit, AfterContentInit, OnDestroy\n{\n  /**\n   * The orientation of the progress indicator, which can be vertical or horizontal.\n   * For [passive progress indicators](https://developer.blackbaud.com/skyux/components/progress-indicator-passive)\n   * and [waterfall progress indicators](https://developer.blackbaud.com/skyux/components/progress-indicator-waterfall),\n   * use the vertical display mode. For [modal wizards](https://developer.blackbaud.com/skyux/components/progress-indicator-wizard),\n   * use the horizontal display mode.\n   * @deprecated The property was designed to create wizards by setting `displayMode=\"horizontal\"` on progress indicators in modals,\n   * but this wizard implementation was replaced by the\n   * [wizard component that uses tabs](https://developer.blackbaud.com/skyux/components/tabs-wizard).\n   * @default \"vertical\"\n   */\n  @Input()\n  public set displayMode(\n    value: SkyProgressIndicatorDisplayModeType | undefined,\n  ) {\n    switch (value) {\n      case SkyProgressIndicatorDisplayMode.Horizontal:\n      case 'horizontal':\n        this.#_displayMode = 'horizontal';\n        break;\n      default:\n        this.#_displayMode = 'vertical';\n    }\n\n    this.#updateCssClassNames();\n\n    if (this.#_displayMode === 'horizontal') {\n      this.#logger.deprecated('SkyProgressIndicator wizard', {\n        deprecationMajorVersion: 6,\n        replacementRecommendation: 'Use Wizard (Tabs) instead.',\n      });\n    }\n  }\n\n  public get displayMode(): SkyProgressIndicatorDisplayModeType {\n    return this.#_displayMode;\n  }\n\n  /**\n   * Whether the progress indicator is passive. Passive progress indicators inform users of\n   * progress that concerns them but that they are not responsible for, and they must use the vertical display mode.\n   * @default false\n   */\n  @Input()\n  public set isPassive(value: boolean | undefined) {\n    this.#_isPassive = value;\n    this.#updateCssClassNames();\n  }\n\n  public get isPassive(): boolean | undefined {\n    return this.#_isPassive;\n  }\n\n  /**\n   * The observable of `SkyProgressIndicatorMessage` that determines the status to\n   * display for items in the progress indicator. The message stream is a queue of\n   * commanding messages to change the state of the progress indicator based on the message type.\n   */\n  @Input()\n  public set messageStream(\n    value:\n      | Subject<SkyProgressIndicatorMessage | SkyProgressIndicatorMessageType>\n      | undefined,\n  ) {\n    this.#messageStream = value || new Subject();\n    this.#subscribeToMessageStream();\n  }\n\n  /**\n   * The index for the item to make active when the progress indicator\n   * loads. All steps that precede the active item are marked as complete, and all steps\n   * that follow the active item are marked as incomplete.\n   */\n  @Input()\n  public set startingIndex(value: number | undefined) {\n    this.#_startingIndex = value || 0;\n  }\n\n  public get startingIndex(): number {\n    return this.#_startingIndex;\n  }\n\n  /**\n   * Fires when the progress indicator changes the status of an item.\n   */\n  @Output()\n  public progressChanges = new EventEmitter<SkyProgressIndicatorChange>();\n\n  public get hasFinishButton(): boolean | undefined {\n    return this.#_hasFinishButton;\n  }\n\n  public set hasFinishButton(value: boolean | undefined) {\n    this.#_hasFinishButton = value;\n  }\n\n  @ContentChildren(SkyProgressIndicatorItemComponent)\n  public itemComponents:\n    | QueryList<SkyProgressIndicatorItemComponent>\n    | undefined;\n\n  public cssClassNames: string[] = [];\n  public itemStatuses: SkyProgressIndicatorItemStatus[] = [];\n\n  set #activeIndex(value: number | undefined) {\n    const lastIndex = (this.itemComponents?.length || 0) - 1;\n    this.#_activeIndex = Math.max(Math.min(value || 0, lastIndex), 0);\n  }\n\n  get #activeIndex(): number {\n    return this.#_activeIndex;\n  }\n\n  #_activeIndex = 0;\n  #_displayMode: SkyProgressIndicatorDisplayModeType = 'vertical';\n  #_hasFinishButton: boolean | undefined;\n  #_isPassive: boolean | undefined = false;\n  #_startingIndex = 0;\n\n  #messageStreamSub: Subscription | undefined;\n  #initialized = false;\n  #ngUnsubscribe = new Subject<void>();\n  #messageStream = new Subject<\n    SkyProgressIndicatorMessage | SkyProgressIndicatorMessageType\n  >();\n  #changeDetector: ChangeDetectorRef;\n  #windowRef: SkyAppWindowRef;\n  #logger: SkyLogService;\n\n  constructor(\n    changeDetector: ChangeDetectorRef,\n    windowRef: SkyAppWindowRef,\n    logger: SkyLogService,\n  ) {\n    this.#changeDetector = changeDetector;\n    this.#windowRef = windowRef;\n    this.#logger = logger;\n  }\n\n  public ngOnInit(): void {\n    this.#initialized = true;\n\n    this.#updateCssClassNames();\n    this.#subscribeToMessageStream();\n  }\n\n  public ngAfterContentInit(): void {\n    this.#activeIndex = this.startingIndex;\n\n    this.#updateSteps();\n\n    // Note: The delay here is to ensure all change detection on the items has finished. Without\n    // the delay we receive a changed before checked error for vertical progress indicators\n    this.itemComponents?.changes\n      .pipe(takeUntil(this.#ngUnsubscribe), delay(0))\n      .subscribe(() => {\n        this.#updateSteps();\n        this.#updateStatusesAndNotify();\n      });\n\n    // Wait for item components' change detection to complete\n    // before notifying changes to the consumer.\n    this.#windowRef.nativeWindow.setTimeout(() => {\n      this.#updateStatusesAndNotify();\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n  }\n\n  public sendMessage(message: SkyProgressIndicatorMessage): void {\n    this.#messageStream.next(message);\n  }\n\n  #isPassiveAndVertical(): boolean | undefined {\n    // Currently, passive mode is not supported for horizontal displays.\n    if (this.displayMode === 'horizontal') {\n      return false;\n    }\n\n    return this.isPassive;\n  }\n\n  #gotoNextStep(): void {\n    const nextIndex = this.#activeIndex + 1;\n    const lastIndex = this.#getLastIndex();\n\n    if (nextIndex > lastIndex) {\n      return;\n    }\n\n    this.#gotoStep(nextIndex);\n  }\n\n  #gotoPreviousStep(): void {\n    const previousIndex = this.#activeIndex - 1;\n\n    if (previousIndex < 0) {\n      return;\n    }\n\n    this.#gotoStep(previousIndex);\n  }\n\n  #gotoStep(index: number): void {\n    this.#activeIndex = index;\n    this.#updateSteps();\n    this.#updateStatusesAndNotify();\n  }\n\n  #finishSteps(): void {\n    this.#activeIndex = this.#getLastIndex();\n\n    this.itemComponents?.forEach((component) => {\n      component.status = SkyProgressIndicatorItemStatus.Complete;\n    });\n\n    this.#updateStatusesAndNotify({\n      isComplete: true,\n    });\n  }\n\n  #resetSteps(): void {\n    this.#gotoStep(0);\n  }\n\n  #updateSteps(): void {\n    if (this.#activeIndex > this.#getLastIndex()) {\n      this.#activeIndex = this.#activeIndex - 1;\n    }\n\n    const activeIndex = this.#activeIndex;\n    const isPassiveAndVertical = this.#isPassiveAndVertical();\n    const isVertical = this.displayMode === 'vertical';\n\n    this.itemComponents?.forEach((component, i) => {\n      // Set visibility.\n      component.isVisible = activeIndex === i || isVertical;\n\n      // Set status.\n      let status: SkyProgressIndicatorItemStatus;\n      if (activeIndex === i) {\n        if (isPassiveAndVertical) {\n          status = SkyProgressIndicatorItemStatus.Pending;\n        } else {\n          status = SkyProgressIndicatorItemStatus.Active;\n        }\n      } else if (activeIndex > i) {\n        status = SkyProgressIndicatorItemStatus.Complete;\n      } else {\n        status = SkyProgressIndicatorItemStatus.Incomplete;\n      }\n\n      component.status = status;\n\n      // Show or hide the status markers.\n      component.showStatusMarker = isVertical;\n\n      // Show or hide the step number.\n      if (isPassiveAndVertical) {\n        component.hideStepNumber();\n      } else {\n        component.showStepNumber(i + 1);\n      }\n\n      // If we're in passive mode, don't show titles for incomplete items.\n      component.showTitle = !(isPassiveAndVertical && activeIndex < i);\n    });\n  }\n\n  #updateItemStatuses(): void {\n    /* istanbul ignore next */\n    this.itemStatuses = this.itemComponents?.map((c) => c.status) || [];\n  }\n\n  #updateCssClassNames(): void {\n    const classNames = [`sky-progress-indicator-mode-${this.displayMode}`];\n\n    if (this.#isPassiveAndVertical()) {\n      classNames.push('sky-progress-indicator-passive');\n    }\n\n    this.cssClassNames = classNames;\n  }\n\n  #handleIncomingMessage(\n    message: SkyProgressIndicatorMessage | SkyProgressIndicatorMessageType,\n  ): void {\n    const indicatorMessage = message as SkyProgressIndicatorMessage;\n\n    let type: SkyProgressIndicatorMessageType;\n\n    // Prints a deprecation warning if the consumer provides only `SkyProgressIndicatorMessageType`.\n    if (indicatorMessage.type === undefined) {\n      console.warn(\n        \"[Deprecation warning] The progress indicator component's `messageStream` input is set \" +\n          'to `Subject<SkyProgressIndicatorMessageType>`. We will remove this deprecated type in ' +\n          'the next major version release. Instead, set the `messageStream` input to a value of ' +\n          '`Subject<SkyProgressIndicatorMessage>`.',\n      );\n\n      type = message as SkyProgressIndicatorMessageType;\n    } else {\n      type = indicatorMessage.type;\n    }\n\n    switch (type) {\n      case SkyProgressIndicatorMessageType.Progress:\n        this.#gotoNextStep();\n        break;\n\n      case SkyProgressIndicatorMessageType.Regress:\n        this.#gotoPreviousStep();\n        break;\n\n      case SkyProgressIndicatorMessageType.Finish:\n        this.#finishSteps();\n        break;\n\n      case SkyProgressIndicatorMessageType.Reset:\n        this.#resetSteps();\n        break;\n\n      case SkyProgressIndicatorMessageType.GoTo:\n        if (\n          !indicatorMessage.data ||\n          indicatorMessage.data.activeIndex === undefined\n        ) {\n          console.warn(\n            'A message type of `SkyProgressIndicatorMessageType.GoTo` was passed to the progress ' +\n              'indicator, but no step index was provided. You can pass the desired active ' +\n              'index via:\\n' +\n              '{\\n' +\n              '  type: SkyProgressIndicatorMessageType.GoTo,\\n' +\n              '  data: { activeIndex: 0 }\\n' +\n              '}',\n          );\n          return;\n        }\n\n        this.#gotoStep(indicatorMessage.data.activeIndex);\n        break;\n\n      default:\n        break;\n    }\n\n    // Update the view after a message is received.\n    this.#changeDetector.markForCheck();\n  }\n\n  #subscribeToMessageStream(): void {\n    if (this.#initialized) {\n      if (this.#messageStreamSub) {\n        this.#messageStreamSub.unsubscribe();\n        this.#messageStreamSub = undefined;\n      }\n\n      if (this.#messageStream) {\n        this.#messageStreamSub = this.#messageStream\n          .pipe(takeUntil(this.#ngUnsubscribe))\n          .subscribe((message) => {\n            this.#handleIncomingMessage(message);\n          });\n      }\n    }\n  }\n\n  #updateStatusesAndNotify(change?: SkyProgressIndicatorChange): void {\n    this.#updateItemStatuses();\n\n    this.progressChanges.next(\n      Object.assign(\n        {},\n        {\n          activeIndex: this.#activeIndex,\n          itemStatuses: this.itemStatuses,\n        },\n        change,\n      ),\n    );\n  }\n\n  #getLastIndex(): number {\n    return (this.itemComponents?.length || 0) - 1;\n  }\n}\n","<div class=\"sky-progress-indicator\" [ngClass]=\"cssClassNames\">\n  @if (displayMode === 'horizontal') {\n    <div class=\"sky-progress-indicator-horizontal-status-markers\">\n      @for (status of itemStatuses; track status) {\n        <sky-progress-indicator-status-marker\n          [displayMode]=\"displayMode\"\n          [status]=\"status\"\n        />\n      }\n    </div>\n  }\n  <ng-content />\n</div>\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Optional,\n  Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { SkyProgressIndicatorComponent } from '../progress-indicator.component';\nimport { SkyProgressIndicatorActionClickArgs } from '../types/progress-indicator-action-click-args';\nimport { SkyProgressIndicatorActionClickProgressHandler } from '../types/progress-indicator-action-click-progress-handler';\nimport { SkyProgressIndicatorChange } from '../types/progress-indicator-change';\nimport { SkyProgressIndicatorMessageType } from '../types/progress-indicator-message-type';\nimport { SkyProgressIndicatorNavButtonType } from '../types/progress-indicator-nav-button-type';\n\nconst BUTTON_TYPE_DEFAULT: SkyProgressIndicatorNavButtonType = 'next';\n\n/**\n * Displays a button to navigate the steps in modal wizards. We recommend against using it in\n * passive progress indicators and waterfall progress indicators.\n */\n@Component({\n  selector: 'sky-progress-indicator-nav-button',\n  templateUrl: './progress-indicator-nav-button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorNavButtonComponent\n  implements AfterViewInit, OnDestroy\n{\n  /**\n   * The label to display on the nav button.\n   * @default \"Next\"\n   */\n  @Input()\n  public buttonText: string | undefined;\n\n  /**\n   * The type of nav button to include.\n   * @default \"next\"\n   */\n  @Input()\n  public set buttonType(value: SkyProgressIndicatorNavButtonType | undefined) {\n    this.#_buttonType = value || BUTTON_TYPE_DEFAULT;\n  }\n\n  public get buttonType(): SkyProgressIndicatorNavButtonType {\n    return this.#_buttonType;\n  }\n\n  /**\n   * Whether to disable the nav button.\n   * @default false\n   */\n  @Input()\n  public set disabled(value: boolean | undefined) {\n    this.#_disabled = value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get disabled(): boolean | undefined {\n    return this.#_disabled;\n  }\n\n  /**\n   * The progress indicator component to associate with the nav button.\n   * @required\n   */\n  @Input()\n  public set progressIndicator(\n    value: SkyProgressIndicatorComponent | undefined,\n  ) {\n    this.#_progressIndicator = value;\n\n    if (this.#_progressIndicator) {\n      if (this.buttonType === 'finish') {\n        // The `hasFinishButton` field was added to support legacy API.\n        // Some implementations only include a next button; we cannot\n        // assume that every implementation includes both a finish button and a next button.\n        this.#_progressIndicator.hasFinishButton = true;\n      }\n\n      this.#_progressIndicator.progressChanges\n        .pipe(distinctUntilChanged(), takeUntil(this.#ngUnsubscribe))\n        .subscribe((change: SkyProgressIndicatorChange) => {\n          this.lastProgressChange = change;\n          this.#updateButtonVisibility(change);\n        });\n    } else {\n      if (!this.#parentTimeout) {\n        this.#parentTimeout = window.setTimeout(() => {\n          /* istanbul ignore else */\n          if (!this.progressIndicator) {\n            throw new Error(\n              'The `<sky-progress-indicator-nav-button>` component requires a reference to ' +\n                'the `<sky-progress-indicator>` component it controls. For example:\\n' +\n                '<sky-progress-indicator\\n' +\n                '  #myProgressIndicator\\n' +\n                '>\\n' +\n                '</sky-progress-indicator>\\n' +\n                '<sky-progress-indicator-nav-button\\n' +\n                '  [progressIndicator]=\"myProgressIndicator\"\\n' +\n                '>\\n' +\n                '</sky-progress-indicator-nav-button>',\n            );\n          }\n        }, 50);\n      }\n    }\n  }\n\n  public get progressIndicator(): SkyProgressIndicatorComponent | undefined {\n    return this.#_progressIndicator;\n  }\n\n  /**\n   * Fires when users select the nav button and emits a `SkyProgressIndicatorActionClickArgs`\n   * object that is passed into the callback function to allow consumers to decide whether\n   * the button’s action should complete successfully.\n   */\n  @Output()\n  public actionClick = new EventEmitter<SkyProgressIndicatorActionClickArgs>();\n\n  public set isVisible(value: boolean | undefined) {\n    this.#_isVisible = value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get isVisible(): boolean | undefined {\n    return this.#_isVisible;\n  }\n\n  public lastProgressChange: SkyProgressIndicatorChange | undefined;\n\n  #ngUnsubscribe = new Subject<void>();\n  #parentTimeout: number | undefined;\n\n  #_buttonType = BUTTON_TYPE_DEFAULT;\n  #_disabled: boolean | undefined;\n  #_isVisible: boolean | undefined;\n  #_progressIndicator: SkyProgressIndicatorComponent | undefined;\n\n  #changeDetector: ChangeDetectorRef;\n  #parentComponent: SkyProgressIndicatorComponent | undefined;\n\n  constructor(\n    changeDetector: ChangeDetectorRef,\n    @Optional() parentComponent?: SkyProgressIndicatorComponent,\n  ) {\n    this.#changeDetector = changeDetector;\n    this.#parentComponent = parentComponent;\n  }\n\n  public ngAfterViewInit(): void {\n    if (!this.progressIndicator && this.#parentComponent) {\n      this.progressIndicator = this.#parentComponent;\n    } else if (!this.progressIndicator) {\n      this.progressIndicator = undefined;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n    this.actionClick.complete();\n  }\n\n  public onClick(event: MouseEvent): void {\n    event.preventDefault();\n\n    let type: SkyProgressIndicatorMessageType | undefined;\n\n    switch (this.buttonType) {\n      case 'finish':\n        type = SkyProgressIndicatorMessageType.Finish;\n        break;\n      case 'next':\n        type = SkyProgressIndicatorMessageType.Progress;\n        break;\n      case 'previous':\n        type = SkyProgressIndicatorMessageType.Regress;\n        break;\n      case 'reset':\n        type = SkyProgressIndicatorMessageType.Reset;\n        break;\n    }\n\n    // If the consumer has subscribed to the `actionClick` event,\n    // allow them to decide when to advance to the next step.\n    if (this.actionClick.observers.length > 0) {\n      this.actionClick.emit({\n        event,\n        progressHandler: new SkyProgressIndicatorActionClickProgressHandler(\n          () => {\n            this.#sendMessage(type);\n          },\n        ),\n      });\n    } else {\n      this.#sendMessage(type);\n    }\n  }\n\n  #sendMessage(type: SkyProgressIndicatorMessageType | undefined): void {\n    if (type !== undefined) {\n      this.progressIndicator?.sendMessage({ type });\n    }\n  }\n\n  #updateButtonVisibility(change: SkyProgressIndicatorChange): void {\n    const isLastStep =\n      change.itemStatuses &&\n      change.activeIndex === change.itemStatuses.length - 1;\n    const buttonType = this.buttonType;\n\n    // Hide the button if all steps are complete\n    // (except for the reset button)\n    if (buttonType !== 'reset' && change.isComplete) {\n      this.isVisible = false;\n      return;\n    }\n\n    if (buttonType === 'finish') {\n      this.isVisible = isLastStep;\n      return;\n    }\n\n    // Hide the next button on the last step only if a finish button exists.\n    if (\n      buttonType === 'next' &&\n      isLastStep &&\n      this.progressIndicator?.hasFinishButton\n    ) {\n      this.isVisible = false;\n      return;\n    }\n\n    this.isVisible = true;\n  }\n}\n","@if (isVisible) {\n  <button\n    class=\"sky-btn sky-margin-inline-sm\"\n    type=\"button\"\n    [disabled]=\"\n      disabled\n        | skyProgressIndicatorNavButtonDisabled\n          : buttonType\n          : lastProgressChange?.activeIndex\n          : lastProgressChange?.itemStatuses\n    \"\n    [ngClass]=\"buttonType | skyProgressIndicatorNavButtonClass\"\n    (click)=\"onClick($event)\"\n  >\n    {{\n      buttonText ||\n        ('skyux_progress_indicator_navigator_' + buttonType | skyLibResources)\n    }}\n  </button>\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n} from '@angular/core';\n\nimport { SkyProgressIndicatorComponent } from '../progress-indicator.component';\nimport { SkyProgressIndicatorMessageType } from '../types/progress-indicator-message-type';\n\n/**\n * Displays a button to mark all items in the progress indicator as incomplete and set the\n * first item as the active item. The steps after the active item remain incomplete until\n * users reach them in their sequential order.\n */\n@Component({\n  selector: 'sky-progress-indicator-reset-button',\n  templateUrl: './progress-indicator-reset-button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorResetButtonComponent implements OnDestroy {\n  /**\n   * Whether to disable the reset button.\n   * @default false\n   */\n  @Input()\n  public set disabled(value: boolean | undefined) {\n    this.#_disabled = value;\n    this.#changeDetector.markForCheck();\n  }\n\n  public get disabled(): boolean | undefined {\n    return this.#_disabled;\n  }\n\n  /**\n   * The progress indicator component to associate with the reset button.\n   * @required\n   */\n  @Input()\n  public progressIndicator: SkyProgressIndicatorComponent | undefined;\n\n  /**\n   * Fires when users select the reset button that marks all items as incomplete and sets the\n   * first item as the active item.\n   */\n  @Output()\n  public resetClick = new EventEmitter<void>();\n\n  #_disabled: boolean | undefined;\n  #changeDetector: ChangeDetectorRef;\n\n  constructor(changeDetector: ChangeDetectorRef) {\n    this.#changeDetector = changeDetector;\n  }\n\n  public ngOnDestroy(): void {\n    this.resetClick.complete();\n  }\n\n  public onClick(): void {\n    this.resetClick.emit();\n\n    this.progressIndicator?.sendMessage({\n      type: SkyProgressIndicatorMessageType.Reset,\n    });\n  }\n}\n","<button\n  class=\"sky-btn sky-btn-link\"\n  type=\"button\"\n  [disabled]=\"disabled\"\n  (click)=\"onClick()\"\n>\n  <ng-content />\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Specifies a header to display above the progress indicator.\n */\n@Component({\n  selector: 'sky-progress-indicator-title',\n  templateUrl: './progress-indicator-title.component.html',\n  styleUrls: ['./progress-indicator-title.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyProgressIndicatorTitleComponent {}\n","<div\n  aria-level=\"1\"\n  class=\"sky-progress-indicator-title\"\n  role=\"heading\"\n  [skyThemeClass]=\"{\n    'sky-font-heading-2': 'default',\n    'sky-font-heading-1': 'modern'\n  }\"\n>\n  <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyProgressIndicatorResourcesModule } from '../shared/sky-progress-indicator-resources.module';\n\nimport { SkyProgressIndicatorItemComponent } from './progress-indicator-item/progress-indicator-item.component';\nimport { SkyProgressIndicatorNavButtonClass } from './progress-indicator-nav-button/progress-indicator-nav-button-class.pipe';\nimport { SkyProgressIndicatorNavButtonDisabledPipe } from './progress-indicator-nav-button/progress-indicator-nav-button-disabled.pipe';\nimport { SkyProgressIndicatorNavButtonComponent } from './progress-indicator-nav-button/progress-indicator-nav-button.component';\nimport { SkyProgressIndicatorResetButtonComponent } from './progress-indicator-reset-button/progress-indicator-reset-button.component';\nimport { SkyProgressIndicatorMarkerClassPipe } from './progress-indicator-status-marker/progress-indicator-status-marker-class.pipe';\nimport { SkyProgressIndicatorStatusMarkerComponent } from './progress-indicator-status-marker/progress-indicator-status-marker.component';\nimport { SkyProgressIndicatorTitleComponent } from './progress-indicator-title/progress-indicator-title.component';\nimport { SkyProgressIndicatorComponent } from './progress-indicator.component';\n\n@NgModule({\n  declarations: [\n    SkyProgressIndicatorComponent,\n    SkyProgressIndicatorItemComponent,\n    SkyProgressIndicatorMarkerClassPipe,\n    SkyProgressIndicatorNavButtonClass,\n    SkyProgressIndicatorNavButtonDisabledPipe,\n    SkyProgressIndicatorNavButtonComponent,\n    SkyProgressIndicatorResetButtonComponent,\n    SkyProgressIndicatorStatusMarkerComponent,\n    SkyProgressIndicatorTitleComponent,\n  ],\n  imports: [\n    CommonModule,\n    SkyHelpInlineModule,\n    SkyIconModule,\n    SkyProgressIndicatorResourcesModule,\n    SkyThemeModule,\n    SkyTrimModule,\n  ],\n  exports: [\n    SkyProgressIndicatorComponent,\n    SkyProgressIndicatorItemComponent,\n    SkyProgressIndicatorNavButtonComponent,\n    SkyProgressIndicatorResetButtonComponent,\n    SkyProgressIndicatorTitleComponent,\n  ],\n})\nexport class SkyProgressIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.SkyProgressIndicatorMarkerClassPipe","i1","i2","i3","i4","i5.SkyProgressIndicatorStatusMarkerComponent","i3.SkyProgressIndicatorStatusMarkerComponent","i1.SkyProgressIndicatorComponent","i4.SkyProgressIndicatorNavButtonClass","i5.SkyProgressIndicatorNavButtonDisabledPipe"],"mappings":"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"}