{"version":3,"file":"skyux-indicators.mjs","sources":["../../../../../libs/components/indicators/src/lib/modules/shared/sky-indicators-resources.module.ts","../../../../../libs/components/indicators/src/lib/modules/shared/indicator-icon-utility.ts","../../../../../libs/components/indicators/src/lib/modules/alert/alert.component.ts","../../../../../libs/components/indicators/src/lib/modules/alert/alert.component.html","../../../../../libs/components/indicators/src/lib/modules/alert/alert.module.ts","../../../../../libs/components/indicators/src/lib/modules/expansion-indicator/expansion-indicator.component.ts","../../../../../libs/components/indicators/src/lib/modules/expansion-indicator/expansion-indicator.component.html","../../../../../libs/components/indicators/src/lib/modules/expansion-indicator/expansion-indicator.module.ts","../../../../../libs/components/indicators/src/lib/modules/chevron/chevron.component.ts","../../../../../libs/components/indicators/src/lib/modules/chevron/chevron.component.html","../../../../../libs/components/indicators/src/lib/modules/chevron/chevron.module.ts","../../../../../libs/components/indicators/src/lib/modules/illustration/illustration-resolver.service.ts","../../../../../libs/components/indicators/src/lib/modules/illustration/illustration.component.ts","../../../../../libs/components/indicators/src/lib/modules/illustration/illustration.component.html","../../../../../libs/components/indicators/src/lib/modules/illustration/illustration.module.ts","../../../../../libs/components/indicators/src/lib/modules/key-info/key-info-label.component.ts","../../../../../libs/components/indicators/src/lib/modules/key-info/key-info-value.component.ts","../../../../../libs/components/indicators/src/lib/modules/key-info/key-info.component.ts","../../../../../libs/components/indicators/src/lib/modules/key-info/key-info.component.html","../../../../../libs/components/indicators/src/lib/modules/key-info/key-info.module.ts","../../../../../libs/components/indicators/src/lib/modules/label/label.component.ts","../../../../../libs/components/indicators/src/lib/modules/label/label.component.html","../../../../../libs/components/indicators/src/lib/modules/label/label.module.ts","../../../../../libs/components/indicators/src/lib/modules/status-indicator/status-indicator.component.ts","../../../../../libs/components/indicators/src/lib/modules/status-indicator/status-indicator.component.html","../../../../../libs/components/indicators/src/lib/modules/status-indicator/status-indicator.module.ts","../../../../../libs/components/indicators/src/lib/modules/text-highlight/text-highlight.directive.ts","../../../../../libs/components/indicators/src/lib/modules/text-highlight/text-highlight.module.ts","../../../../../libs/components/indicators/src/lib/modules/tokens/token.component.ts","../../../../../libs/components/indicators/src/lib/modules/tokens/token.component.html","../../../../../libs/components/indicators/src/lib/modules/tokens/types/tokens-message-type.ts","../../../../../libs/components/indicators/src/lib/modules/tokens/tokens.component.ts","../../../../../libs/components/indicators/src/lib/modules/tokens/tokens.component.html","../../../../../libs/components/indicators/src/lib/modules/tokens/tokens.module.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-adapter.service.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait.component.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait.component.html","../../../../../libs/components/indicators/src/lib/modules/wait/wait.module.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page.component.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page.component.html","../../../../../libs/components/indicators/src/lib/modules/wait/wait.service.ts","../../../../../libs/components/indicators/src/skyux-indicators.ts"],"sourcesContent":["/* istanbul ignore file */\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-indicators' 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_alert_close: { message: 'Close the alert' },\n    skyux_alert_sr_attention: { message: 'Attention:' },\n    skyux_alert_sr_caution: { message: 'Caution:' },\n    skyux_alert_sr_completed: { message: 'Completed:' },\n    skyux_alert_sr_danger: { message: 'Danger:' },\n    skyux_alert_sr_error: { message: 'Error:' },\n    skyux_alert_sr_important_info: { message: 'Important information:' },\n    skyux_alert_sr_important_warning: { message: 'Important warning:' },\n    skyux_alert_sr_success: { message: 'Success:' },\n    skyux_alert_sr_warning: { message: 'Warning:' },\n    skyux_help_inline_button_title: { message: 'Show help content' },\n    skyux_label_sr_attention: { message: 'Attention:' },\n    skyux_label_sr_caution: { message: 'Caution:' },\n    skyux_label_sr_completed: { message: 'Completed:' },\n    skyux_label_sr_danger: { message: 'Danger:' },\n    skyux_label_sr_error: { message: 'Error:' },\n    skyux_label_sr_important_info: { message: 'Important information:' },\n    skyux_label_sr_important_warning: { message: 'Important warning:' },\n    skyux_label_sr_success: { message: 'Success:' },\n    skyux_label_sr_warning: { message: 'Warning:' },\n    skyux_status_indicator_sr_attention: { message: 'Attention:' },\n    skyux_status_indicator_sr_caution: { message: 'Caution:' },\n    skyux_status_indicator_sr_completed: { message: 'Completed:' },\n    skyux_status_indicator_sr_danger: { message: 'Danger:' },\n    skyux_status_indicator_sr_error: { message: 'Error:' },\n    skyux_status_indicator_sr_important_info: {\n      message: 'Important information:',\n    },\n    skyux_status_indicator_sr_important_warning: {\n      message: 'Important warning:',\n    },\n    skyux_status_indicator_sr_success: { message: 'Success:' },\n    skyux_status_indicator_sr_warning: { message: 'Warning:' },\n    skyux_tokens_dismiss_button_default_label: { message: 'Remove ' },\n    skyux_tokens_dismiss_button_title: { message: 'Remove item' },\n    skyux_tokens_token_dismissed: { message: '{0} removed' },\n    skyux_wait_aria_alt_text: { message: 'Loading.' },\n    skyux_wait_blocking_aria_alt_text: { message: 'Loading. Please wait.' },\n    skyux_wait_page_aria_alt_text: { message: 'Page loading.' },\n    skyux_wait_page_blocking_aria_alt_text: {\n      message: 'Page loading. Please wait.',\n    },\n    skyux_wait_screen_reader_completed_text: { message: 'Loading complete.' },\n    skyux_wait_page_screen_reader_completed_text: {\n      message: 'Page loading complete.',\n    },\n  },\n  'FR-CA': {\n    skyux_alert_close: { message: 'Fermer l’alerte' },\n    skyux_alert_sr_attention: { message: 'Attention :' },\n    skyux_alert_sr_caution: { message: 'Mise en garde :' },\n    skyux_alert_sr_completed: { message: 'Terminé :' },\n    skyux_alert_sr_danger: { message: 'Danger :' },\n    skyux_alert_sr_error: { message: 'Erreur :' },\n    skyux_alert_sr_important_info: { message: 'Information importante :' },\n    skyux_alert_sr_important_warning: { message: 'Avertissement important :' },\n    skyux_alert_sr_success: { message: 'Réussi :' },\n    skyux_alert_sr_warning: { message: 'Avertissement :' },\n    skyux_help_inline_button_title: {\n      message: 'Afficher le contenu de l’aide',\n    },\n    skyux_label_sr_attention: { message: 'Attention :' },\n    skyux_label_sr_caution: { message: 'Mise en garde :' },\n    skyux_label_sr_completed: { message: 'Terminé :' },\n    skyux_label_sr_danger: { message: 'Danger :' },\n    skyux_label_sr_error: { message: 'Erreur :' },\n    skyux_label_sr_important_info: { message: 'Information importante :' },\n    skyux_label_sr_important_warning: { message: 'Avertissement important :' },\n    skyux_label_sr_success: { message: 'Réussi :' },\n    skyux_label_sr_warning: { message: 'Avertissement :' },\n    skyux_status_indicator_sr_attention: { message: 'Attention :' },\n    skyux_status_indicator_sr_caution: { message: 'Mise en garde :' },\n    skyux_status_indicator_sr_completed: { message: 'Terminé :' },\n    skyux_status_indicator_sr_danger: { message: 'Danger :' },\n    skyux_status_indicator_sr_error: { message: 'Erreur :' },\n    skyux_status_indicator_sr_important_info: {\n      message: 'Information importante :',\n    },\n    skyux_status_indicator_sr_important_warning: {\n      message: 'Avertissement important :',\n    },\n    skyux_status_indicator_sr_success: { message: 'Réussi :' },\n    skyux_status_indicator_sr_warning: { message: 'Avertissement :' },\n    skyux_tokens_dismiss_button_default_label: { message: 'Retirer ' },\n    skyux_tokens_dismiss_button_title: { message: 'Retirer l’article' },\n    skyux_tokens_token_dismissed: { message: '{0} retiré' },\n    skyux_wait_aria_alt_text: { message: 'Chargement en cours.' },\n    skyux_wait_blocking_aria_alt_text: {\n      message: 'Chargement en cours. Veuillez patienter.',\n    },\n    skyux_wait_page_aria_alt_text: {\n      message: 'Chargement de la page en cours.',\n    },\n    skyux_wait_page_blocking_aria_alt_text: {\n      message: 'Chargement de la page en cours. Veuillez patienter.',\n    },\n    skyux_wait_screen_reader_completed_text: { message: 'Chargement terminé.' },\n    skyux_wait_page_screen_reader_completed_text: {\n      message: 'Chargement de la page terminé.',\n    },\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 SkyIndicatorsResourcesModule {}\n","import { SkyIndicatorIconType } from './indicator-icon-type';\n\n/**\n * @internal\n */\nexport class SkyIndicatorIconUtility {\n  public static getIconNameForType(\n    indicatorType: SkyIndicatorIconType,\n  ): string {\n    let icon: string;\n\n    switch (indicatorType) {\n      case 'danger':\n      case 'warning':\n        icon = 'warning';\n        break;\n      case 'info':\n        icon = 'info';\n        break;\n      case 'success':\n        icon = 'success';\n        break;\n    }\n\n    return icon;\n  }\n}\n","import {\n  AfterViewChecked,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Subscription } from 'rxjs';\n\nimport { SkyIndicatorDescriptionType } from '../shared/indicator-description-type';\nimport { SkyIndicatorIconType } from '../shared/indicator-icon-type';\nimport { SkyIndicatorIconUtility } from '../shared/indicator-icon-utility';\n\nconst ALERT_TYPE_DEFAULT = 'warning';\n\n@Component({\n  selector: 'sky-alert',\n  styleUrls: [\n    './alert.default.component.scss',\n    './alert.modern.component.scss',\n  ],\n  templateUrl: './alert.component.html',\n  hostDirectives: [SkyThemeComponentClassDirective],\n  standalone: false,\n})\nexport class SkyAlertComponent implements AfterViewChecked, OnInit, OnDestroy {\n  /**\n   * The style for the alert, which determines the icon and background color.\n   * The valid options are `danger`, `info`, `success`, and `warning`.\n   * @default \"warning\"\n   */\n  @Input()\n  public set alertType(value: SkyIndicatorIconType | undefined) {\n    if (value !== this.alertTypeOrDefault) {\n      this.alertTypeOrDefault = value || ALERT_TYPE_DEFAULT;\n      this.#updateAlertIcon();\n    }\n  }\n\n  /**\n   * Whether to include a close button for users to dismiss the alert.\n   * @default false\n   */\n  @Input()\n  public closeable: boolean | undefined;\n\n  /**\n   * Whether the alert is closed.\n   * @default false\n   */\n  @Input()\n  public closed: boolean | undefined;\n\n  /**\n   * The predefined text to be read by screen readers for users who cannot see the alert icon.\n   * This property is optional but will be required in future versions of SKY UX.\n   */\n  @Input()\n  public set descriptionType(value: SkyIndicatorDescriptionType | undefined) {\n    this.#_descriptionType = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get descriptionType(): SkyIndicatorDescriptionType | undefined {\n    return this.#_descriptionType;\n  }\n\n  /**\n   * The text to be read by screen readers for users who cannot see\n   * the indicator icon when `descriptionType` is `custom`.\n   */\n  @Input()\n  public set customDescription(value: string | undefined) {\n    this.#_customDescription = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get customDescription(): string | undefined {\n    return this.#_customDescription;\n  }\n\n  /**\n   * Fires when users close the alert.\n   */\n  @Output()\n  public closedChange = new EventEmitter<boolean>();\n\n  public iconName: string | undefined;\n\n  public alertTypeOrDefault: SkyIndicatorIconType = ALERT_TYPE_DEFAULT;\n\n  public descriptionComputed: string | undefined;\n\n  #_descriptionType: SkyIndicatorDescriptionType | undefined;\n\n  #_customDescription: string | undefined;\n\n  #descriptionTypeResourceSubscription: Subscription | undefined;\n  #descriptionTypeWarned: boolean | undefined;\n\n  #resources = inject(SkyLibResourcesService);\n  #logSvc = inject(SkyLogService);\n\n  public ngOnInit(): void {\n    this.#updateAlertIcon();\n  }\n\n  public ngAfterViewChecked(): void {\n    if (!this.descriptionType && !this.#descriptionTypeWarned) {\n      this.#logSvc.deprecated('SkyAlertComponent without `descriptionType`', {\n        deprecationMajorVersion: 8,\n        replacementRecommendation:\n          'Always specify a `descriptionType` property.',\n      });\n\n      this.#descriptionTypeWarned = true;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.#unsubscribe();\n  }\n\n  public close(): void {\n    this.closed = true;\n    this.closedChange.emit(true);\n  }\n\n  #updateAlertIcon(): void {\n    this.iconName = SkyIndicatorIconUtility.getIconNameForType(\n      this.alertTypeOrDefault,\n    );\n  }\n\n  #updateDescriptionComputed(): void {\n    this.#unsubscribe();\n\n    if (this.descriptionType) {\n      switch (this.descriptionType) {\n        case 'none':\n          this.descriptionComputed = undefined;\n          break;\n        case 'custom':\n          this.descriptionComputed = this.customDescription;\n          break;\n        default:\n          this.#descriptionTypeResourceSubscription = this.#resources\n            .getString(\n              'skyux_alert_sr_' + this.descriptionType.replace(/-/g, '_'),\n            )\n            .subscribe((value) => {\n              this.descriptionComputed = value;\n            });\n\n          break;\n      }\n    } else {\n      this.descriptionComputed = undefined;\n    }\n  }\n\n  #unsubscribe(): void {\n    if (this.#descriptionTypeResourceSubscription) {\n      this.#descriptionTypeResourceSubscription.unsubscribe();\n      this.#descriptionTypeResourceSubscription = undefined;\n    }\n  }\n}\n","<div\n  class=\"sky-alert\"\n  role=\"alert\"\n  [skyThemeClass]=\"{\n    'sky-rounded-corners': 'default',\n    'sky-box sky-elevation-1': 'modern'\n  }\"\n  [hidden]=\"closed\"\n  [ngClass]=\"{\n    'sky-alert-info': alertTypeOrDefault === 'info',\n    'sky-alert-success': alertTypeOrDefault === 'success',\n    'sky-alert-warning': alertTypeOrDefault === 'warning',\n    'sky-alert-danger': alertTypeOrDefault === 'danger',\n    'sky-alert-closeable': closeable\n  }\"\n>\n  <div *skyThemeIf=\"'modern'\" aria-hidden=\"true\" class=\"sky-alert-icon\">\n    <sky-icon iconSize=\"xxl\" variant=\"solid\" [iconName]=\"iconName\" />\n  </div>\n  <div *skyThemeIf=\"'default'\" aria-hidden=\"true\" class=\"sky-alert-icon\">\n    <sky-icon variant=\"solid\" [iconName]=\"iconName\" />\n  </div>\n  @if (descriptionComputed) {\n    <span class=\"sky-screen-reader-only\">\n      {{ descriptionComputed }}\n    </span>\n  }\n  <div class=\"sky-alert-content\">\n    <ng-content />\n  </div>\n  <button\n    class=\"sky-alert-close\"\n    type=\"button\"\n    [attr.aria-label]=\"'skyux_alert_close' | skyLibResources\"\n    [hidden]=\"!closeable\"\n    (click)=\"close()\"\n  >\n    <span aria-hidden=\"true\">\n      <sky-icon iconName=\"close\" />\n    </span>\n  </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyAlertComponent } from './alert.component';\n\n@NgModule({\n  declarations: [SkyAlertComponent],\n  imports: [\n    CommonModule,\n    SkyIconModule,\n    SkyIndicatorsResourcesModule,\n    SkyThemeModule,\n  ],\n  exports: [SkyAlertComponent],\n})\nexport class SkyAlertModule {}\n","import { Component, Input } from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\n/**\n * Displays a chevron icon.\n * @internal\n */\n@Component({\n  selector: 'sky-expansion-indicator',\n  styleUrls: ['./expansion-indicator.component.scss'],\n  templateUrl: './expansion-indicator.component.html',\n  hostDirectives: [SkyThemeComponentClassDirective],\n  standalone: false,\n})\nexport class SkyExpansionIndicatorComponent {\n  /**\n   * The direction that the chevron points, which can be up or down.\n   */\n  @Input()\n  public set direction(value: string | undefined) {\n    /* istanbul ignore else */\n    if (value !== this.directionOrDefault) {\n      this.directionOrDefault = value ? value : 'up';\n    }\n  }\n\n  public directionOrDefault = 'up';\n}\n","<div\n  aria-hidden=\"true\"\n  class=\"sky-expansion-indicator\"\n  [ngClass]=\"['sky-expansion-indicator-' + directionOrDefault]\"\n>\n  <span class=\"sky-expansion-indicator-glyph-container\">\n    <i class=\"sky-expansion-indicator-part sky-expansion-indicator-left\"> </i>\n    <i class=\"sky-expansion-indicator-part sky-expansion-indicator-right\"> </i>\n  </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyExpansionIndicatorComponent } from './expansion-indicator.component';\n\n@NgModule({\n  declarations: [SkyExpansionIndicatorComponent],\n  imports: [CommonModule, SkyThemeModule],\n  exports: [SkyExpansionIndicatorComponent],\n})\nexport class SkyExpansionIndicatorModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\n/**\n * Creates an accessible button that wraps the chevron icon.\n * @internal\n */\n@Component({\n  selector: 'sky-chevron',\n  styleUrls: [\n    './chevron.default.component.scss',\n    './chevron.modern.component.scss',\n  ],\n  templateUrl: './chevron.component.html',\n  hostDirectives: [SkyThemeComponentClassDirective],\n  standalone: false,\n})\nexport class SkyChevronComponent {\n  /**\n   * The element whose contents are controlled by the chevron.\n   * This sets the chevron's `aria-controls` attribute\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n   * For more information about the `aria-controls` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-controls).\n   */\n  @Input()\n  public ariaControls: string | undefined;\n\n  /**\n   * The ARIA label for the chevron. This sets the chevron's `aria-label` attribute to provide a text equivalent for screen readers\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n   * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n   */\n  @Input()\n  public ariaLabel: string | undefined;\n\n  /**\n   * The direction that the chevron points, which can be up or down.\n   */\n  @Input()\n  public set direction(value: string | undefined) {\n    /* istanbul ignore else */\n    if (value !== this.directionOrDefault) {\n      this.directionOrDefault = value ? value : 'up';\n      /* istanbul ignore else */\n      if (this.directionOrDefault === 'up') {\n        this.ariaExpanded = true;\n      } else if (this.directionOrDefault === 'down') {\n        this.ariaExpanded = false;\n      }\n    }\n  }\n\n  /**\n   * Whether to disable the chevron button.\n   */\n  @Input()\n  public disabled = false;\n\n  /**\n   * Fires when the direction of the chevron changes.\n   */\n  @Output()\n  public directionChange = new EventEmitter<string>();\n\n  public ariaExpanded = true;\n\n  public directionOrDefault = 'up';\n\n  public chevronClick(event: Event): void {\n    event.stopPropagation();\n    this.direction = this.directionOrDefault === 'up' ? 'down' : 'up';\n    this.directionChange.emit(this.directionOrDefault);\n  }\n\n  public chevronKeyDown(event: KeyboardEvent): void {\n    /* istanbul ignore else */\n    if (event.key) {\n      switch (event.key.toLowerCase()) {\n        case ' ':\n        case 'enter':\n          this.direction = this.directionOrDefault === 'up' ? 'down' : 'up';\n          this.directionChange.emit(this.directionOrDefault);\n          event.preventDefault();\n          event.stopPropagation();\n          break;\n        default:\n          break;\n      }\n    }\n  }\n}\n","<button\n  class=\"sky-chevron\"\n  type=\"button\"\n  [attr.aria-controls]=\"ariaControls\"\n  [attr.aria-expanded]=\"ariaExpanded\"\n  [attr.aria-label]=\"ariaLabel\"\n  [disabled]=\"disabled\"\n  [ngClass]=\"['sky-chevron-' + directionOrDefault]\"\n  [skyThemeClass]=\"{\n    'sky-btn sky-btn-icon-borderless': 'modern'\n  }\"\n  (click)=\"chevronClick($event)\"\n  (keydown)=\"chevronKeyDown($event)\"\n>\n  <sky-expansion-indicator [direction]=\"directionOrDefault\" />\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyExpansionIndicatorModule } from '../expansion-indicator/expansion-indicator.module';\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyChevronComponent } from './chevron.component';\n\n/**\n * @internal\n */\n@NgModule({\n  declarations: [SkyChevronComponent],\n  imports: [\n    CommonModule,\n    SkyIndicatorsResourcesModule,\n    SkyThemeModule,\n    SkyExpansionIndicatorModule,\n  ],\n  exports: [SkyChevronComponent],\n})\nexport class SkyChevronModule {}\n","import { Injectable } from '@angular/core';\n\n/**\n * Resolves information about spot illustrations.\n */\n@Injectable()\nexport abstract class SkyIllustrationResolverService {\n  /**\n   * Resolves a URL for the specified illustration name.\n   */\n  public abstract resolveUrl(name: string): Promise<string>;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { catchError, from, of, switchMap } from 'rxjs';\n\nimport { SkyIllustrationResolverService } from './illustration-resolver.service';\nimport { SkyIllustrationSize } from './illustration-size';\n\nconst pixelSizes: Record<SkyIllustrationSize, number> = {\n  sm: 48,\n  md: 64,\n  lg: 80,\n  xl: 96,\n};\n\n/**\n * Displays a spot illustration at the specified size.\n */\n@Component({\n  selector: 'sky-illustration',\n  imports: [CommonModule],\n  templateUrl: './illustration.component.html',\n  styleUrls: [\n    './illustration.default.component.scss',\n    './illustration.modern.component.scss',\n  ],\n  hostDirectives: [SkyThemeComponentClassDirective],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyIllustrationComponent {\n  readonly #resolverSvc = inject(SkyIllustrationResolverService, {\n    optional: true,\n  });\n\n  /**\n   * The name of the illustration to display.\n   * @required\n   */\n  public readonly name = input.required<string>();\n\n  /**\n   * The size of the illustration.\n   * @required\n   */\n  public readonly size = input.required<SkyIllustrationSize>();\n\n  protected readonly url = toSignal(\n    toObservable(this.name).pipe(\n      switchMap((name) =>\n        this.#resolverSvc ? from(this.#resolverSvc.resolveUrl(name)) : of(''),\n      ),\n      catchError(() => of('')),\n    ),\n  );\n\n  protected readonly pixelSize = computed(() => pixelSizes[this.size()]);\n}\n","<img\n  alt=\"\"\n  class=\"sky-illustration-img\"\n  loading=\"lazy\"\n  [attr.data-sky-illustration-name]=\"name()\"\n  [height]=\"pixelSize()\"\n  [ngClass]=\"{\n    'sky-illustration-img-loaded': !!url()\n  }\"\n  [src]=\"url()\"\n  [width]=\"pixelSize()\"\n/>\n","import { NgModule } from '@angular/core';\n\nimport { SkyIllustrationComponent } from './illustration.component';\n\n@NgModule({\n  imports: [SkyIllustrationComponent],\n  exports: [SkyIllustrationComponent],\n})\nexport class SkyIllustrationModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a label to display in smaller text under or beside the value.\n * To display a help button beside the label, include a help button element, such as `sky-help-inline`,\n * in the `sky-key-info` element and a `sky-control-help` CSS class on that help button element.\n * @required\n */\n@Component({\n  selector: 'sky-key-info-label',\n  template: '<span skyTrim><ng-content /></span>',\n  standalone: false,\n})\nexport class SkyKeyInfoLabelComponent {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a value to display in larger, bold text.\n * @required\n */\n@Component({\n  selector: 'sky-key-info-value',\n  template: '<ng-content />',\n  standalone: false,\n})\nexport class SkyKeyInfoValueComponent {}\n","import { Component, Input, TemplateRef } from '@angular/core';\n\nimport { SkyKeyInfoLayoutType } from './key-info-layout-type';\n\n@Component({\n  selector: 'sky-key-info',\n  templateUrl: './key-info.component.html',\n  styleUrls: ['./key-info.component.scss'],\n  standalone: false,\n})\nexport class SkyKeyInfoComponent {\n  /**\n   * A help key that identifies the global help content to display. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n   * placed beside the key info. Clicking the button invokes global help as configured by the application.\n   */\n  @Input()\n  public helpKey: string | undefined;\n\n  /**\n   * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n   * button is added to the key info. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n   * when clicked using the specified content and optional title.\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  /**\n   * The layout for the key info. The vertical layout places the label under the\n   * value, while the horizontal layout places the label beside the value.\n   * @default \"vertical\"\n   */\n  @Input()\n  public layout: SkyKeyInfoLayoutType | undefined = 'vertical';\n}\n","<div\n  class=\"sky-key-info\"\n  [ngClass]=\"{\n    'sky-key-info-horizontal': layout === 'horizontal'\n  }\"\n>\n  <div class=\"sky-key-info-value sky-font-display-3\">\n    <ng-content select=\"sky-key-info-value\" />\n  </div>\n  <div class=\"sky-key-info-label sky-field-label sky-font-data-label\">\n    <span #label=\"skyId\" skyId><ng-content select=\"sky-key-info-label\" /></span\n    ><span class=\"sky-control-help-container\">\n      @if (helpPopoverContent || helpKey) {\n        <sky-help-inline\n          [labelledBy]=\"label.id\"\n          [helpKey]=\"helpKey\"\n          [popoverTitle]=\"helpPopoverTitle\"\n          [popoverContent]=\"helpPopoverContent\"\n        />\n      } @else {\n        <ng-content select=\".sky-control-help\" />\n      }\n    </span>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\n\nimport { SkyKeyInfoLabelComponent } from './key-info-label.component';\nimport { SkyKeyInfoValueComponent } from './key-info-value.component';\nimport { SkyKeyInfoComponent } from './key-info.component';\n\n@NgModule({\n  declarations: [\n    SkyKeyInfoComponent,\n    SkyKeyInfoLabelComponent,\n    SkyKeyInfoValueComponent,\n  ],\n  imports: [CommonModule, SkyTrimModule, SkyHelpInlineModule, SkyIdModule],\n  exports: [\n    SkyKeyInfoComponent,\n    SkyKeyInfoLabelComponent,\n    SkyKeyInfoValueComponent,\n  ],\n})\nexport class SkyKeyInfoModule {}\n","import {\n  AfterViewChecked,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n  inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subscription } from 'rxjs/internal/Subscription';\n\nimport { SkyIndicatorDescriptionType } from '../shared/indicator-description-type';\nimport { SkyIndicatorIconUtility } from '../shared/indicator-icon-utility';\n\nimport { SkyLabelType } from './label-type';\n\nconst LABEL_TYPE_DEFAULT: SkyLabelType = 'info';\n\n@Component({\n  selector: 'sky-label',\n  templateUrl: './label.component.html',\n  styleUrls: ['./label.component.scss'],\n  standalone: false,\n})\nexport class SkyLabelComponent implements AfterViewChecked, OnDestroy, OnInit {\n  /**\n   * The type of label to display.\n   * @default 'info'\n   */\n  @Input()\n  public set labelType(value: SkyLabelType | undefined) {\n    this.labelTypeOrDefault = value === undefined ? LABEL_TYPE_DEFAULT : value;\n\n    this.#updateIcon();\n  }\n\n  /**\n   * The predefined text to be read by screen readers for users who cannot see the indicator icon.\n   * This property is optional but will be required in future versions of SKY UX.\n   */\n  @Input()\n  public set descriptionType(value: SkyIndicatorDescriptionType | undefined) {\n    this.#_descriptionType = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get descriptionType(): SkyIndicatorDescriptionType | undefined {\n    return this.#_descriptionType;\n  }\n\n  /**\n   * The text to be read by screen readers for users who cannot see\n   * the indicator icon when `descriptionType` is `custom`.\n   */\n  @Input()\n  public set customDescription(value: string | undefined) {\n    this.#_customDescription = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get customDescription(): string | undefined {\n    return this.#_customDescription;\n  }\n\n  public descriptionComputed: string | undefined;\n\n  public iconName: string | undefined;\n\n  public labelTypeOrDefault = LABEL_TYPE_DEFAULT;\n\n  #_descriptionType: SkyIndicatorDescriptionType | undefined;\n  #_customDescription: string | undefined;\n\n  #descriptionTypeResourceSubscription: Subscription | undefined;\n  #descriptionTypeWarned: boolean | undefined;\n\n  #changeDetector = inject(ChangeDetectorRef);\n  #resources = inject(SkyLibResourcesService);\n  #logSvc = inject(SkyLogService);\n\n  public ngOnInit(): void {\n    this.#updateIcon();\n  }\n\n  public ngAfterViewChecked(): void {\n    if (!this.descriptionType && !this.#descriptionTypeWarned) {\n      this.#logSvc.deprecated('SkyLabelComponent without `descriptionType`', {\n        deprecationMajorVersion: 8,\n        replacementRecommendation:\n          'Always specify a `descriptionType` property.',\n      });\n\n      this.#descriptionTypeWarned = true;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.#unsubscribe();\n  }\n\n  #updateIcon(): void {\n    this.iconName = SkyIndicatorIconUtility.getIconNameForType(\n      this.labelTypeOrDefault,\n    );\n  }\n\n  #updateDescriptionComputed(): void {\n    this.#unsubscribe();\n\n    if (this.descriptionType) {\n      switch (this.descriptionType) {\n        case 'none':\n          this.descriptionComputed = undefined;\n          break;\n        case 'custom':\n          this.descriptionComputed = this.customDescription;\n          break;\n        default:\n          this.#descriptionTypeResourceSubscription = this.#resources\n            .getString(\n              'skyux_label_sr_' + this.descriptionType.replace(/-/g, '_'),\n            )\n            .subscribe((value) => {\n              this.descriptionComputed = value;\n              this.#changeDetector.markForCheck();\n            });\n\n          break;\n      }\n    } else {\n      this.descriptionComputed = undefined;\n    }\n  }\n\n  #unsubscribe(): void {\n    if (this.#descriptionTypeResourceSubscription) {\n      this.#descriptionTypeResourceSubscription.unsubscribe();\n      this.#descriptionTypeResourceSubscription = undefined;\n    }\n  }\n}\n","<span class=\"sky-label\" [ngClass]=\"'sky-label-' + labelTypeOrDefault\">\n  <span class=\"sky-label-icon\">\n    <sky-icon variant=\"solid\" [iconName]=\"iconName\" />\n  </span>\n  @if (descriptionComputed) {\n    <span class=\"sky-screen-reader-only\">\n      {{ descriptionComputed }}\n    </span>\n  }\n  <span class=\"sky-label-text\">\n    <ng-content />\n  </span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyLabelComponent } from './label.component';\n\n@NgModule({\n  declarations: [SkyLabelComponent],\n  imports: [\n    CommonModule,\n    SkyIconModule,\n    SkyIndicatorsResourcesModule,\n    SkyThemeModule,\n  ],\n  exports: [SkyLabelComponent],\n})\nexport class SkyLabelModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n  inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyIndicatorDescriptionType } from '../shared/indicator-description-type';\nimport { SkyIndicatorIconType } from '../shared/indicator-icon-type';\nimport { SkyIndicatorIconUtility } from '../shared/indicator-icon-utility';\n\nconst INDICATOR_TYPE_DEFAULT: SkyIndicatorIconType = 'warning';\n/**\n * Displays status text with an icon matching the specified indicator type.\n * To display a help button beside the label, include a help button element, such as\n * `sky-help-inline`, in the `sky-status-indicator` element and a `sky-control-help`\n * CSS class on that help button element.\n */\n@Component({\n  selector: 'sky-status-indicator',\n  templateUrl: './status-indicator.component.html',\n  styleUrls: ['./status-indicator.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyStatusIndicatorComponent implements OnInit {\n  /**\n   * The style for the status indicator, which determines the icon.\n   * @default \"warning\"\n   */\n  @Input()\n  public set indicatorType(value: SkyIndicatorIconType) {\n    this.indicatorTypeOrDefault =\n      value === undefined ? INDICATOR_TYPE_DEFAULT : value;\n\n    this.#updateIcon();\n  }\n\n  /**\n   * The predefined text to be read by screen readers for users who\n   * cannot see the indicator icon.\n   * @required\n   */\n  @Input()\n  public set descriptionType(value: SkyIndicatorDescriptionType | undefined) {\n    this.#_descriptionType = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get descriptionType(): SkyIndicatorDescriptionType | undefined {\n    return this.#_descriptionType;\n  }\n\n  /**\n   * The text to be read by screen readers for users who cannot see\n   * the indicator icon when `descriptionType` is `custom`.\n   */\n  @Input()\n  public set customDescription(value: string | undefined) {\n    this.#_customDescription = value;\n    this.#updateDescriptionComputed();\n  }\n\n  public get customDescription(): string | undefined {\n    return this.#_customDescription;\n  }\n\n  /**\n   * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n   * button is added to the status indicator. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n   * when clicked using the specified content and optional title.\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  /**\n   * A help key that identifies the global help content to display. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n   * placed beside the status indicator label. Clicking the button invokes global help as configured by the application.\n   */\n  @Input()\n  public helpKey: string | undefined;\n\n  public descriptionComputed: string | undefined;\n\n  public iconName: string | undefined;\n\n  public indicatorTypeOrDefault: SkyIndicatorIconType = INDICATOR_TYPE_DEFAULT;\n\n  #changeDetector = inject(ChangeDetectorRef);\n  #resourcesSvc = inject(SkyLibResourcesService);\n\n  #_descriptionType: SkyIndicatorDescriptionType | undefined;\n  #_customDescription: string | undefined;\n\n  public ngOnInit(): void {\n    this.#updateIcon();\n  }\n\n  #updateIcon(): void {\n    this.iconName = SkyIndicatorIconUtility.getIconNameForType(\n      this.indicatorTypeOrDefault,\n    );\n  }\n\n  #updateDescriptionComputed(): void {\n    if (this.descriptionType) {\n      switch (this.descriptionType) {\n        case 'none':\n          this.descriptionComputed = '';\n          break;\n        case 'custom':\n          this.descriptionComputed = this.customDescription;\n          break;\n        default:\n          this.#resourcesSvc\n            .getString(\n              'skyux_status_indicator_sr_' +\n                this.descriptionType.replace(/-/g, '_'),\n            )\n            .subscribe((value) => {\n              this.descriptionComputed = value;\n              this.#changeDetector.markForCheck();\n            });\n\n          break;\n      }\n    } else {\n      this.descriptionComputed = undefined;\n    }\n  }\n}\n","@if (descriptionType) {\n  <div class=\"sky-status-indicator\">\n    <div\n      aria-hidden=\"true\"\n      class=\"sky-status-indicator-icon\"\n      [ngClass]=\"'sky-status-indicator-icon-' + indicatorTypeOrDefault\"\n    >\n      <sky-icon variant=\"solid\" [iconName]=\"iconName\" />\n    </div>\n    <div class=\"sky-status-indicator-message-wrapper\">\n      @if (descriptionComputed) {\n        <span class=\"sky-screen-reader-only\">\n          {{ descriptionComputed }}\n        </span>\n      }\n      <span #message=\"skyId\" skyId class=\"sky-status-indicator-message\" skyTrim\n        ><ng-content /></span\n      ><span class=\"sky-control-help-container\">\n        @if (helpPopoverContent || helpKey) {\n          <sky-help-inline\n            [labelledBy]=\"message.id\"\n            [helpKey]=\"helpKey\"\n            [popoverTitle]=\"helpPopoverTitle\"\n            [popoverContent]=\"helpPopoverContent\"\n          />\n        } @else {\n          <ng-content select=\".sky-control-help\" />\n        }\n      </span>\n    </div>\n  </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyStatusIndicatorComponent } from './status-indicator.component';\n\n@NgModule({\n  declarations: [SkyStatusIndicatorComponent],\n  imports: [\n    CommonModule,\n    SkyHelpInlineModule,\n    SkyIconModule,\n    SkyIdModule,\n    SkyIndicatorsResourcesModule,\n    SkyThemeModule,\n    SkyTrimModule,\n  ],\n  exports: [SkyStatusIndicatorComponent],\n})\nexport class SkyStatusIndicatorModule {}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  SimpleChanges,\n  inject,\n} from '@angular/core';\nimport { SkyMutationObserverService } from '@skyux/core';\n\nconst CLASS_NAME = 'sky-highlight-mark';\nconst SPECIAL_CHAR_REGEX = /[-/\\\\^$*+?.()|[\\]{}]/g;\n\nfunction markNode(node: Text, searchRegex: RegExp): number {\n  // The search regular expression is reused across calls to markNode(), so reset\n  // it so it searches from the start of the string each time.\n  searchRegex.lastIndex = 0;\n\n  const text = node.nodeValue;\n\n  if (text) {\n    const match = searchRegex.exec(text);\n\n    if (match) {\n      // Split apart text node with mark tags in the middle on the search term.\n      const matchIndex = match.index;\n\n      const middle = node.splitText(matchIndex);\n      middle.splitText(searchRegex.lastIndex - matchIndex);\n      const middleClone = middle.cloneNode(true);\n\n      const markNode = document.createElement('mark');\n      markNode.className = CLASS_NAME;\n      markNode.appendChild(middleClone);\n\n      /* istanbul ignore else */\n      if (middle.parentNode) {\n        middle.parentNode.replaceChild(markNode, middle);\n      }\n\n      return 1;\n    }\n  }\n\n  return 0;\n}\n\nfunction markTextNodes(node: Node, searchRegex: RegExp): number {\n  if (node.nodeType === 3) {\n    return markNode(node as Text, searchRegex);\n  } else if (node.nodeType === 1 && node.childNodes) {\n    for (let i = 0; i < node.childNodes.length; i++) {\n      const childNode = node.childNodes[i];\n      i += markTextNodes(childNode, searchRegex);\n    }\n  }\n\n  return 0;\n}\n\nfunction removeHighlight(el: ElementRef): void {\n  const matchedElements = Array.from(\n    (el.nativeElement as Element).querySelectorAll(`mark.${CLASS_NAME}`),\n  );\n\n  if (matchedElements) {\n    for (const node of matchedElements) {\n      const parentNode = node.parentNode;\n\n      if (parentNode && node.firstChild) {\n        parentNode.replaceChild(node.firstChild, node);\n        parentNode.normalize();\n      }\n    }\n  }\n}\n\nfunction createSearchRegex(searchTerms: string[]): RegExp | undefined {\n  let searchRegex: RegExp | undefined;\n\n  if (searchTerms.length > 0) {\n    // Escape all the special regular expression characters by adding a\n    // preceding '\\' to each match.\n    searchTerms = searchTerms.map((searchTerm) =>\n      searchTerm.replace(SPECIAL_CHAR_REGEX, '\\\\$&'),\n    );\n\n    searchRegex = new RegExp(searchTerms.join('|'), 'gi');\n  }\n\n  return searchRegex;\n}\n\n/**\n * Highlights all matching text within the current DOM element.\n */\n@Directive({\n  selector: '[skyHighlight]',\n  standalone: true,\n})\nexport class SkyTextHighlightDirective\n  implements OnChanges, AfterViewInit, OnDestroy\n{\n  /**\n   * The text to highlight.\n   */\n  @Input()\n  public set skyHighlight(value: string | string[] | undefined) {\n    value = value || [];\n\n    if (Array.isArray(value)) {\n      this.#searchTerms = value.filter((item) => !!item);\n      // Reorder strings by their length in descending order to avoid missing matches\n      // that contain substrings of other matches.\n      this.#searchTerms.sort(function (a, b) {\n        return b.length - a.length;\n      });\n    } else {\n      this.#searchTerms = [value as string];\n    }\n  }\n\n  @HostBinding('attr.skyHighlight') public readonly highlight = true;\n\n  #existingHighlight = false;\n\n  #observer: MutationObserver | undefined;\n\n  #searchTerms: string[] = [];\n\n  #el = inject(ElementRef);\n  #observerSvc = inject(SkyMutationObserverService);\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes['skyHighlight'] && !changes['skyHighlight'].firstChange) {\n      this.#highlight();\n    }\n  }\n\n  public ngAfterViewInit(): void {\n    this.#observer = this.#observerSvc.create(() => {\n      this.#highlight();\n    });\n\n    this.#highlight();\n  }\n\n  public ngOnDestroy(): void {\n    this.#disconnectObserver();\n  }\n\n  #disconnectObserver(): void {\n    if (this.#observer) {\n      this.#observer.disconnect();\n    }\n  }\n\n  #highlight(): void {\n    this.#disconnectObserver();\n\n    if (this.#existingHighlight) {\n      removeHighlight(this.#el);\n    }\n\n    const node = this.#el.nativeElement;\n\n    if (node) {\n      const searchRegex = createSearchRegex(this.#searchTerms);\n\n      // mark all matched text in the DOM\n      if (searchRegex) {\n        markTextNodes(node, searchRegex);\n        this.#existingHighlight = true;\n      }\n    }\n\n    this.#observeDom();\n  }\n\n  #observeDom(): void {\n    if (this.#observer) {\n      const config = {\n        attributes: false,\n        childList: true,\n        characterData: true,\n        subtree: true,\n      };\n\n      this.#observer.observe(this.#el.nativeElement, config);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMutationObserverService } from '@skyux/core';\n\nimport { SkyTextHighlightDirective } from './text-highlight.directive';\n\n@NgModule({\n  imports: [SkyTextHighlightDirective],\n  exports: [SkyTextHighlightDirective],\n  providers: [SkyMutationObserverService],\n})\nexport class SkyTextHighlightModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  inject,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { take } from 'rxjs';\n\n@Component({\n  selector: 'sky-token',\n  templateUrl: './token.component.html',\n  styleUrls: ['./token.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyTokenComponent {\n  /**\n   * Whether to disable the token to prevent users from selecting it, dismissing it,\n   * or navigating to it with the arrow keys. When the token is disabled,\n   * users can still place focus on it using the `Tab` key.\n   * @default false\n   */\n  @Input()\n  public set disabled(value: boolean | undefined) {\n    this.#_disabled = !!value;\n  }\n\n  public get disabled(): boolean {\n    return this.#_disabled;\n  }\n\n  /**\n   * The ARIA label for the token's close button. This sets the button's `aria-label` to provide a text equivalent for screen readers\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n   * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n   * @default \"Remove item\"\n   */\n  @Input()\n  public ariaLabel: string | undefined;\n\n  /**\n   * Whether users can remove the token from the list by selecting the close button.\n   * @default true\n   */\n  @Input()\n  public set dismissible(value: boolean | undefined) {\n    this.#_dismissible = value !== false;\n  }\n\n  public get dismissible(): boolean {\n    return this.#_dismissible;\n  }\n\n  /**\n   * Whether users can place focus on the token using the `Tab`. This does not\n   * affect the ability to select the token, dismiss it, or navigate to it with the arrow keys.\n   * @default true\n   */\n  @Input()\n  public set focusable(value: boolean | undefined) {\n    this.tabIndex = value !== false ? 0 : -1;\n  }\n\n  /**\n   * Used by the tokens component to set the appropriate role for each token.\n   * @internal\n   */\n  @Input()\n  public role: string | undefined;\n\n  /**\n   * Fires when users click the close button.\n   */\n  @Output()\n  public dismiss = new EventEmitter<void>();\n\n  /**\n   * Fires when users place focus on the token by navigating to it with the `Tab` key.\n   */\n  @Output()\n  public tokenFocus = new EventEmitter<void>();\n\n  @ViewChild('actionButton', { read: ElementRef, static: true })\n  public actionButtonRef: ElementRef | undefined;\n\n  public isFocused = false;\n  public tokenActive = false;\n  public closeActive = false;\n  public tabIndex = 0;\n\n  #elementRef = inject(ElementRef);\n\n  readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n  readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n  #_disabled = false;\n  #_dismissible = true;\n\n  protected onFocusIn(): void {\n    if (!this.isFocused) {\n      this.tokenFocus.emit();\n      this.isFocused = true;\n    }\n  }\n\n  protected onFocusOut(event: FocusEvent): void {\n    this.isFocused = this.#elementRef.nativeElement.contains(\n      event.relatedTarget,\n    );\n  }\n\n  public dismissToken(event: Event): void {\n    event.stopPropagation();\n    this.#announceState(\n      'skyux_tokens_token_dismissed',\n      this.actionButtonRef?.nativeElement.textContent.trim(),\n    );\n    this.dismiss.emit();\n  }\n\n  public focusElement(): void {\n    this.actionButtonRef?.nativeElement.focus();\n  }\n\n  public setTokenActive(tokenActive: boolean): void {\n    this.tokenActive = tokenActive;\n  }\n\n  public setCloseActive(closeActive: boolean): void {\n    this.closeActive = closeActive;\n  }\n\n  #announceState(resourceString: string, ...args: any[]): void {\n    this.#resourcesSvc\n      .getString(resourceString, ...args)\n      .pipe(take(1))\n      .subscribe((internationalizedString) => {\n        this.#liveAnnouncerSvc.announce(internationalizedString);\n      });\n  }\n}\n","<div\n  class=\"sky-token sky-btn sky-btn-default\"\n  [attr.role]=\"role\"\n  [ngClass]=\"{\n    'sky-btn-disabled': disabled,\n    'sky-token-disabled': disabled,\n    'sky-token-dismissible': dismissible,\n    'sky-token-active': tokenActive && !closeActive,\n    'sky-token-focused': isFocused\n  }\"\n  (document:mouseup)=\"setTokenActive(false)\"\n  (focusin)=\"onFocusIn()\"\n  (focusout)=\"onFocusOut($event)\"\n  (mousedown)=\"setTokenActive(true)\"\n>\n  <span\n    class=\"sky-token-cell\"\n    [attr.role]=\"role === 'row' ? 'gridcell' : undefined\"\n  >\n    <button\n      #actionButton=\"skyId\"\n      class=\"sky-btn sky-btn-default sky-token-btn sky-token-btn-action\"\n      type=\"button\"\n      skyId\n      [attr.tabindex]=\"tabIndex\"\n      [disabled]=\"disabled\"\n      [ngClass]=\"{\n        'sky-btn-disabled': disabled\n      }\"\n    >\n      <ng-content />\n    </button>\n  </span>\n  @if (dismissible) {\n    <span\n      class=\"sky-token-cell\"\n      [attr.role]=\"role === 'row' ? 'gridcell' : undefined\"\n    >\n      <button\n        class=\"sky-btn sky-token-btn sky-token-btn-close\"\n        type=\"button\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-labelledby]=\"\n          !ariaLabel\n            ? screenReaderLabelDismiss.id + ' ' + actionButton.id\n            : undefined\n        \"\n        [attr.tabindex]=\"tabIndex\"\n        [attr.title]=\"\n          ariaLabel || ('skyux_tokens_dismiss_button_title' | skyLibResources)\n        \"\n        [disabled]=\"disabled\"\n        [ngClass]=\"{\n          'sky-btn-disabled': disabled,\n          'sky-token-btn-close-active': closeActive\n        }\"\n        (click)=\"dismissToken($event)\"\n        (document:mouseup)=\"setCloseActive(false)\"\n        (mousedown)=\"setCloseActive(true)\"\n      >\n        <sky-icon\n          class=\"sky-token-btn-close-icon\"\n          iconName=\"close\"\n          iconSize=\"s\"\n        />\n      </button>\n    </span>\n  }\n</div>\n<span\n  #screenReaderLabelDismiss=\"skyId\"\n  skyScreenReaderLabel\n  skyId\n  [createLabel]=\"dismissible && !ariaLabel\"\n>\n  {{ 'skyux_tokens_dismiss_button_default_label' | skyLibResources }}\n</span>\n","export enum SkyTokensMessageType {\n  /**\n   * Places focus on the last token in the list.\n   */\n  FocusLastToken = 0,\n\n  /**\n   * Places focus on the token that is currently selected.\n   */\n  FocusActiveToken = 1,\n\n  /**\n   * Places focus on the token before the currently selected token.\n   */\n  FocusPreviousToken = 2,\n\n  /**\n   * Places focus on the token after the currently selected token.\n   */\n  FocusNextToken = 3,\n\n  /**\n   * Removes the token that is currently selected from the list of tokens.\n   */\n  RemoveActiveToken = 4,\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  TrackByFunction,\n  ViewChildren,\n  inject,\n} from '@angular/core';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTokenComponent } from './token.component';\nimport { SkyToken } from './types/token';\nimport { SkyTokenSelectedEventArgs } from './types/token-selected-event-args';\nimport { SkyTokensMessage } from './types/tokens-message';\nimport { SkyTokensMessageType } from './types/tokens-message-type';\n\nconst DISPLAY_WITH_DEFAULT = 'name';\n\n/**\n * Creates a container that enables navigation between tokens using keyboard arrow keys.\n * This is useful when combined with other components where the <kbd>Tab</kbd> key is\n * reserved for other functions, such as the SKY UX Lookup component.\n */\n@Component({\n  selector: 'sky-tokens',\n  templateUrl: './tokens.component.html',\n  styleUrls: ['./tokens.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n    trigger('dismiss', [\n      transition(':enter', [\n        style({\n          opacity: 0,\n          width: 0,\n        }),\n        animate(\n          '150ms ease-in',\n          style({\n            opacity: 1,\n            width: '*',\n          }),\n        ),\n      ]),\n      transition(':leave', [\n        animate(\n          '150ms ease-in',\n          style({\n            opacity: 0,\n            width: 0,\n          }),\n        ),\n      ]),\n    ]),\n  ],\n  standalone: false,\n})\nexport class SkyTokensComponent implements OnDestroy {\n  /**\n   * Whether to disable the tokens list to prevent users from selecting tokens,\n   * dismissing tokens, or navigating through the list with the arrow keys. When the tokens list\n   * is disabled, users can still place focus on items in the list using the `Tab` key.\n   * @default false\n   */\n  @Input()\n  public set disabled(value: boolean | undefined) {\n    this.#_disabled = !!value;\n  }\n\n  public get disabled(): boolean {\n    return this.#_disabled;\n  }\n\n  /**\n   * Whether users can remove a token from the list by selecting a token's close button.\n   * @default true\n   */\n  @Input()\n  public set dismissible(value: boolean | undefined) {\n    this.#_dismissible = value !== false;\n  }\n\n  public get dismissible(): boolean {\n    return this.#_dismissible;\n  }\n\n  /**\n   * The token property to display for each item in the tokens list.\n   * @default \"name\"\n   */\n  @Input()\n  public set displayWith(value: string | undefined) {\n    this.#_displayWith = value || DISPLAY_WITH_DEFAULT;\n  }\n\n  public get displayWith(): string {\n    return this.#_displayWith;\n  }\n\n  /**\n   * The token property that represents the token's unique identifier. When this property\n   * is set, animations are enabled when dismissing tokens.\n   */\n  @Input()\n  public trackWith: string | undefined;\n\n  /**\n   * Whether users can place focus on tokens in the list using the `Tab` key.\n   * This does not affect the ability of users to select tokens, dismiss tokens,\n   * or navigate through the list with the arrow keys.\n   * @default true\n   */\n  @Input()\n  public set focusable(value: boolean | undefined) {\n    this.#_focusable = value !== false;\n  }\n\n  public get focusable(): boolean {\n    return this.#_focusable;\n  }\n\n  /**\n   * The array of tokens to include in the list.\n   */\n  @Input()\n  public set tokens(value: SkyToken[] | undefined) {\n    this.#_tokens = value || [];\n    // The previous behavior was to set `this._tokens = value`, then emit `this._tokens`,\n    // which would emit `undefined` instead of a default value of `[]` returned by the\n    // get accessor when set to `undefined`. Emitting `value` instead of `this.#_tokensOrDefault`\n    // preserves that behavior.\n    this.tokensChange.emit(value);\n  }\n\n  public get tokens(): SkyToken[] {\n    return this.#_tokens;\n  }\n\n  /**\n   * The observable of `SkyTokensMessage` that can place focus on a\n   * particular token or remove the active token from the list.\n   */\n  @Input()\n  public set messageStream(value: Subject<SkyTokensMessage> | undefined) {\n    this.#_messageStream = value || new Subject<SkyTokensMessage>();\n    this.#initMessageStream();\n  }\n\n  public get messageStream(): Subject<SkyTokensMessage> {\n    return this.#_messageStream;\n  }\n\n  /**\n   * Fires when users navigate through the tokens list with the `Tab` key\n   * and attempt to move past the final token in the list.\n   */\n  @Output()\n  public focusIndexOverRange = new EventEmitter<void>();\n\n  /**\n   * Fires when users navigate through the tokens list with the `Tab` key\n   * and attempt to move before the first token in the list.\n   */\n  @Output()\n  public focusIndexUnderRange = new EventEmitter<void>();\n\n  /**\n   * Fires when users select a token in the list. This event emits the selected token.\n   */\n  @Output()\n  public tokenSelected = new EventEmitter<SkyTokenSelectedEventArgs>();\n\n  /**\n   * Fires when the tokens in the list change.\n   * This event emits an array of the tokens in the updated list.\n   */\n  @Output()\n  public tokensChange = new EventEmitter<SkyToken[]>();\n\n  /**\n   * Fires when all animations on the tokens are complete.\n   * @internal\n   */\n  @Output()\n  public tokensRendered = new EventEmitter<void>();\n\n  public get activeIndex(): number {\n    return this.#_activeIndex;\n  }\n\n  public set activeIndex(value: number) {\n    if (value >= this.#_tokens.length) {\n      value = this.#_tokens.length - 1;\n      this.focusIndexOverRange.emit();\n    }\n\n    if (value < 0) {\n      value = 0;\n      this.focusIndexUnderRange.emit();\n    }\n\n    this.#_activeIndex = value || 0;\n  }\n\n  public trackTokenFn: TrackByFunction<SkyToken>;\n\n  #_disabled = false;\n  #_dismissible = true;\n  #_focusable = true;\n  #_tokens: SkyToken[] = [];\n  #_displayWith = DISPLAY_WITH_DEFAULT;\n\n  @ViewChildren(SkyTokenComponent)\n  public tokenComponents: QueryList<SkyTokenComponent> | undefined;\n\n  #messageStreamSub: Subscription | undefined;\n  #ngUnsubscribe = new Subject<void>();\n\n  #changeDetector = inject(ChangeDetectorRef);\n\n  #_activeIndex = 0;\n  #_messageStream = new Subject<SkyTokensMessage>();\n\n  constructor() {\n    this.#initMessageStream();\n\n    // Angular calls the trackBy function without applying the component instance's scope.\n    // Use a fat-arrow function so the current component instance's trackWith property can\n    // be referenced.\n    this.trackTokenFn = (_index, item): unknown => {\n      if (this.trackWith) {\n        return item.value[this.trackWith];\n      }\n\n      return item;\n    };\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n  }\n\n  public onTokenClick(token: SkyToken): void {\n    if (this.disabled) {\n      return;\n    }\n\n    this.#notifyTokenSelected(token);\n  }\n\n  public animationDone(): void {\n    this.tokensRendered.emit();\n  }\n\n  public onTokenKeyDown(event: KeyboardEvent): void {\n    if (!this.disabled) {\n      switch (event.key) {\n        case 'Left':\n        case 'ArrowLeft':\n          this.#_messageStream.next({\n            type: SkyTokensMessageType.FocusPreviousToken,\n          });\n          event.preventDefault();\n          break;\n\n        case 'Right':\n        case 'ArrowRight':\n          this.#_messageStream.next({\n            type: SkyTokensMessageType.FocusNextToken,\n          });\n          event.preventDefault();\n          break;\n      }\n    }\n  }\n\n  public selectToken(token: SkyToken): void {\n    if (!this.disabled) {\n      this.#notifyTokenSelected(token);\n    }\n  }\n\n  public removeToken(token: SkyToken): void {\n    this.tokens = this.tokens.filter((t) => t !== token);\n    this.#changeDetector.detectChanges();\n  }\n\n  #focusPreviousToken(): void {\n    this.activeIndex--;\n    this.#focusActiveToken();\n  }\n\n  #focusNextToken(): void {\n    this.activeIndex++;\n    this.#focusActiveToken();\n  }\n\n  #focusLastToken(): void {\n    if (this.tokenComponents) {\n      this.activeIndex = this.tokenComponents.length - 1;\n      this.#focusActiveToken();\n    }\n  }\n\n  #focusActiveToken(): void {\n    if (this.tokenComponents) {\n      const tokenComponent = this.tokenComponents.find(\n        (_comp: SkyTokenComponent, i: number) => {\n          return this.activeIndex === i;\n        },\n      );\n\n      if (tokenComponent) {\n        tokenComponent.focusElement();\n      }\n    }\n  }\n\n  #removeActiveToken(): void {\n    const token = this.tokens[this.activeIndex];\n    if (token) {\n      this.removeToken(token);\n    }\n  }\n\n  #initMessageStream(): void {\n    if (this.#messageStreamSub) {\n      this.#messageStreamSub.unsubscribe();\n    }\n\n    this.#messageStreamSub = this.messageStream\n      .pipe(takeUntil(this.#ngUnsubscribe))\n      .subscribe((message: SkyTokensMessage) => {\n        switch (message.type) {\n          case SkyTokensMessageType.FocusLastToken:\n            this.#focusLastToken();\n            break;\n\n          case SkyTokensMessageType.FocusActiveToken:\n            this.#focusActiveToken();\n            break;\n\n          case SkyTokensMessageType.FocusPreviousToken:\n            this.#focusPreviousToken();\n            break;\n\n          case SkyTokensMessageType.FocusNextToken:\n            this.#focusNextToken();\n            break;\n\n          case SkyTokensMessageType.RemoveActiveToken:\n            this.#removeActiveToken();\n            break;\n        }\n      });\n  }\n\n  #notifyTokenSelected(token: SkyToken): void {\n    this.tokenSelected.emit({\n      token,\n    });\n  }\n}\n","<div\n  class=\"sky-tokens\"\n  [@blockAnimationOnLoad]\n  [attr.role]=\"tokens.length ? 'grid' : null\"\n>\n  <!--\n      The role must use square brackets otherwise Angular sets the native 'role'\n      attribute as well as the input attribute of the token, which fails accessibility rules.\n    -->\n  @for (token of tokens; track trackTokenFn(i, token); let i = $index) {\n    <sky-token\n      [@.disabled]=\"!trackWith\"\n      [@dismiss]\n      [disabled]=\"disabled\"\n      [dismissible]=\"dismissible\"\n      [focusable]=\"focusable\"\n      [role]=\"'row'\"\n      (@dismiss.done)=\"animationDone()\"\n      (dismiss)=\"removeToken(token)\"\n      (click)=\"onTokenClick(token)\"\n      (keydown)=\"onTokenKeyDown($event)\"\n      (keyup.enter)=\"selectToken(token); $event.preventDefault()\"\n      (tokenFocus)=\"activeIndex = i\"\n    >\n      {{ token.value[displayWith] }}\n    </sky-token>\n  }\n  <div class=\"sky-tokens-content\" [attr.role]=\"tokens.length ? 'row' : null\">\n    <div [attr.role]=\"tokens.length ? 'gridcell' : null\">\n      <ng-content />\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIdModule, SkyScreenReaderLabelDirective } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyTokenComponent } from './token.component';\nimport { SkyTokensComponent } from './tokens.component';\n\n@NgModule({\n  declarations: [SkyTokenComponent, SkyTokensComponent],\n  imports: [\n    CommonModule,\n    SkyIconModule,\n    SkyIndicatorsResourcesModule,\n    SkyIdModule,\n    SkyScreenReaderLabelDirective,\n  ],\n  exports: [SkyTokenComponent, SkyTokensComponent],\n})\nexport class SkyTokensModule {}\n","import {\n  ElementRef,\n  Injectable,\n  OnDestroy,\n  Renderer2,\n  RendererFactory2,\n} from '@angular/core';\n\nconst busyElements: Record<\n  string,\n  {\n    busyEl: HTMLElement | undefined;\n    listener: () => void;\n    restoreFocusElement?: HTMLElement | undefined;\n    restoreFocusCheckElement?: HTMLElement | undefined;\n  }\n> = {};\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyWaitAdapterService implements OnDestroy {\n  public static isPageWaitActive = false;\n\n  #focusableElements: HTMLElement[] | undefined;\n  #renderer: Renderer2;\n\n  constructor(rendererFactory: RendererFactory2) {\n    this.#renderer = rendererFactory.createRenderer(undefined, null);\n  }\n\n  public ngOnDestroy(): void {\n    this.#clearListeners();\n  }\n\n  public setWaitBounds(waitEl: ElementRef): void {\n    this.#renderer.setStyle(\n      waitEl.nativeElement.parentElement,\n      'position',\n      'relative',\n    );\n  }\n\n  public removeWaitBounds(waitEl: ElementRef): void {\n    this.#renderer.removeStyle(waitEl.nativeElement.parentElement, 'position');\n  }\n\n  public setBusyState(\n    waitEl: ElementRef,\n    isFullPage: boolean,\n    isWaiting: boolean,\n    isNonBlocking: boolean,\n    waitComponentId?: string,\n  ): void {\n    const busyEl = isFullPage\n      ? document.body\n      : waitEl.nativeElement.parentElement;\n\n    if (!isNonBlocking) {\n      if (isWaiting) {\n        let restoreFocusElement: HTMLElement | undefined = undefined;\n        let restoreFocusCheckElement: HTMLElement | undefined = undefined;\n        this.#renderer.setAttribute(busyEl, 'aria-busy', 'true');\n\n        // Remove focus from page when full page blocking wait\n        if (isFullPage || busyEl.contains(document.activeElement)) {\n          if (document.activeElement !== document.body) {\n            restoreFocusElement = document.activeElement as HTMLElement;\n          }\n          this.#clearDocumentFocus();\n          restoreFocusCheckElement = document.activeElement as HTMLElement;\n        }\n\n        if (isFullPage) {\n          SkyWaitAdapterService.isPageWaitActive = true;\n          const endListenerFunc = this.#renderer.listen(\n            document.body,\n            'keydown',\n            (event: KeyboardEvent) => {\n              /*istanbul ignore else */\n              if (event.key) {\n                /* istanbul ignore else */\n                if (event.key.toLowerCase() === 'tab') {\n                  (event.target as HTMLElement).blur();\n                  event.preventDefault();\n                  event.stopPropagation();\n                  event.stopImmediatePropagation();\n                  this.#clearDocumentFocus();\n                }\n              }\n            },\n          );\n\n          if (waitComponentId) {\n            busyElements[waitComponentId] = {\n              listener: endListenerFunc,\n              busyEl: undefined,\n              restoreFocusElement,\n              restoreFocusCheckElement,\n            };\n          }\n        } else {\n          const endListenerFunc = this.#renderer.listen(\n            busyEl,\n            'focusin',\n            (event: KeyboardEvent) => {\n              /* istanbul ignore else */\n              if (!isNonBlocking) {\n                event.preventDefault();\n                event.stopPropagation();\n                event.stopImmediatePropagation();\n\n                if (SkyWaitAdapterService.isPageWaitActive) {\n                  this.#clearDocumentFocus();\n                } else {\n                  // Propagate tab navigation if attempted into waited element\n                  const target = event.target as HTMLElement;\n\n                  if (target) {\n                    target.blur();\n                    this.#focusNextElement(target, this.#isShift(event));\n                  }\n                }\n              }\n            },\n          );\n\n          if (waitComponentId) {\n            busyElements[waitComponentId] = {\n              listener: endListenerFunc,\n              busyEl,\n              restoreFocusElement,\n              restoreFocusCheckElement,\n            };\n          }\n        }\n      } else {\n        this.#renderer.removeAttribute(busyEl, 'aria-busy');\n\n        if (isFullPage) {\n          SkyWaitAdapterService.isPageWaitActive = false;\n        }\n\n        if (waitComponentId && waitComponentId in busyElements) {\n          const busyElement = busyElements[waitComponentId];\n\n          busyElement.listener();\n\n          // If there is a restore focus element and the focus has not moved, restore focus.\n          if (busyElement.restoreFocusCheckElement === document.activeElement) {\n            busyElement.restoreFocusElement?.focus();\n          }\n\n          delete busyElements[waitComponentId];\n        }\n      }\n    }\n  }\n\n  #focusNextElement(targetElement: HTMLElement, shiftKey: boolean): void {\n    const focusable = this.#getFocusableElements();\n\n    // If shift tab, go in the other direction\n    const modifier = shiftKey ? -1 : 1;\n\n    // Find the next navigable element that isn't waiting\n    const startingIndex = focusable.indexOf(targetElement);\n    let curIndex = startingIndex + modifier;\n    while (\n      focusable[curIndex] &&\n      this.#isElementBusyOrHidden(focusable[curIndex])\n    ) {\n      curIndex += modifier;\n    }\n\n    if (\n      focusable[curIndex] &&\n      !this.#isElementBusyOrHidden(focusable[curIndex])\n    ) {\n      focusable[curIndex].focus();\n    } else {\n      // Try wrapping the navigation\n      /* istanbul ignore next */\n      /* sanity check */\n      curIndex = modifier > 0 ? 0 : focusable.length - 1;\n      while (\n        curIndex !== startingIndex &&\n        focusable[curIndex] &&\n        this.#isElementBusyOrHidden(focusable[curIndex])\n      ) {\n        /* istanbul ignore next */\n        /* sanity check */\n        curIndex += modifier;\n      }\n\n      /* istanbul ignore else */\n      /* sanity check */\n      if (\n        focusable[curIndex] &&\n        !this.#isElementBusyOrHidden(focusable[curIndex])\n      ) {\n        focusable[curIndex].focus();\n      } else {\n        // No valid target, wipe focus\n        this.#clearDocumentFocus();\n      }\n    }\n\n    // clear focusableElements list\n    this.#focusableElements = undefined;\n  }\n\n  #isShift(event: Event): boolean {\n    // Determine if shift+tab was used based on element order\n    const elements = this.#getFocusableElements().filter(\n      (elem) => !this.#isElementHidden(elem),\n    );\n\n    const previousInd = elements.indexOf((event as any).relatedTarget);\n    const currentInd = elements.indexOf(event.target as HTMLElement);\n\n    return (\n      previousInd === currentInd + 1 ||\n      (previousInd === 0 && currentInd === elements.length - 1) ||\n      previousInd > currentInd ||\n      !(event as any).relatedTarget\n    );\n  }\n\n  #isElementHidden(element: HTMLElement): boolean {\n    const style = window.getComputedStyle(element);\n    return style.display === 'none' || style.visibility === 'hidden';\n  }\n\n  #isElementBusyOrHidden(element: HTMLElement): boolean {\n    if (this.#isElementHidden(element)) {\n      return true;\n    }\n\n    for (const key of Object.keys(busyElements)) {\n      const parentElement = busyElements[key].busyEl;\n      if (parentElement && parentElement.contains(element)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  #clearDocumentFocus(): void {\n    const activeElement = document.activeElement as HTMLElement;\n\n    /* istanbul ignore else */\n    if (activeElement) {\n      activeElement.blur();\n    }\n\n    document.body.focus();\n  }\n\n  #getFocusableElements(): HTMLElement[] {\n    // Keep this cached so we can reduce queries\n    if (this.#focusableElements) {\n      return this.#focusableElements;\n    }\n\n    // Select all possible focusable elements\n    const focusableElements =\n      'a[href], ' +\n      'area[href], ' +\n      \"input:not([disabled]):not([tabindex='-1']), \" +\n      \"button:not([disabled]):not([tabindex='-1']), \" +\n      \"select:not([disabled]):not([tabindex='-1']), \" +\n      \"textarea:not([disabled]):not([tabindex='-1']), \" +\n      'iframe, object, embed, ' +\n      \"*[tabindex]:not([tabindex='-1']), \" +\n      '*[contenteditable=true]';\n\n    this.#focusableElements = Array.prototype.filter.call(\n      document.body.querySelectorAll(focusableElements),\n      (element: HTMLElement) => {\n        return (\n          element.offsetWidth > 0 ||\n          element.offsetHeight > 0 ||\n          element === document.activeElement\n        );\n      },\n    );\n    return this.#focusableElements;\n  }\n\n  #clearListeners(): void {\n    SkyWaitAdapterService.isPageWaitActive = false;\n    for (const key of Object.keys(busyElements)) {\n      busyElements[key].listener();\n      delete busyElements[key];\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  ElementRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  inject,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyWaitAdapterService } from './wait-adapter.service';\n\nlet nextId = 0;\n\n@Component({\n  selector: 'sky-wait',\n  templateUrl: './wait.component.html',\n  styleUrls: ['./wait.component.scss'],\n  providers: [SkyWaitAdapterService],\n  imports: [CommonModule, SkyIndicatorsResourcesModule],\n})\nexport class SkyWaitComponent implements OnInit, OnDestroy {\n  /**\n   * The ARIA label for the wait icon.\n   * This sets the icon's `aria-label` attribute to provide a text equivalent for screen readers\n   * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) when an element or page loads and when users tab to a wait icon.\n   * The default value varies based on whether the wait is for an element or a page and whether it is a blocking wait. For example, the default for a page-level blocking wait is \"Page loading. Please wait.\"\n   * For element-level waits, we recommend that consumers overwrite the default to describe the specific element.\n   * \"For more information, see the Design tab and the [WAI-ARIA `aria-label` definition](https://www.w3.org/TR/wai-aria/#aria-label).\n   */\n  @Input()\n  public set ariaLabel(value: string | undefined) {\n    this.#customAriaLabel = value;\n    this.#publishAriaLabel();\n  }\n\n  /**\n   * When set to `true`, wait indication appears on the parent element of the `sky-wait` component.\n   */\n  @Input()\n  public set isWaiting(value: boolean | undefined) {\n    if (!this.isFullPage) {\n      if (value) {\n        this.#adapterService.setWaitBounds(this.#elRef);\n      } else {\n        this.#adapterService.removeWaitBounds(this.#elRef);\n      }\n    }\n\n    this.#adapterService.setBusyState(\n      this.#elRef,\n      !!this.isFullPage,\n      !!value,\n      !!this.isNonBlocking,\n      this.#id,\n    );\n\n    if (value) {\n      this.#liveAnnouncer.announce(this.ariaLabelStream.getValue());\n    } else if (this.#_isWaiting) {\n      // NOTE: This should only happen if the wait was previously waiting and no longer is waiting.\n      this.#liveAnnouncer.announce(\n        this.screenReaderCompletedTextStream.getValue(),\n      );\n    }\n\n    this.#_isWaiting = value;\n  }\n\n  public get isWaiting(): boolean | undefined {\n    return this.#_isWaiting;\n  }\n\n  /**\n   * When set to `true`, wait indication appears on the page level instead of the\n   * parent element level. We recommend that you use the `beginBlockingPageWait` or\n   * `beginNonBlockingPageWait` functions of the `SkyWaitService` instead of setting this\n   * on the component level.\n   * @default false\n   */\n  @Input()\n  public set isFullPage(value: boolean | undefined) {\n    /* istanbul ignore else: untestable */\n    if (value) {\n      this.#adapterService.removeWaitBounds(this.#elRef);\n    } else if (this.isWaiting) {\n      this.#adapterService.setWaitBounds(this.#elRef);\n    }\n\n    this.#_isFullPage = value;\n    this.#publishAriaLabel();\n    this.#publishScreenReaderCompletedText();\n  }\n\n  public get isFullPage(): boolean | undefined {\n    return this.#_isFullPage;\n  }\n\n  /**\n   * When set to `true`, wait indication appears in the bottom left corner of the element\n   * instead of hiding the entire parent element.\n   * @default false\n   */\n  @Input()\n  public set isNonBlocking(value: boolean | undefined) {\n    this.#_isNonBlocking = value;\n    this.#publishAriaLabel();\n  }\n\n  public get isNonBlocking(): boolean | undefined {\n    return this.#_isNonBlocking;\n  }\n\n  /**\n   * Screen reader text [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) when the wait toggles off.\n   *  The default varies based on whether the wait is for an element or a page.\n   * For example, the default for a page-level wait is \"Page loading complete.\"\n   * For element-level waits, we recommend that consumers overwrite the default to describe the specific element.\n   * For more information, see the Design tab and the [WCAG documentation on status messages](https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html).\n   */\n  @Input()\n  public set screenReaderCompletedText(value: string | undefined) {\n    this.#customScreenReaderCompletedText = value;\n    this.#publishScreenReaderCompletedText();\n  }\n\n  public ariaLabelStream = new BehaviorSubject<string>('');\n  public ariaLiveText = '';\n  public screenReaderCompletedTextStream = new BehaviorSubject<string>('');\n\n  #customAriaLabel: string | undefined;\n  #customScreenReaderCompletedText: string | undefined;\n  #id = `sky-wait-${++nextId}`;\n  #ngUnsubscribe = new Subject<void>();\n\n  #_isFullPage: boolean | undefined;\n  #_isNonBlocking: boolean | undefined;\n  #_isWaiting: boolean | undefined;\n\n  readonly #adapterService = inject(SkyWaitAdapterService);\n  readonly #elRef = inject(ElementRef);\n  readonly #liveAnnouncer = inject(SkyLiveAnnouncerService);\n  readonly #resourceSvc = inject(SkyLibResourcesService);\n\n  public ngOnInit(): void {\n    this.#publishAriaLabel();\n    this.#publishScreenReaderCompletedText();\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n  }\n\n  #publishAriaLabel(): void {\n    if (this.#customAriaLabel) {\n      this.ariaLabelStream.next(this.#customAriaLabel);\n    } else {\n      const type = this.isFullPage ? '_page' : '';\n      const blocking = this.isNonBlocking ? '' : '_blocking';\n      const key = `skyux_wait${type}${blocking}_aria_alt_text`;\n      this.#resourceSvc\n        .getString(key)\n        .pipe(take(1), takeUntil(this.#ngUnsubscribe))\n        .subscribe((value) => {\n          this.ariaLabelStream.next(value);\n        });\n    }\n  }\n\n  #publishScreenReaderCompletedText(): void {\n    if (this.#customScreenReaderCompletedText) {\n      this.screenReaderCompletedTextStream.next(\n        this.#customScreenReaderCompletedText,\n      );\n    } else {\n      const type = this.isFullPage ? '_page' : '';\n      const key = `skyux_wait${type}_screen_reader_completed_text`;\n      this.#resourceSvc\n        .getString(key)\n        .pipe(take(1), takeUntil(this.#ngUnsubscribe))\n        .subscribe((value) => {\n          this.screenReaderCompletedTextStream.next(value);\n        });\n    }\n  }\n}\n","<div\n  class=\"sky-wait-container\"\n  [ngClass]=\"{\n    'sky-wait-full-page': isFullPage,\n    'sky-wait-non-blocking': isNonBlocking\n  }\"\n>\n  @if (isWaiting) {\n    <div\n      class=\"sky-wait-mask\"\n      role=\"progressbar\"\n      [attr.aria-label]=\"ariaLabelStream | async\"\n      [ngClass]=\"{\n        'sky-wait-mask-loading-fixed': isFullPage,\n        'sky-wait-mask-loading-non-blocking': isNonBlocking,\n        'sky-wait-mask-loading-blocking': !isNonBlocking\n      }\"\n    >\n      <div class=\"sky-wait\">\n        <div class=\"sky-wait-double-bounce1\"></div>\n        <div class=\"sky-wait-double-bounce2\"></div>\n      </div>\n    </div>\n  }\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { SkyWaitComponent } from './wait.component';\n\n@NgModule({\n  imports: [SkyWaitComponent],\n  exports: [SkyWaitComponent],\n})\nexport class SkyWaitModule {}\n","import { Component, Input } from '@angular/core';\n\nimport { SkyWaitComponent } from './wait.component';\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-wait-page',\n  templateUrl: './wait-page.component.html',\n  styleUrls: ['./wait-page.component.scss'],\n  imports: [SkyWaitComponent],\n})\nexport class SkyWaitPageComponent {\n  @Input()\n  public hasBlockingWait: boolean | undefined;\n\n  @Input()\n  public hasNonBlockingWait: boolean | undefined;\n}\n","<div class=\"sky-wait-page\">\n  <sky-wait\n    data-sky-id=\"page-wait-non-blocking\"\n    [isFullPage]=\"true\"\n    [isNonBlocking]=\"true\"\n    [isWaiting]=\"hasNonBlockingWait\"\n  />\n  <sky-wait\n    data-sky-id=\"page-wait-blocking\"\n    [isFullPage]=\"true\"\n    [isWaiting]=\"hasBlockingWait\"\n  />\n</div>\n","import {\n  ComponentRef,\n  EnvironmentInjector,\n  Injectable,\n  inject,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyDynamicComponentService } from '@skyux/core';\n\nimport { Observable, defer as observableDefer } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { SkyWaitPageComponent } from './wait-page.component';\n\nlet waitComponent: SkyWaitPageComponent | undefined;\nlet waitComponentRef: ComponentRef<SkyWaitPageComponent> | undefined;\nlet pageWaitBlockingCount = 0;\nlet pageWaitNonBlockingCount = 0;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SkyWaitService {\n  #environmentInjector = inject(EnvironmentInjector);\n  #windowSvc = inject(SkyAppWindowRef);\n  #dynamicComponentService = inject(SkyDynamicComponentService);\n\n  /**\n   * Starts a blocking page wait on the page.\n   */\n  public beginBlockingPageWait(): void {\n    this.#beginPageWait(true);\n  }\n\n  /**\n   * Starts a non-blocking page wait on the page.\n   */\n  public beginNonBlockingPageWait(): void {\n    this.#beginPageWait(false);\n  }\n\n  /**\n   * Ends a blocking page wait on the page. Blocking page wait indication\n   * is removed when all running blocking page waits are ended.\n   */\n  public endBlockingPageWait(): void {\n    this.#endPageWait(true);\n  }\n\n  /**\n   * Ends a non-blocking page wait on the page. Non-blocking page wait indication\n   * is removed when all running non-blocking page waits are ended.\n   */\n  public endNonBlockingPageWait(): void {\n    this.#endPageWait(false);\n  }\n\n  /**\n   * Clears all blocking and non-blocking page waits on the page.\n   */\n  public clearAllPageWaits(): void {\n    this.#clearPageWait(true);\n    this.#clearPageWait(false);\n  }\n\n  /**\n   * @internal\n   */\n  public dispose(): void {\n    if (waitComponent) {\n      waitComponent = undefined;\n      pageWaitBlockingCount = 0;\n      pageWaitNonBlockingCount = 0;\n      this.#dynamicComponentService.removeComponent(waitComponentRef);\n    }\n  }\n\n  /**\n   * Launches a page wait and automatically stops when the specific asynchronous event completes.\n   */\n  public blockingWrap<T>(observable: Observable<T>): Observable<T> {\n    return observableDefer(() => {\n      this.beginBlockingPageWait();\n      return observable.pipe(finalize(() => this.endBlockingPageWait()));\n    });\n  }\n\n  /**\n   * Launches a non-blocking page wait and automatically stops when the specific\n   * asynchronous event completes.\n   */\n  public nonBlockingWrap<T>(observable: Observable<T>): Observable<T> {\n    return observableDefer(() => {\n      this.beginNonBlockingPageWait();\n      return observable.pipe(finalize(() => this.endNonBlockingPageWait()));\n    });\n  }\n\n  #setWaitComponentProperties(isBlocking: boolean): void {\n    if (waitComponent) {\n      if (isBlocking) {\n        waitComponent.hasBlockingWait = true;\n        pageWaitBlockingCount++;\n      } else {\n        waitComponent.hasNonBlockingWait = true;\n        pageWaitNonBlockingCount++;\n      }\n    }\n  }\n\n  #beginPageWait(isBlocking: boolean): void {\n    if (!waitComponent) {\n      /*\n          Dynamic component creation needs to be done in a timeout to prevent ApplicationRef from\n          crashing when wait service is called in Angular lifecycle functions.\n      */\n      this.#windowSvc.nativeWindow.setTimeout(() => {\n        // Ensuring here that we recheck this after the setTimeout is over so that we don't clash\n        // with any other waits that are created.\n        if (!waitComponent) {\n          waitComponentRef = this.#dynamicComponentService.createComponent(\n            SkyWaitPageComponent,\n            {\n              environmentInjector: this.#environmentInjector,\n            },\n          );\n\n          waitComponent = waitComponentRef.instance;\n        }\n\n        this.#setWaitComponentProperties(isBlocking);\n      });\n    } else {\n      this.#setWaitComponentProperties(isBlocking);\n    }\n  }\n\n  #endPageWait(isBlocking: boolean): void {\n    /*\n        Needs to yield so that wait creation can finish\n        before it is dismissed in the event of a race.\n    */\n    this.#windowSvc.nativeWindow.setTimeout(() => {\n      if (waitComponent) {\n        if (isBlocking) {\n          if (pageWaitBlockingCount > 0) {\n            pageWaitBlockingCount--;\n          }\n\n          if (pageWaitBlockingCount < 1) {\n            waitComponent.hasBlockingWait = false;\n          }\n        } else {\n          if (pageWaitNonBlockingCount > 0) {\n            pageWaitNonBlockingCount--;\n          }\n\n          if (pageWaitNonBlockingCount < 1) {\n            waitComponent.hasNonBlockingWait = false;\n          }\n        }\n      }\n    });\n  }\n\n  #clearPageWait(isBlocking: boolean): void {\n    // Wait for the component to be created before clearing it.\n    this.#windowSvc.nativeWindow.setTimeout(() => {\n      if (waitComponent) {\n        if (isBlocking) {\n          pageWaitBlockingCount = 0;\n          waitComponent.hasBlockingWait = false;\n        } else {\n          pageWaitNonBlockingCount = 0;\n          waitComponent.hasNonBlockingWait = false;\n        }\n      }\n    });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3.SkyExpansionIndicatorComponent","i3","i4","i1.SkyTokenComponent","take","observableDefer"],"mappings":"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"}