@skyux/indicators 14.3.6 → 14.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -546,11 +546,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
546
546
  */
547
547
  class SkyKeyInfoValueComponent {
548
548
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyKeyInfoValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
549
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyKeyInfoValueComponent, isStandalone: true, selector: "sky-key-info-value", ngImport: i0, template: '<ng-content />', isInline: true, styles: ["sky-key-info-value{font-family:BLKB Sans Condensed,Helvetica Neue Condensed,Arial Narrow;color:var(--sky-text-color-default);font-weight:600;font-size:22px}:host-context(.sky-theme-modern) sky-key-info-value{color:var(--sky-color-text-default);font-family:var(--sky-font-family-primary);font-size:var(--sky-font-size-display-3);font-weight:var(--sky-font-style-display-3);line-height:var(--sky-font-line_height-display-3)}.sky-theme-modern sky-key-info-value{color:var(--sky-color-text-default);font-family:var(--sky-font-family-primary);font-size:var(--sky-font-size-display-3);font-weight:var(--sky-font-style-display-3);line-height:var(--sky-font-line_height-display-3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
549
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyKeyInfoValueComponent, isStandalone: true, selector: "sky-key-info-value", ngImport: i0, template: '<ng-content />', isInline: true, styles: ["sky-key-info-value:not(.sky-theme-modern *){--sky-override-key-info-value-color: var(--sky-text-color-default);--sky-override-key-info-value-font-family: BLKB Sans Condensed, Helvetica Neue Condensed, Arial Narrow;--sky-override-key-info-value-font-size: 22px;--sky-override-key-info-value-font-weight: 600;--sky-override-key-info-value-line-height: normal}sky-key-info-value{color:var(--sky-override-key-info-value-color, var(--sky-color-text-default));font-family:var(--sky-override-key-info-value-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-key-info-value-font-size, var(--sky-font-size-display-3));font-weight:var(--sky-override-key-info-value-font-weight, var(--sky-font-style-display-3));line-height:var(--sky-override-key-info-value-line-height, var(--sky-font-line_height-display-3))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
550
550
  }
551
551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyKeyInfoValueComponent, decorators: [{
552
552
  type: Component,
553
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'sky-key-info-value', template: '<ng-content />', encapsulation: ViewEncapsulation.None, styles: ["sky-key-info-value{font-family:BLKB Sans Condensed,Helvetica Neue Condensed,Arial Narrow;color:var(--sky-text-color-default);font-weight:600;font-size:22px}:host-context(.sky-theme-modern) sky-key-info-value{color:var(--sky-color-text-default);font-family:var(--sky-font-family-primary);font-size:var(--sky-font-size-display-3);font-weight:var(--sky-font-style-display-3);line-height:var(--sky-font-line_height-display-3)}.sky-theme-modern sky-key-info-value{color:var(--sky-color-text-default);font-family:var(--sky-font-family-primary);font-size:var(--sky-font-size-display-3);font-weight:var(--sky-font-style-display-3);line-height:var(--sky-font-line_height-display-3)}\n"] }]
553
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'sky-key-info-value', template: '<ng-content />', encapsulation: ViewEncapsulation.None, styles: ["sky-key-info-value:not(.sky-theme-modern *){--sky-override-key-info-value-color: var(--sky-text-color-default);--sky-override-key-info-value-font-family: BLKB Sans Condensed, Helvetica Neue Condensed, Arial Narrow;--sky-override-key-info-value-font-size: 22px;--sky-override-key-info-value-font-weight: 600;--sky-override-key-info-value-line-height: normal}sky-key-info-value{color:var(--sky-override-key-info-value-color, var(--sky-color-text-default));font-family:var(--sky-override-key-info-value-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-key-info-value-font-size, var(--sky-font-size-display-3));font-weight:var(--sky-override-key-info-value-font-weight, var(--sky-font-style-display-3));line-height:var(--sky-override-key-info-value-line-height, var(--sky-font-line_height-display-3))}\n"] }]
554
554
  }] });
555
555
 
556
556
  class SkyKeyInfoComponent {
@@ -1 +1 @@
1
- {"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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"}
1
+ {"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":";;;;;;;;;;;;;;;;;;AAAA;AAEA;;;;;AAKG;AAQH,MAAM,SAAS,GAAoC;AACjD,IAAA,OAAO,EAAE;AACP,QAAA,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACjD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AACnD,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AACnD,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AAC7C,QAAA,oBAAoB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC3C,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;AACpE,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;AACnE,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,8BAA8B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;AAChE,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AACnD,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AACnD,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AAC7C,QAAA,oBAAoB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC3C,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;AACpE,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;AACnE,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,mCAAmC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AAC9D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC1D,QAAA,mCAAmC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AAC9D,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AACxD,QAAA,+BAA+B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AACtD,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,2CAA2C,EAAE;AAC3C,YAAA,OAAO,EAAE,oBAAoB;AAC9B,SAAA;AACD,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC1D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC1D,QAAA,yCAAyC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AACjE,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC7D,QAAA,4BAA4B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AACxD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AACjD,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;AACvE,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;AAC3D,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,4BAA4B;AACtC,SAAA;AACD,QAAA,uCAAuC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;AACzE,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACjD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AACpD,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAClD,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC9C,QAAA,oBAAoB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC7C,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;AACtE,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE;AAC1E,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtD,QAAA,8BAA8B,EAAE;AAC9B,YAAA,OAAO,EAAE,+BAA+B;AACzC,SAAA;AACD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AACpD,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAClD,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC9C,QAAA,oBAAoB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC7C,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;AACtE,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE;AAC1E,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,QAAA,sBAAsB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtD,QAAA,mCAAmC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC/D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACjE,QAAA,mCAAmC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAC7D,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AACzD,QAAA,+BAA+B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AACxD,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,0BAA0B;AACpC,SAAA;AACD,QAAA,2CAA2C,EAAE;AAC3C,YAAA,OAAO,EAAE,2BAA2B;AACrC,SAAA;AACD,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC1D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACjE,QAAA,yCAAyC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAClE,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;AACnE,QAAA,4BAA4B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AACvD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;AAC7D,QAAA,iCAAiC,EAAE;AACjC,YAAA,OAAO,EAAE,0CAA0C;AACpD,SAAA;AACD,QAAA,6BAA6B,EAAE;AAC7B,YAAA,OAAO,EAAE,iCAAiC;AAC3C,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,qDAAqD;AAC/D,SAAA;AACD,QAAA,uCAAuC,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;AAC3E,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,gCAAgC;AAC1C,SAAA;AACF,KAAA;CACF;AAED,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;AAE9C;;AAEG;MAIU,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAEZ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;AC7HD;;AAEG;MACU,uBAAuB,CAAA;IAC3B,OAAO,kBAAkB,CAC9B,aAAmC,EAAA;AAEnC,QAAA,IAAI,IAAY;QAEhB,QAAQ,aAAa;AACnB,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,SAAS;gBAChB;AACF,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,MAAM;gBACb;AACF,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,SAAS;gBAChB;;AAGJ,QAAA,OAAO,IAAI;IACb;AACD;;ACND,MAAM,kBAAkB,GAAG,SAAS;MAYvB,iBAAiB,CAAA;AAV9B,IAAA,WAAA,GAAA;AAkEE;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW;AAE1C,QAAA,IAAA,CAAA,QAAQ,GACb,uBAAuB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;QAEzD,IAAA,CAAA,kBAAkB,GAAyB,kBAAkB;AAWpE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC3C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAkEhC,IAAA;AA9IC;;;;AAIG;IACH,IACW,SAAS,CAAC,KAAuC,EAAA;AAC1D,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,kBAAkB;YACrD,IAAI,CAAC,gBAAgB,EAAE;QACzB;IACF;AAgBA;;;AAGG;IACH,IACW,eAAe,CAAC,KAA8C,EAAA;AACvE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;IAC/B;AAEA;;;AAGG;IACH,IACW,iBAAiB,CAAC,KAAyB,EAAA;AACpD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB;IACjC;AAeA,IAAA,iBAAiB;AAEjB,IAAA,mBAAmB;AAEnB,IAAA,oCAAoC;AACpC,IAAA,sBAAsB;AAEtB,IAAA,UAAU;AACV,IAAA,OAAO;IAEA,QAAQ,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEO,kBAAkB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACzD,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,6CAA6C,EAAE;AACrE,gBAAA,uBAAuB,EAAE,CAAC;AAC1B,gBAAA,yBAAyB,EACvB,8CAA8C;AACjD,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;QACpC;IACF;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,YAAY,EAAE;IACrB;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,kBAAkB,CACxD,IAAI,CAAC,kBAAkB,CACxB;IACH;IAEA,0BAA0B,GAAA;QACxB,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC1B,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;oBACpC;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB;oBACjD;AACF,gBAAA;AACE,oBAAA,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC;AAC9C,yBAAA,SAAS,CACR,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAE5D,yBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAClC,oBAAA,CAAC,CAAC;oBAEJ;;QAEN;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,oCAAoC,EAAE;AAC7C,YAAA,IAAI,CAAC,oCAAoC,CAAC,WAAW,EAAE;AACvD,YAAA,IAAI,CAAC,oCAAoC,GAAG,SAAS;QACvD;IACF;8GA9IW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,kVChC9B,mwCA0CA,EAAA,MAAA,EAAA,CAAA,knFAAA,EAAA,+nHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDVa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,cAAA,EAML,CAAC,+BAA+B,CAAC,cACrC,KAAK,EAAA,QAAA,EAAA,mwCAAA,EAAA,MAAA,EAAA,CAAA,knFAAA,EAAA,+nHAAA,CAAA,EAAA;;sBAQhB;;sBAYA;;sBAOA;;sBAOA;;sBAcA;;sBAaA;;;MExEU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,CATV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,aAAa;YACb,4BAA4B;AAC5B,YAAA,cAAc,aAEN,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAPvB,YAAY;YACZ,aAAa;YACb,4BAA4B;YAC5B,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAIL,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,4BAA4B;wBAC5B,cAAc;AACf,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACfD;;;AAGG;MAQU,8BAA8B,CAAA;AAP3C,IAAA,WAAA,GAAA;QAmBS,IAAA,CAAA,kBAAkB,GAAG,IAAI;AACjC,IAAA;AAZC;;AAEG;IACH,IACW,SAAS,CAAC,KAAyB,EAAA;;AAE5C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI;QAChD;IACF;8GAVW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,+LCd3C,+XAUA,EAAA,MAAA,EAAA,CAAA,8jEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDIa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,cAAA,EAGnB,CAAC,+BAA+B,CAAC,cACrC,KAAK,EAAA,QAAA,EAAA,+XAAA,EAAA,MAAA,EAAA,CAAA,8jEAAA,CAAA,EAAA;;sBAMhB;;;MEPU,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,iBAJvB,8BAA8B,CAAA,EAAA,OAAA,EAAA,CACnC,YAAY,EAAE,cAAc,aAC5B,8BAA8B,CAAA,EAAA,CAAA,CAAA;+GAE7B,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAG3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA;;;ACPD;;;AAGG;MAWU,mBAAmB,CAAA;AAVhC,IAAA,WAAA,GAAA;AA6CE;;AAEG;QAEI,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEvB;;AAEG;AAEI,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU;QAE5C,IAAA,CAAA,YAAY,GAAG,IAAI;QAEnB,IAAA,CAAA,kBAAkB,GAAG,IAAI;AAwBjC,IAAA;AAvDC;;AAEG;IACH,IACW,SAAS,CAAC,KAAyB,EAAA;;AAE5C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI;;AAE9C,YAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;AACpC,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YAC1B;AAAO,iBAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,MAAM,EAAE;AAC7C,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YAC3B;QACF;IACF;AAkBO,IAAA,YAAY,CAAC,KAAY,EAAA;QAC9B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;QACjE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACpD;AAEO,IAAA,cAAc,CAAC,KAAoB,EAAA;;AAExC,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;AAC7B,gBAAA,KAAK,GAAG;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;oBACjE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBAClD,KAAK,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE;oBACvB;AACF,gBAAA;oBACE;;QAEN;IACF;8GAxEW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,gTCjBhC,yeAgBA,EAAA,MAAA,EAAA,CAAA,+MAAA,EAAA,oMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDCa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,cAAA,EAMP,CAAC,+BAA+B,CAAC,cACrC,KAAK,EAAA,QAAA,EAAA,yeAAA,EAAA,MAAA,EAAA,CAAA,+MAAA,EAAA,oMAAA,CAAA,EAAA;;sBAShB;;sBAQA;;sBAMA;;sBAiBA;;sBAMA;;;AEpDH;;AAEG;MAWU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CATZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;YACZ,4BAA4B;YAC5B,cAAc;AACd,YAAA,2BAA2B,aAEnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAPzB,YAAY;YACZ,4BAA4B;YAC5B,cAAc;YACd,2BAA2B,CAAA,EAAA,CAAA,CAAA;;2FAIlB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,4BAA4B;wBAC5B,cAAc;wBACd,2BAA2B;AAC5B,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;ACnBD;;AAEG;MAEmB,8BAA8B,CAAA;AAMlD;;;AAGG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;AAC7B,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B;AAEA;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B;8GAnBoB,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA9B,8BAA8B,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBADnD;;;ACSD;;AAEG;MASU,wBAAwB,CAAA;AARrC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,8BAA8B,EAAE;AAC7D,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AAEF;;;AAGG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAU;AAE/C;;;AAGG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAuB;QAEzC,IAAA,CAAA,GAAG,GAAG,QAAQ,CAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAC1B,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CACtE,EACD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CACzB,CACF;QAEkB,IAAA,CAAA,OAAO,GAAG,QAAQ,CACnC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAC1B,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CACvE,EACD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CACzB,CACF;AACF,IAAA;AAjCU,IAAA,YAAY;8GADV,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,uYCzBrC,mZAYA,EAAA,MAAA,EAAA,CAAA,0iCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDaa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACE,kBAAkB,EAAA,OAAA,EACnB,EAAE,EAAA,cAAA,EAGK,CAAC,+BAA+B,CAAC,EAAA,eAAA,EAChC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mZAAA,EAAA,MAAA,EAAA,CAAA,0iCAAA,CAAA,EAAA;;;MEfpC,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAArB,qBAAqB,EAAA,OAAA,EAAA,CAHtB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;+GAEvB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA;;;ACJD;;;;;AAKG;MAOU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFzB,qCAAqC,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAFrC,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,qCAAqC;AAChD,iBAAA;;;ACRD;;;AAGG;MAUU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,8EALzB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0zBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKf,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;sCACS,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,oBAAoB,YAEpB,gBAAgB,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,0zBAAA,CAAA,EAAA;;;MCJ1B,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AA6BE;;;;AAIG;QAEI,IAAA,CAAA,MAAM,GAAqC,UAAU;AAC7D,IAAA;8GA9BY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,0MCbhC,ixBAyBA,EAAA,MAAA,EAAA,CAAA,0jBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjBY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,0PAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKxC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC,YAC1C,cAAc,EAAA,QAAA,EAAA,ixBAAA,EAAA,MAAA,EAAA,CAAA,0jBAAA,CAAA,EAAA;;sBASvB;;sBAQA;;sBAOA;;sBAQA;;;MEvBU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAVzB,mBAAmB;YACnB,wBAAwB;AACxB,YAAA,wBAAwB,aAGxB,mBAAmB;YACnB,wBAAwB;YACxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAVzB,mBAAmB;YACnB,wBAAwB,CAAA,EAAA,CAAA,CAAA;;2FASf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,wBAAwB;wBACxB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,wBAAwB;wBACxB,wBAAwB;AACzB,qBAAA;AACF,iBAAA;;;ACED,MAAM,kBAAkB,GAAiB,MAAM;MAQlC,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;AAgDS,QAAA,IAAA,CAAA,QAAQ,GACb,uBAAuB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;QAEzD,IAAA,CAAA,kBAAkB,GAAG,kBAAkB;AAQ9C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC3C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AA8DhC,IAAA;AApHC;;;AAGG;IACH,IACW,SAAS,CAAC,KAA+B,EAAA;AAClD,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,KAAK,SAAS,GAAG,kBAAkB,GAAG,KAAK;QAE1E,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA;;;AAGG;IACH,IACW,eAAe,CAAC,KAA8C,EAAA;AACvE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;IAC/B;AAEA;;;AAGG;IACH,IACW,iBAAiB,CAAC,KAAyB,EAAA;AACpD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB;IACjC;AASA,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;AAEnB,IAAA,oCAAoC;AACpC,IAAA,sBAAsB;AAEtB,IAAA,eAAe;AACf,IAAA,UAAU;AACV,IAAA,OAAO;IAEA,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,EAAE;IACpB;IAEO,kBAAkB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACzD,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,6CAA6C,EAAE;AACrE,gBAAA,uBAAuB,EAAE,CAAC;AAC1B,gBAAA,yBAAyB,EACvB,8CAA8C;AACjD,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;QACpC;IACF;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,YAAY,EAAE;IACrB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,kBAAkB,CACxD,IAAI,CAAC,kBAAkB,CACxB;IACH;IAEA,0BAA0B,GAAA;QACxB,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC1B,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;oBACpC;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB;oBACjD;AACF,gBAAA;AACE,oBAAA,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC;AAC9C,yBAAA,SAAS,CACR,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAE5D,yBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,wBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACrC,oBAAA,CAAC,CAAC;oBAEJ;;QAEN;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,oCAAoC,EAAE;AAC7C,YAAA,IAAI,CAAC,oCAAoC,CAAC,WAAW,EAAE;AACvD,YAAA,IAAI,CAAC,oCAAoC,GAAG,SAAS;QACvD;IACF;8GApHW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,sLC3B9B,kYAaA,EAAA,MAAA,EAAA,CAAA,+1IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDca,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cAGT,KAAK,EAAA,QAAA,EAAA,kYAAA,EAAA,MAAA,EAAA,CAAA,+1IAAA,CAAA,EAAA;;sBAOhB;;sBAWA;;sBAcA;;;MEtCU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,CATV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,aAAa;YACb,4BAA4B;AAC5B,YAAA,cAAc,aAEN,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAPvB,YAAY;YACZ,aAAa;YACb,4BAA4B;YAC5B,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAIL,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,4BAA4B;wBAC5B,cAAc;AACf,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACHD,MAAM,sBAAsB,GAAyB,SAAS;AAC9D;;;;;AAKG;MAQU,2BAA2B,CAAA;AAPxC,IAAA,WAAA,GAAA;AAyES,QAAA,IAAA,CAAA,QAAQ,GAAG,uBAAuB,CAAC,kBAAkB,CAC1D,sBAAsB,CACvB;QAEM,IAAA,CAAA,sBAAsB,GAAyB,sBAAsB;AAE5E,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAyC/C,IAAA;AAjHC;;;AAGG;IACH,IACW,aAAa,CAAC,KAA2B,EAAA;AAClD,QAAA,IAAI,CAAC,sBAAsB;YACzB,KAAK,KAAK,SAAS,GAAG,sBAAsB,GAAG,KAAK;QAEtD,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA;;;;AAIG;IACH,IACW,eAAe,CAAC,KAA8C,EAAA;AACvE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;IAC/B;AAEA;;;AAGG;IACH,IACW,iBAAiB,CAAC,KAAyB,EAAA;AACpD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB;IACjC;AAgCA,IAAA,eAAe;AACf,IAAA,aAAa;AAEb,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;IAEZ,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,kBAAkB,CACxD,IAAI,CAAC,sBAAsB,CAC5B;IACH;IAEA,0BAA0B,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC1B,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;oBAC7B;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB;oBACjD;AACF,gBAAA;AACE,oBAAA,IAAI,CAAC;AACF,yBAAA,SAAS,CACR,4BAA4B;wBAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAE1C,yBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,wBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACrC,oBAAA,CAAC,CAAC;oBAEJ;;QAEN;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;IACF;8GAjHW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,6SC7BxC,6iCAgCA,EAAA,MAAA,EAAA,CAAA,4iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDHa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,6iCAAA,EAAA,MAAA,EAAA,CAAA,4iDAAA,CAAA,EAAA;;sBAOhB;;sBAaA;;sBAcA;;sBAeA;;sBAOA;;sBAOA;;;MElEU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CAZpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAExC,YAAY;YACZ,mBAAmB;YACnB,aAAa;YACb,WAAW;YACX,4BAA4B;YAC5B,cAAc;AACd,YAAA,aAAa,aAEL,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAVjC,YAAY;YACZ,mBAAmB;YACnB,aAAa;YACb,WAAW;YACX,4BAA4B;YAC5B,cAAc;YACd,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAIJ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC3C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,aAAa;wBACb,WAAW;wBACX,4BAA4B;wBAC5B,cAAc;wBACd,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;;ACVD,MAAM,UAAU,GAAG,oBAAoB;AACvC,MAAM,kBAAkB,GAAG,uBAAuB;AAElD,SAAS,QAAQ,CAAC,IAAU,EAAE,WAAmB,EAAA;;;AAG/C,IAAA,WAAW,CAAC,SAAS,GAAG,CAAC;AAEzB,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;IAE3B,IAAI,IAAI,EAAE;QACR,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAEpC,IAAI,KAAK,EAAE;;AAET,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;YAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,GAAG,UAAU,CAAC;YACpD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAE1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/C,YAAA,QAAQ,CAAC,SAAS,GAAG,UAAU;AAC/B,YAAA,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;;AAGjC,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE;gBACrB,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClD;AAEA,YAAA,OAAO,CAAC;QACV;IACF;AAEA,IAAA,OAAO,CAAC;AACV;AAEA,SAAS,aAAa,CAAC,IAAU,EAAE,WAAmB,EAAA;AACpD,IAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,QAAQ,CAAC,IAAY,EAAE,WAAW,CAAC;IAC5C;SAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AACjD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACpC,YAAA,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC;QAC5C;IACF;AAEA,IAAA,OAAO,CAAC;AACV;AAEA,SAAS,eAAe,CAAC,EAAc,EAAA;AACrC,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAC/B,EAAE,CAAC,aAAyB,CAAC,gBAAgB,CAAC,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAE,CAAC,CACrE;IAED,IAAI,eAAe,EAAE;AACnB,QAAA,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;AAClC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;AAElC,YAAA,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;gBAC9C,UAAU,CAAC,SAAS,EAAE;YACxB;QACF;IACF;AACF;AAEA,SAAS,iBAAiB,CAAC,WAAqB,EAAA;AAC9C,IAAA,IAAI,WAA+B;AAEnC,IAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;;;AAG1B,QAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KACvC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAC/C;AAED,QAAA,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACvD;AAEA,IAAA,OAAO,WAAW;AACpB;AAEA;;AAEG;MAIU,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAyBoD,IAAA,CAAA,SAAS,GAAG,IAAI;QAElE,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAI1B,IAAA,CAAA,YAAY,GAAa,EAAE;AAE3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC;AA4DlD,IAAA;AAxFC;;AAEG;IACH,IACW,YAAY,CAAC,KAAoC,EAAA;AAC1D,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE;AAEnB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;;;YAGlD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;AACnC,gBAAA,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAC5B,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,KAAe,CAAC;QACvC;IACF;AAIA,IAAA,kBAAkB;AAElB,IAAA,SAAS;AAET,IAAA,YAAY;AAEZ,IAAA,GAAG;AACH,IAAA,YAAY;AAEL,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;YACnE,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEO,eAAe,GAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAK;YAC7C,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;IACnB;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IAEA,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;QAC7B;IACF;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,mBAAmB,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa;QAEnC,IAAI,IAAI,EAAE;YACR,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;;YAGxD,IAAI,WAAW,EAAE;AACf,gBAAA,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;AAChC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAChC;QACF;QAEA,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,OAAO,EAAE,IAAI;aACd;AAED,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;QACxD;IACF;8GA1FW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA;;sBAOE;;sBAgBA,WAAW;uBAAC,mBAAmB;;;MClHrB,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAtB,sBAAsB,EAAA,OAAA,EAAA,CAJvB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CACzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAGxB,sBAAsB,EAAA,SAAA,EAFtB,CAAC,0BAA0B,CAAC,EAAA,CAAA,CAAA;;2FAE5B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,SAAS,EAAE,CAAC,0BAA0B,CAAC;AACxC,iBAAA;;;MCaY,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;AA8DE;;AAEG;AAEI,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAEzC;;AAEG;AAEI,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;QAKrC,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,QAAQ,GAAG,CAAC;AAEnB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACnD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAEvD,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,aAAa,GAAG,IAAI;AA4CrB,IAAA;AA5HC;;;;;AAKG;IACH,IACW,QAAQ,CAAC,KAA0B,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK;IAC3B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU;IACxB;AAWA;;;AAGG;IACH,IACW,WAAW,CAAC,KAA0B,EAAA;AAC/C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,KAAK,KAAK;IACtC;AAEA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA;;;;AAIG;IACH,IACW,SAAS,CAAC,KAA0B,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C;AA6BA,IAAA,WAAW;AAEF,IAAA,iBAAiB;AACjB,IAAA,aAAa;AAEtB,IAAA,UAAU;AACV,IAAA,aAAa;IAEH,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEU,IAAA,UAAU,CAAC,KAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CACtD,KAAK,CAAC,aAAa,CACpB;IACH;AAEO,IAAA,YAAY,CAAC,KAAY,EAAA;QAC9B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,cAAc,CACjB,8BAA8B,EAC9B,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CACvD;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,KAAK,EAAE;IAC7C;AAEO,IAAA,cAAc,CAAC,WAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AAEO,IAAA,cAAc,CAAC,WAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AAEA,IAAA,cAAc,CAAC,cAAsB,EAAE,GAAG,IAAW,EAAA;AACnD,QAAA,IAAI,CAAC;AACF,aAAA,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI;AACjC,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,aAAA,SAAS,CAAC,CAAC,uBAAuB,KAAI;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AAC1D,QAAA,CAAC,CAAC;IACN;8GA5HW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAmEO,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzF/C,mqEA6EA,EAAA,MAAA,EAAA,CAAA,w9MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDvDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,mqEAAA,EAAA,MAAA,EAAA,CAAA,w9MAAA,CAAA,EAAA;;sBAShB;;sBAeA;;sBAOA;;sBAcA;;sBASA;;sBAMA;;sBAMA;;sBAGA,SAAS;uBAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;;;IEzFnD;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B;;AAEG;AACH,IAAA,oBAAA,CAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AAElB;;AAEG;AACH,IAAA,oBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB;AAEpB;;AAEG;AACH,IAAA,oBAAA,CAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB;AAEtB;;AAEG;AACH,IAAA,oBAAA,CAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AAElB;;AAEG;AACH,IAAA,oBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB;AACvB,CAAC,EAzBW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;AC0BhC,MAAM,oBAAoB,GAAG,MAAM;AAEnC;;;;AAIG;MAQU,kBAAkB,CAAA;AAC7B;;;;;AAKG;IACH,IACW,QAAQ,CAAC,KAA0B,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK;IAC3B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;AAGG;IACH,IACW,WAAW,CAAC,KAA0B,EAAA;AAC/C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,KAAK,KAAK;IACtC;AAEA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA;;;AAGG;IACH,IACW,WAAW,CAAC,KAAyB,EAAA;AAC9C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,oBAAoB;IACpD;AAEA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa;IAC3B;AASA;;;;;AAKG;IACH,IACW,SAAS,CAAC,KAA0B,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,KAAK,KAAK;IACpC;AAEA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;AAEG;IACH,IACW,MAAM,CAAC,KAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;;;;;AAK3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,wBAAwB,EAAE;IACjC;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA;;;AAGG;IACH,IACW,aAAa,CAAC,KAA4C,EAAA;QACnE,IAAI,CAAC,eAAe,GAAG,KAAK,IAAI,IAAI,OAAO,EAAoB;QAC/D,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAoCA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa;IAC3B;IAEA,IAAW,WAAW,CAAC,KAAa,EAAA;QAClC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACjC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AAChC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;QACjC;AAEA,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,KAAK,GAAG,CAAC;AACT,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAClC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,CAAC;IACjC;AAIA,IAAA,UAAU;AACV,IAAA,aAAa;AACb,IAAA,WAAW;AACX,IAAA,QAAQ;AACR,IAAA,aAAa;AAKb,IAAA,iBAAiB;AACjB,IAAA,cAAc;AACd,IAAA,qBAAqB;AAEZ,IAAA,eAAe;AACf,IAAA,SAAS;AAElB,IAAA,aAAa;AACb,IAAA,eAAe;AAQf,IAAA,WAAA,GAAA;AA/EA;;;AAGG;AAEI,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAQ;AAErD;;;AAGG;AAEI,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAQ;AAEtD;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAA6B;AAEpE;;;AAGG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAc;AAEpD;;;AAGG;AAEI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAQ;QAsBhD,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,aAAa,GAAG,IAAI;QACpB,IAAA,CAAA,WAAW,GAAG,IAAI;QAClB,IAAA,CAAA,QAAQ,GAAe,EAAE;QACzB,IAAA,CAAA,aAAa,GAAG,oBAAoB;AAMpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;QACpC,IAAA,CAAA,qBAAqB,GAAG,KAAK;AAEpB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QAErC,IAAA,CAAA,aAAa,GAAG,CAAC;AACjB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAoB;AAEjD;;;AAGG;AACgB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;;;AAK/C,QAAA,eAAe,CAAC;YACd,IAAI,EAAE,MAAK;gBACT,qBAAqB,CAAC,MAAK;AACzB,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,gBAAA,CAAC,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE;;;;QAKzB,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,IAAI,KAAa;AAC5C,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;IACH;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAChC;AAEO,IAAA,YAAY,CAAC,KAAe,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAClC;AAEO,IAAA,cAAc,CAAC,KAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,QAAQ,KAAK,CAAC,GAAG;AACf,gBAAA,KAAK,MAAM;AACX,gBAAA,KAAK,WAAW;AACd,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACxB,IAAI,EAAE,oBAAoB,CAAC,kBAAkB;AAC9C,qBAAA,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE;oBACtB;AAEF,gBAAA,KAAK,OAAO;AACZ,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACxB,IAAI,EAAE,oBAAoB,CAAC,cAAc;AAC1C,qBAAA,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE;oBACtB;;QAEN;IACF;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAClC;IACF;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACpD,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;IACtC;IAEA,mBAAmB,GAAA;QACjB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAClD,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,KAAwB,EAAE,CAAS,KAAI;AACtC,gBAAA,OAAO,IAAI,CAAC,WAAW,KAAK,CAAC;AAC/B,YAAA,CAAC,CACF;YAED,IAAI,cAAc,EAAE;gBAClB,cAAc,CAAC,YAAY,EAAE;YAC/B;QACF;IACF;IAEA,kBAAkB,GAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACzB;IACF;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACtC;AAEA,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC3B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,YAAA,QAAQ,OAAO,CAAC,IAAI;gBAClB,KAAK,oBAAoB,CAAC,cAAc;oBACtC,IAAI,CAAC,eAAe,EAAE;oBACtB;gBAEF,KAAK,oBAAoB,CAAC,gBAAgB;oBACxC,IAAI,CAAC,iBAAiB,EAAE;oBACxB;gBAEF,KAAK,oBAAoB,CAAC,kBAAkB;oBAC1C,IAAI,CAAC,mBAAmB,EAAE;oBAC1B;gBAEF,KAAK,oBAAoB,CAAC,cAAc;oBACtC,IAAI,CAAC,eAAe,EAAE;oBACtB;gBAEF,KAAK,oBAAoB,CAAC,iBAAiB;oBACzC,IAAI,CAAC,kBAAkB,EAAE;oBACzB;;AAEN,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,oBAAoB,CAAC,KAAe,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,KAAK;AACN,SAAA,CAAC;IACJ;AAEA;;;AAGG;IACH,wBAAwB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B;QACF;AAEA,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;QAEjC,eAAe,CACb,MAAK;AACH,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC5B,QAAA,CAAC,EACD;YACE,QAAQ,EAAE,IAAI,CAAC,SAAS;AACzB,SAAA,CACF;IACH;8GAvVW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA6Jf,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrMjC,gqCAiCA,EAAA,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDOa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,gqCAAA,EAAA,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA;;sBAShB;;sBAaA;;sBAaA;;sBAaA;;sBASA;;sBAYA;;sBAoBA;;sBAcA;;sBAOA;;sBAMA;;sBAOA;;sBAOA;;sBA6BA,YAAY;uBAAC,iBAAiB;;;MEhLpB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,CAVX,iBAAiB,EAAE,kBAAkB,aAElD,YAAY;YACZ,aAAa;YACb,4BAA4B;YAC5B,WAAW;YACX,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAErB,iBAAiB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEpC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YARxB,YAAY;YACZ,aAAa;YACb,4BAA4B;YAC5B,WAAW,CAAA,EAAA,CAAA,CAAA;;2FAKF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AACrD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,4BAA4B;wBAC5B,WAAW;wBACX,6BAA6B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AACjD,iBAAA;;;;ACZD,MAAM,YAAY,GAQd,EAAE;AAEN;;AAEG;MAEU,qBAAqB,CAAA;aAClB,IAAA,CAAA,gBAAgB,GAAG,KAAH,CAAS;AAEvC,IAAA,kBAAkB;AAClB,IAAA,SAAS;AAET,IAAA,WAAA,CAAY,eAAiC,EAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC;IAClE;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE;IACxB;AAEO,IAAA,aAAa,CAAC,MAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,MAAM,CAAC,aAAa,CAAC,aAAa,EAClC,yBAAyB,CAC1B;IACH;AAEO,IAAA,gBAAgB,CAAC,MAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,MAAM,CAAC,aAAa,CAAC,aAAa,EAClC,yBAAyB,CAC1B;IACH;IAEO,YAAY,CACjB,MAAkB,EAClB,UAAmB,EACnB,SAAkB,EAClB,aAAsB,EACtB,eAAwB,EAAA;QAExB,MAAM,MAAM,GAAG;cACX,QAAQ,CAAC;AACX,cAAE,MAAM,CAAC,aAAa,CAAC,aAAa;QAEtC,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,SAAS,EAAE;gBACb,IAAI,mBAAmB,GAA4B,SAAS;gBAC5D,IAAI,wBAAwB,GAA4B,SAAS;gBACjE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC;;gBAGxD,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;oBACzD,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC5C,wBAAA,mBAAmB,GAAG,QAAQ,CAAC,aAA4B;oBAC7D;oBACA,IAAI,CAAC,mBAAmB,EAAE;AAC1B,oBAAA,wBAAwB,GAAG,QAAQ,CAAC,aAA4B;gBAClE;gBAEA,IAAI,UAAU,EAAE;AACd,oBAAA,EAAqB,CAAC,gBAAgB,GAAG,IAAI;AAC7C,oBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,QAAQ,CAAC,IAAI,EACb,SAAS,EACT,CAAC,KAAoB,KAAI;;AAEvB,wBAAA,IAAI,KAAK,CAAC,GAAG,EAAE;;4BAEb,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;AACpC,gCAAA,KAAK,CAAC,MAAsB,CAAC,IAAI,EAAE;gCACpC,KAAK,CAAC,cAAc,EAAE;gCACtB,KAAK,CAAC,eAAe,EAAE;gCACvB,KAAK,CAAC,wBAAwB,EAAE;gCAChC,IAAI,CAAC,mBAAmB,EAAE;4BAC5B;wBACF;AACF,oBAAA,CAAC,CACF;oBAED,IAAI,eAAe,EAAE;wBACnB,YAAY,CAAC,eAAe,CAAC,GAAG;AAC9B,4BAAA,QAAQ,EAAE,eAAe;AACzB,4BAAA,MAAM,EAAE,SAAS;4BACjB,mBAAmB;4BACnB,wBAAwB;yBACzB;oBACH;gBACF;qBAAO;AACL,oBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,MAAM,EACN,SAAS,EACT,CAAC,KAAoB,KAAI;;wBAEvB,IAAI,CAAC,aAAa,EAAE;4BAClB,KAAK,CAAC,cAAc,EAAE;4BACtB,KAAK,CAAC,eAAe,EAAE;4BACvB,KAAK,CAAC,wBAAwB,EAAE;AAEhC,4BAAA,IAAI,EAAqB,CAAC,gBAAgB,EAAE;gCAC1C,IAAI,CAAC,mBAAmB,EAAE;4BAC5B;iCAAO;;AAEL,gCAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gCAE1C,IAAI,MAAM,EAAE;oCACV,MAAM,CAAC,IAAI,EAAE;AACb,oCAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACtD;4BACF;wBACF;AACF,oBAAA,CAAC,CACF;oBAED,IAAI,eAAe,EAAE;wBACnB,YAAY,CAAC,eAAe,CAAC,GAAG;AAC9B,4BAAA,QAAQ,EAAE,eAAe;4BACzB,MAAM;4BACN,mBAAmB;4BACnB,wBAAwB;yBACzB;oBACH;gBACF;YACF;iBAAO;gBACL,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEnD,IAAI,UAAU,EAAE;AACd,oBAAA,EAAqB,CAAC,gBAAgB,GAAG,KAAK;gBAChD;AAEA,gBAAA,IAAI,eAAe,IAAI,eAAe,IAAI,YAAY,EAAE;AACtD,oBAAA,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC;oBAEjD,WAAW,CAAC,QAAQ,EAAE;;oBAGtB,IAAI,WAAW,CAAC,wBAAwB,KAAK,QAAQ,CAAC,aAAa,EAAE;AACnE,wBAAA,WAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE;oBAC1C;AAEA,oBAAA,OAAO,YAAY,CAAC,eAAe,CAAC;gBACtC;YACF;QACF;IACF;IAEA,iBAAiB,CAAC,aAA0B,EAAE,QAAiB,EAAA;AAC7D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE;;AAG9C,QAAA,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;;QAGlC,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;AACtD,QAAA,IAAI,QAAQ,GAAG,aAAa,GAAG,QAAQ;QACvC,OACE,SAAS,CAAC,QAAQ,CAAC;YACnB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAChD;YACA,QAAQ,IAAI,QAAQ;QACtB;QAEA,IACE,SAAS,CAAC,QAAQ,CAAC;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EACjD;AACA,YAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;QAC7B;aAAO;;;;AAIL,YAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YAClD,OACE,QAAQ,KAAK,aAAa;gBAC1B,SAAS,CAAC,QAAQ,CAAC;gBACnB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAChD;;;gBAGA,QAAQ,IAAI,QAAQ;YACtB;;;YAIA,IACE,SAAS,CAAC,QAAQ,CAAC;gBACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EACjD;AACA,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;YAC7B;iBAAO;;gBAEL,IAAI,CAAC,mBAAmB,EAAE;YAC5B;QACF;;AAGA,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;IACrC;AAEA,IAAA,QAAQ,CAAC,KAAY,EAAA;;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAClD,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CACvC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAE,KAAa,CAAC,aAAa,CAAC;QAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAqB,CAAC;AAEhE,QAAA,QACE,WAAW,KAAK,UAAU,GAAG,CAAC;aAC7B,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,YAAA,WAAW,GAAG,UAAU;AACxB,YAAA,CAAE,KAAa,CAAC,aAAa;IAEjC;AAEA,IAAA,gBAAgB,CAAC,OAAoB,EAAA;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ;IAClE;AAEA,IAAA,sBAAsB,CAAC,OAAoB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;AAClC,YAAA,OAAO,IAAI;QACb;QAEA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM;YAC9C,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACpD,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAEA,mBAAmB,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,aAA4B;;QAG3D,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,IAAI,EAAE;QACtB;AAEA,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;IACvB;IAEA,qBAAqB,GAAA;;AAEnB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,OAAO,IAAI,CAAC,kBAAkB;QAChC;;QAGA,MAAM,iBAAiB,GACrB,WAAW;YACX,cAAc;YACd,8CAA8C;YAC9C,+CAA+C;YAC/C,+CAA+C;YAC/C,iDAAiD;YACjD,yBAAyB;YACzB,oCAAoC;AACpC,YAAA,yBAAyB;QAE3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CACnD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EACjD,CAAC,OAAoB,KAAI;AACvB,YAAA,QACE,OAAO,CAAC,WAAW,GAAG,CAAC;gBACvB,OAAO,CAAC,YAAY,GAAG,CAAC;AACxB,gBAAA,OAAO,KAAK,QAAQ,CAAC,aAAa;AAEtC,QAAA,CAAC,CACF;QACD,OAAO,IAAI,CAAC,kBAAkB;IAChC;IAEA,eAAe,GAAA;AACb,QAAA,EAAqB,CAAC,gBAAgB,GAAG,KAAK;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3C,YAAA,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;AAC5B,YAAA,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B;IACF;8GArRW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACFD,IAAI,MAAM,GAAG,CAAC;MASD,gBAAgB,CAAA;AAP7B,IAAA,WAAA,GAAA;AAgHS,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;QACjD,IAAA,CAAA,YAAY,GAAG,EAAE;AACjB,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;AAIxE,QAAA,IAAA,CAAA,GAAG,GAAG,CAAA,SAAA,EAAY,EAAE,MAAM,EAAE;AAC5B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAM3B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC;AA4CvD,IAAA;AApKC;;;;;;;AAOG;IACH,IACW,SAAS,CAAC,KAAyB,EAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QAC7B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA;;AAEG;IACH,IACW,SAAS,CAAC,KAA0B,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YACjD;iBAAO;gBACL,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YACpD;QACF;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAC/B,IAAI,CAAC,MAAM,EACX,CAAC,CAAC,IAAI,CAAC,UAAU,EACjB,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,IAAI,CAAC,aAAa,EACpB,IAAI,CAAC,GAAG,CACT;QAED,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC/D;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;AAE3B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAChD;QACH;AAEA,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;AAEA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;AAMG;IACH,IACW,UAAU,CAAC,KAA0B,EAAA;;QAE9C,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QACpD;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACjD;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,iCAAiC,EAAE;IAC1C;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;;;AAIG;IACH,IACW,aAAa,CAAC,KAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA;;;;;;AAMG;IACH,IACW,yBAAyB,CAAC,KAAyB,EAAA;AAC5D,QAAA,IAAI,CAAC,gCAAgC,GAAG,KAAK;QAC7C,IAAI,CAAC,iCAAiC,EAAE;IAC1C;AAMA,IAAA,gBAAgB;AAChB,IAAA,gCAAgC;AAChC,IAAA,GAAG;AACH,IAAA,cAAc;AAEd,IAAA,YAAY;AACZ,IAAA,eAAe;AACf,IAAA,WAAW;AAEF,IAAA,eAAe;AACf,IAAA,MAAM;AACN,IAAA,cAAc;AACd,IAAA,YAAY;IAEd,QAAQ,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,iCAAiC,EAAE;IAC1C;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAChC;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAClD;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAC3C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,WAAW;AACtD,YAAA,MAAM,GAAG,GAAG,CAAA,UAAA,EAAa,IAAI,CAAA,EAAG,QAAQ,gBAAgB;AACxD,YAAA,IAAI,CAAC;iBACF,SAAS,CAAC,GAAG;AACb,iBAAA,IAAI,CAACC,MAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5C,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,CAAC,CAAC;QACN;IACF;IAEA,iCAAiC,GAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,gCAAgC,EAAE;YACzC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CACvC,IAAI,CAAC,gCAAgC,CACtC;QACH;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAC3C,YAAA,MAAM,GAAG,GAAG,CAAA,UAAA,EAAa,IAAI,+BAA+B;AAC5D,YAAA,IAAI,CAAC;iBACF,SAAS,CAAC,GAAG;AACb,iBAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5C,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,YAAA,CAAC,CAAC;QACN;IACF;8GApKW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,SAAA,EAHhB,CAAC,qBAAqB,CAAC,0BCzBpC,6qBAyBA,EAAA,MAAA,EAAA,CAAA,85DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,4BAA4B,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEzC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;+BACE,UAAU,EAAA,SAAA,EAGT,CAAC,qBAAqB,CAAC,WACzB,CAAC,YAAY,EAAE,4BAA4B,CAAC,EAAA,QAAA,EAAA,6qBAAA,EAAA,MAAA,EAAA,CAAA,85DAAA,CAAA,EAAA;;sBAWpD;;sBASA;;sBAyCA;;sBAuBA;;sBAiBA;;;MEvHU,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAHd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,gBAAgB,CAAA,EAAA,CAAA,CAAA;;2FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA;;;ACHD;;AAEG;MAOU,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbjC,oUAaA,EAAA,MAAA,EAAA,CAAA,uEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFY,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,eAAe,EAAA,OAAA,EAGhB,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,oUAAA,EAAA,MAAA,EAAA,CAAA,uEAAA,CAAA,EAAA;;sBAG1B;;sBAGA;;;AEJH,IAAI,aAA+C;AACnD,IAAI,gBAAgE;AACpE,IAAI,qBAAqB,GAAG,CAAC;AAC7B,IAAI,wBAAwB,GAAG,CAAC;MAKnB,cAAc,CAAA;AACzB,IAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAClD,IAAA,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAE7D;;AAEG;IACI,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAC3B;AAEA;;AAEG;IACI,wBAAwB,GAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC5B;AAEA;;;AAGG;IACI,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IACzB;AAEA;;;AAGG;IACI,sBAAsB,GAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAC1B;AAEA;;AAEG;IACI,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC5B;AAEA;;AAEG;IACI,OAAO,GAAA;QACZ,IAAI,aAAa,EAAE;YACjB,aAAa,GAAG,SAAS;YACzB,qBAAqB,GAAG,CAAC;YACzB,wBAAwB,GAAG,CAAC;AAC5B,YAAA,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACjE;IACF;AAEA;;AAEG;AACI,IAAA,YAAY,CAAI,UAAyB,EAAA;QAC9C,OAAOC,KAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACpE,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;AACI,IAAA,eAAe,CAAI,UAAyB,EAAA;QACjD,OAAOA,KAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACvE,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,2BAA2B,CAAC,UAAmB,EAAA;QAC7C,IAAI,aAAa,EAAE;YACjB,IAAI,UAAU,EAAE;AACd,gBAAA,aAAa,CAAC,eAAe,GAAG,IAAI;AACpC,gBAAA,qBAAqB,EAAE;YACzB;iBAAO;AACL,gBAAA,aAAa,CAAC,kBAAkB,GAAG,IAAI;AACvC,gBAAA,wBAAwB,EAAE;YAC5B;QACF;IACF;AAEA,IAAA,cAAc,CAAC,UAAmB,EAAA;QAChC,IAAI,CAAC,aAAa,EAAE;AAClB;;;AAGE;YACF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;;;gBAG3C,IAAI,CAAC,aAAa,EAAE;oBAClB,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAC9D,oBAAoB,EACpB;wBACE,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AAC/C,qBAAA,CACF;AAED,oBAAA,aAAa,GAAG,gBAAgB,CAAC,QAAQ;gBAC3C;AAEA,gBAAA,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC;AAC9C,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC;QAC9C;IACF;AAEA,IAAA,YAAY,CAAC,UAAmB,EAAA;AAC9B;;;AAGE;QACF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;YAC3C,IAAI,aAAa,EAAE;gBACjB,IAAI,UAAU,EAAE;AACd,oBAAA,IAAI,qBAAqB,GAAG,CAAC,EAAE;AAC7B,wBAAA,qBAAqB,EAAE;oBACzB;AAEA,oBAAA,IAAI,qBAAqB,GAAG,CAAC,EAAE;AAC7B,wBAAA,aAAa,CAAC,eAAe,GAAG,KAAK;oBACvC;gBACF;qBAAO;AACL,oBAAA,IAAI,wBAAwB,GAAG,CAAC,EAAE;AAChC,wBAAA,wBAAwB,EAAE;oBAC5B;AAEA,oBAAA,IAAI,wBAAwB,GAAG,CAAC,EAAE;AAChC,wBAAA,aAAa,CAAC,kBAAkB,GAAG,KAAK;oBAC1C;gBACF;YACF;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,cAAc,CAAC,UAAmB,EAAA;;QAEhC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;YAC3C,IAAI,aAAa,EAAE;gBACjB,IAAI,UAAU,EAAE;oBACd,qBAAqB,GAAG,CAAC;AACzB,oBAAA,aAAa,CAAC,eAAe,GAAG,KAAK;gBACvC;qBAAO;oBACL,wBAAwB,GAAG,CAAC;AAC5B,oBAAA,aAAa,CAAC,kBAAkB,GAAG,KAAK;gBAC1C;YACF;AACF,QAAA,CAAC,CAAC;IACJ;8GA5JW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACpBD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/indicators",
3
- "version": "14.3.6",
3
+ "version": "14.3.7",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -20,12 +20,12 @@
20
20
  "@angular/common": "^21.2.0",
21
21
  "@angular/core": "^21.2.0",
22
22
  "@angular/platform-browser": "^21.2.0",
23
- "@skyux-sdk/testing": "14.3.6",
24
- "@skyux/core": "14.3.6",
25
- "@skyux/help-inline": "14.3.6",
26
- "@skyux/i18n": "14.3.6",
27
- "@skyux/icon": "14.3.6",
28
- "@skyux/theme": "14.3.6"
23
+ "@skyux-sdk/testing": "14.3.7",
24
+ "@skyux/core": "14.3.7",
25
+ "@skyux/help-inline": "14.3.7",
26
+ "@skyux/i18n": "14.3.7",
27
+ "@skyux/icon": "14.3.7",
28
+ "@skyux/theme": "14.3.7"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.8.1"