{"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/**\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 =\n    SkyIndicatorIconUtility.getIconNameForType(ALERT_TYPE_DEFAULT);\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=\"xl\" 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 to render in an `img`.\n   */\n  public abstract resolveUrl(name: string): Promise<string>;\n\n  /**\n   * Resolves the `href` of the SVG element to reference in `use`.\n   * If both an `href` and a URL are resolved, the SVG with `href` will be rendered.\n   */\n  public resolveHref(name: string): Promise<string> {\n    return Promise.resolve('');\n  }\n\n  /**\n   * Gets the names of all available illustrations.\n   */\n  public getNames(): Promise<string[]> {\n    return Promise.resolve([]);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\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\n/**\n * Displays a spot illustration at the specified size.\n */\n@Component({\n  selector: 'sky-illustration',\n  imports: [],\n  templateUrl: './illustration.component.html',\n  styleUrls: ['./illustration.component.scss'],\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 svgHref = toSignal(\n    toObservable(this.name).pipe(\n      switchMap((name) =>\n        this.#resolverSvc ? from(this.#resolverSvc.resolveHref(name)) : of(''),\n      ),\n      catchError(() => of('')),\n    ),\n  );\n}\n","<div\n  [attr.data-sky-illustration-name]=\"name()\"\n  [class]=\"'sky-illustration-wrapper sky-illustration-' + size()\"\n>\n  @if (svgHref(); as svgHrefValue) {\n    <svg aria-hidden=\"true\" class=\"sky-illustration-svg\">\n      <use [attr.xlink:href]=\"svgHrefValue\" />\n    </svg>\n  } @else {\n    <img alt=\"\" loading=\"lazy\" class=\"sky-illustration-img\" [src]=\"url()\" />\n  }\n</div>\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 { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/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  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [SkyTrimModule],\n  selector: 'sky-key-info-label',\n  template: '<span skyTrim><ng-content /></span>',\n})\nexport class SkyKeyInfoLabelComponent {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Specifies a value to display in larger, bold text.\n * @required\n */\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'sky-key-info-value',\n  styleUrl: './key-info-value.component.scss',\n  template: '<ng-content />',\n  // Disable view encapsulation to reduce selector specificity, making it\n  // possible for users to override styles with font classes.\n  encapsulation: ViewEncapsulation.None,\n})\nexport class SkyKeyInfoValueComponent {}\n","import { NgClass } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\n\nimport { SkyKeyInfoLayoutType } from './key-info-layout-type';\n\n@Component({\n  imports: [NgClass, SkyHelpInlineModule, SkyIdModule],\n  selector: 'sky-key-info',\n  templateUrl: './key-info.component.html',\n  styleUrl: './key-info.component.scss',\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](https://developer.blackbaud.com/skyux/learn/develop/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\">\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 { NgModule } from '@angular/core';\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  imports: [\n    SkyKeyInfoComponent,\n    SkyKeyInfoLabelComponent,\n    SkyKeyInfoValueComponent,\n  ],\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 =\n    SkyIndicatorIconUtility.getIconNameForType(LABEL_TYPE_DEFAULT);\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](https://developer.blackbaud.com/skyux/learn/develop/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 = SkyIndicatorIconUtility.getIconNameForType(\n    INDICATOR_TYPE_DEFAULT,\n  );\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})\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 {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Injector,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  TrackByFunction,\n  ViewChildren,\n  afterNextRender,\n  inject,\n  signal,\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  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    this.#queueTokensRenderedEmit();\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  #tokensRenderedQueued = false;\n\n  readonly #changeDetector = inject(ChangeDetectorRef);\n  readonly #injector = inject(Injector);\n\n  #_activeIndex = 0;\n  #_messageStream = new Subject<SkyTokensMessage>();\n\n  /**\n   * Tracks whether the component has completed its initial render.\n   * Used to suppress enter animations on first load.\n   */\n  protected readonly animationReady = signal(false);\n\n  constructor() {\n    // Wait for Angular's animation scheduler to remove initial enter classes\n    // before enabling enter animations for future token changes.\n    afterNextRender({\n      read: () => {\n        requestAnimationFrame(() => {\n          this.animationReady.set(true);\n        });\n      },\n    });\n\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 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  /**\n   * Debounces the tokensRendered emit so that rapid token changes\n   * (e.g. bulk additions or removals) result in a single event.\n   */\n  #queueTokensRenderedEmit(): void {\n    if (this.#tokensRenderedQueued) {\n      return;\n    }\n\n    this.#tokensRenderedQueued = true;\n\n    afterNextRender(\n      () => {\n        this.#tokensRenderedQueued = false;\n        this.tokensRendered.emit();\n      },\n      {\n        injector: this.#injector,\n      },\n    );\n  }\n}\n","<div\n  class=\"sky-tokens\"\n  [class.sky-tokens-animation-ready]=\"animationReady()\"\n  [class.sky-tokens-animation-enabled]=\"trackWith\"\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      animate.enter=\"sky-token-enter\"\n      animate.leave=\"sky-token-leave\"\n      [disabled]=\"disabled\"\n      [dismissible]=\"dismissible\"\n      [focusable]=\"focusable\"\n      [role]=\"'row'\"\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.addClass(\n      waitEl.nativeElement.parentElement,\n      'sky-wait-element-active',\n    );\n  }\n\n  public removeWaitBounds(waitEl: ElementRef): void {\n    this.#renderer.removeClass(\n      waitEl.nativeElement.parentElement,\n      'sky-wait-element-active',\n    );\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","i4","i3","i1.SkyTokenComponent","take","observableDefer"],"mappings":"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"}