@skyux/indicators 5.6.2 → 5.7.2

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.
@@ -507,7 +507,7 @@
507
507
  /**
508
508
  * NOTICE: DO NOT MODIFY THIS FILE!
509
509
  * The contents of this file were automatically generated by
510
- * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-indicators' schematic.
510
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-indicators' schematic.
511
511
  * To update this file, simply rerun the command.
512
512
  */
513
513
  var RESOURCES = {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * NOTICE: DO NOT MODIFY THIS FILE!
3
3
  * The contents of this file were automatically generated by
4
- * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-indicators' schematic.
4
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-indicators' schematic.
5
5
  * To update this file, simply rerun the command.
6
6
  */
7
7
  import { NgModule } from '@angular/core';
@@ -1 +1 @@
1
- {"version":3,"file":"sky-indicators-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/indicators/src/lib/modules/shared/sky-indicators-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;QACjD,8BAA8B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;QAChE,mCAAmC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QAC9D,+BAA+B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,wCAAwC,EAAE;YACxC,OAAO,EAAE,wBAAwB;SAClC;QACD,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QAC1D,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7D,wBAAwB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACjD,iCAAiC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACvE,6BAA6B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QAC3D,sCAAsC,EAAE;YACtC,OAAO,EAAE,4BAA4B;SACtC;KACF;CACF,CAAC;AAEF,MAAM,OAAO,8BAA8B;IAClC,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,4BAA4B;;0HAA5B,4BAA4B;2HAA5B,4BAA4B,YAT7B,aAAa;2HASZ,4BAA4B,aAR5B;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,8BAA8B;YACxC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,4BAA4B;kBAVxC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,8BAA8B;4BACxC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\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 modules/shared/sky-indicators' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_alert_close: { message: 'Close the alert' },\n skyux_help_inline_button_title: { message: 'Show help content' },\n skyux_status_indicator_sr_completed: { message: 'Completed:' },\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_warning: { message: 'Warning:' },\n skyux_tokens_dismiss_button_title: { message: 'Remove item' },\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 },\n};\n\nexport class SkyIndicatorsResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyIndicatorsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyIndicatorsResourcesModule {}\n"]}
1
+ {"version":3,"file":"sky-indicators-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/indicators/src/lib/modules/shared/sky-indicators-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;QACjD,8BAA8B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;QAChE,mCAAmC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QAC9D,+BAA+B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,wCAAwC,EAAE;YACxC,OAAO,EAAE,wBAAwB;SAClC;QACD,iCAAiC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QAC1D,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7D,wBAAwB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACjD,iCAAiC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACvE,6BAA6B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QAC3D,sCAAsC,EAAE;YACtC,OAAO,EAAE,4BAA4B;SACtC;KACF;CACF,CAAC;AAEF,MAAM,OAAO,8BAA8B;IAClC,SAAS,CACd,UAA4B,EAC5B,IAAY;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,4BAA4B;;0HAA5B,4BAA4B;2HAA5B,4BAA4B,YAT7B,aAAa;2HASZ,4BAA4B,aAR5B;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,8BAA8B;YACxC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,4BAA4B;kBAVxC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,8BAA8B;4BACxC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\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 SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_alert_close: { message: 'Close the alert' },\n skyux_help_inline_button_title: { message: 'Show help content' },\n skyux_status_indicator_sr_completed: { message: 'Completed:' },\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_warning: { message: 'Warning:' },\n skyux_tokens_dismiss_button_title: { message: 'Remove item' },\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 },\n};\n\nexport class SkyIndicatorsResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyIndicatorsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyIndicatorsResourcesModule {}\n"]}
@@ -153,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
153
153
  /**
154
154
  * NOTICE: DO NOT MODIFY THIS FILE!
155
155
  * The contents of this file were automatically generated by
156
- * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-indicators' schematic.
156
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-indicators' schematic.
157
157
  * To update this file, simply rerun the command.
158
158
  */
159
159
  const RESOURCES = {
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-indicators.js","sources":["../../../../../libs/components/indicators/src/lib/modules/icon/icon-resolver.service.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-class-list.pipe.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-stack.component.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-stack.component.html","../../../../../libs/components/indicators/src/lib/modules/icon/icon.component.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon.component.html","../../../../../libs/components/indicators/src/lib/modules/icon/icon.module.ts","../../../../../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/help-inline/help-inline.component.ts","../../../../../libs/components/indicators/src/lib/modules/help-inline/help-inline.component.html","../../../../../libs/components/indicators/src/lib/modules/help-inline/help-inline.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-page.component.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page.component.html","../../../../../libs/components/indicators/src/lib/modules/wait/wait.module.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page-adapter.service.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait.service.ts","../../../../../libs/components/indicators/src/skyux-indicators.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n SkyThemeIconManifestGlyph,\n SkyThemeIconManifestService,\n} from '@skyux/theme';\n\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconResolverService {\n private glyphMap = new Map<string, SkyThemeIconManifestGlyph>();\n\n constructor(manifestSvc: SkyThemeIconManifestService) {\n // Map the icons by name for more efficient lookup.\n for (const glyph of manifestSvc.getManifest().glyphs) {\n this.glyphMap.set(glyph.name, glyph);\n }\n }\n\n public resolveIcon(iconName: string, variant?: SkyIconVariantType): string {\n const variantIconName = variant && `${iconName}-${variant}`;\n\n if (variantIconName && this.glyphMap.has(variantIconName)) {\n // A variant was specified and exists; return it.\n return variantIconName;\n }\n\n if (variant !== 'line' && !this.glyphMap.has(iconName)) {\n // Either the solid variant was specified and doesn't exist, or no variant was\n // specified and a non-variant doesn't exist; fall back to the line variant.\n const lineIconName = `${iconName}-line`;\n\n if (this.glyphMap.has(lineIconName)) {\n return lineIconName;\n }\n }\n\n // Fall back to the icon name as-is.\n return iconName;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { SkyIconResolverService } from './icon-resolver.service';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Pipe({\n name: 'skyIconClassList',\n})\nexport class SkyIconClassListPipe implements PipeTransform {\n constructor(private resolver: SkyIconResolverService) {}\n\n public transform(\n icon: string,\n iconType?: string,\n size?: string,\n fixedWidth?: boolean,\n variant?: SkyIconVariantType\n ): string[] {\n let classList: string[];\n\n if (iconType === 'skyux') {\n const resolvedIcon = this.resolver.resolveIcon(icon, variant);\n classList = ['sky-i-' + resolvedIcon];\n } else {\n classList = ['fa', 'fa-' + icon];\n }\n\n if (size) {\n classList.push('fa-' + size);\n }\n\n if (fixedWidth) {\n classList.push('fa-fw');\n }\n\n return classList;\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { SkyIconStackItem } from './icon-stack-item';\n\n@Component({\n selector: 'sky-icon-stack',\n templateUrl: './icon-stack.component.html',\n styleUrls: ['./icon-stack.component.scss'],\n})\nexport class SkyIconStackComponent {\n /**\n * Specifies the size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/how-to-use/on-the-web/styling/sizing-icons).\n */\n @Input()\n public size: string;\n\n /**\n * The icon to display at the bottom of the stack.\n */\n @Input()\n public baseIcon: SkyIconStackItem;\n\n /**\n * The icon to display at the top of the stack.\n */\n @Input()\n public topIcon: SkyIconStackItem;\n}\n","<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"baseIcon.icon | skyIconClassList: baseIcon.iconType\"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"topIcon.icon | skyIconClassList: topIcon.iconType\"\n ></i>\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SkyIconType } from './types/icon-type';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n@Component({\n selector: 'sky-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyIconComponent {\n /**\n * Specifies the name of\n * [the Font Awesome 4.7 icon](https://fontawesome.com/v4.7/icons/) to\n * display. Do not specify the `fa fa-` classes.\n * @required\n */\n @Input()\n public icon: string;\n\n /**\n * Specifies the type of icon to display. Specifying `\"fa\"` will display a Font Awesome icon,\n * while specifying `\"skyux\"` will display an icon from the custom SKY UX icon font. Note that\n * the custom SKY UX icon font is currently in beta.\n * @default \"fa\"\n */\n @Input()\n public iconType: SkyIconType = 'fa';\n\n /**\n * Specifies the size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/how-to-use/on-the-web/styling/sizing-icons).\n */\n @Input()\n public size: string;\n\n /**\n * Indicates whether the icon has a fixed width.\n */\n @Input()\n public fixedWidth: boolean;\n\n /**\n * Specifies the icon variant (`\"line\"` or `\"solid\"`). If the variant doesn't exist for the\n * specified icon, the normal icon is displayed.\n */\n @Input()\n public variant: SkyIconVariantType;\n}\n","<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [ngClass]=\"icon | skyIconClassList: iconType:size:fixedWidth:variant\"\n>\n</i>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeIconManifestModule } from '@skyux/theme';\n\nimport { SkyIconClassListPipe } from './icon-class-list.pipe';\nimport { SkyIconStackComponent } from './icon-stack.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyThemeIconManifestModule],\n exports: [SkyIconComponent, SkyIconStackComponent],\n})\nexport class SkyIconModule {}\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 modules/shared/sky-indicators' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_alert_close: { message: 'Close the alert' },\n skyux_help_inline_button_title: { message: 'Show help content' },\n skyux_status_indicator_sr_completed: { message: 'Completed:' },\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_warning: { message: 'Warning:' },\n skyux_tokens_dismiss_button_title: { message: 'Remove item' },\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 },\n};\n\nexport class SkyIndicatorsResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyIndicatorsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyIndicatorsResourcesModule {}\n","import { SkyIndicatorIcon } from './indicator-icon';\nimport { SkyIndicatorIconType } from './indicator-icon-type';\n\n/**\n * @internl\n */\nexport class SkyIndicatorIconUtility {\n public static getIconsForType(\n indicatorType: SkyIndicatorIconType\n ): SkyIndicatorIcon {\n let icon: string;\n let baseIcon: string;\n let topIcon: string;\n\n // tslint:disable-next-line: switch-default\n switch (indicatorType) {\n case 'danger':\n case 'warning':\n icon = 'warning';\n baseIcon = 'triangle-solid';\n topIcon = 'exclamation';\n break;\n case 'info':\n icon = 'exclamation-circle';\n baseIcon = 'circle-solid';\n topIcon = 'help-i';\n break;\n case 'success':\n icon = 'check';\n baseIcon = 'circle-solid';\n topIcon = 'check';\n break;\n }\n\n return {\n defaultThemeIcon: icon,\n modernThemeBaseIcon: {\n icon: baseIcon,\n iconType: 'skyux',\n },\n modernThemeTopIcon: {\n icon: topIcon,\n iconType: 'skyux',\n },\n };\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\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: ['./alert.component.scss'],\n templateUrl: './alert.component.html',\n})\nexport class SkyAlertComponent implements OnInit {\n /**\n * Specifies a style for the alert to determine 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: string) {\n this._alertType = value;\n this.updateAlertIcon();\n }\n\n public get alertType(): string {\n return this._alertType || ALERT_TYPE_DEFAULT;\n }\n\n /**\n * Indicates whether to include a close button for users to dismiss the alert.\n * @default false\n */\n @Input()\n public closeable: boolean;\n\n /**\n * Indicates whether the alert is closed.\n * @default false\n */\n @Input()\n public closed: boolean;\n\n /**\n * Fires when users close the alert.\n */\n @Output()\n public closedChange = new EventEmitter<boolean>();\n\n public alertBaseIcon: SkyIconStackItem;\n\n public alertTopIcon: SkyIconStackItem;\n\n private _alertType: string;\n\n public ngOnInit(): void {\n this.updateAlertIcon();\n }\n\n public close(): void {\n this.closed = true;\n this.closedChange.emit(true);\n }\n\n private updateAlertIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.alertType as SkyIndicatorIconType\n );\n\n this.alertBaseIcon = indicatorIcon.modernThemeBaseIcon;\n this.alertTopIcon = indicatorIcon.modernThemeTopIcon;\n }\n}\n","<div\n class=\"sky-alert\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n role=\"alert\"\n [hidden]=\"closed\"\n [ngClass]=\"{\n 'sky-alert-info': alertType === 'info',\n 'sky-alert-success': alertType === 'success',\n 'sky-alert-warning': alertType === 'warning',\n 'sky-alert-danger': alertType === 'danger',\n 'sky-alert-closeable': closeable\n }\"\n>\n <div aria-hidden=\"true\" class=\"sky-alert-icon-theme-modern\">\n <sky-icon-stack [baseIcon]=\"alertBaseIcon\" [topIcon]=\"alertTopIcon\">\n </sky-icon-stack>\n </div>\n <div class=\"sky-alert-content\">\n <ng-content></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 class=\"sky-alert-close-icon-theme-default\" icon=\"close\">\n </sky-icon>\n <sky-icon\n class=\"sky-alert-close-icon-theme-modern\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </span>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyAlertComponent],\n})\nexport class SkyAlertModule {}\n","import { Component, Input } from '@angular/core';\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})\nexport class SkyExpansionIndicatorComponent {\n /**\n * Specifies whether the chevron points up or down.\n */\n @Input()\n public set direction(value: string) {\n /* istanbul ignore else */\n if (value != this._direction) {\n this._direction = value;\n }\n }\n\n public get direction(): string {\n return this._direction || 'up';\n }\n\n private _direction: string;\n}\n","<div\n aria-hidden=\"true\"\n class=\"sky-expansion-indicator\"\n [ngClass]=\"['sky-expansion-indicator-' + direction]\"\n>\n <ng-container *skyThemeIf=\"'default'\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <span class=\"sky-expansion-indicator-glyph-container\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n </span>\n </ng-container>\n</div>\n\n<ng-template #icon>\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</ng-template>\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';\n\n/**\n * Creates an accessible button that wraps the chevron icon.\n * @internal\n */\n@Component({\n selector: 'sky-chevron',\n styleUrls: ['./chevron.component.scss'],\n templateUrl: './chevron.component.html',\n})\nexport class SkyChevronComponent {\n /**\n * Specifies 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 */\n @Input()\n public ariaControls: string;\n\n /**\n * Specifies an ARIA label for the chevron. This sets the chevron's aria-label attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies whether the chevron points up or down.\n */\n @Input()\n public set direction(value: string) {\n /* istanbul ignore else */\n if (value != this._direction) {\n this._direction = value;\n /* istanbul ignore else */\n if (value === 'up') {\n this.ariaExpanded = true;\n } else if (this.direction === 'down') {\n this.ariaExpanded = false;\n }\n }\n }\n\n public get direction(): string {\n return this._direction || 'up';\n }\n\n /**\n * Indicates 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: boolean;\n\n private _direction: string;\n\n public chevronClick(event: Event): void {\n event.stopPropagation();\n this.direction = this.direction === 'up' ? 'down' : 'up';\n this.directionChange.emit(this.direction);\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-' + direction]\"\n [skyThemeClass]=\"{\n 'sky-btn sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"chevronClick($event)\"\n>\n <sky-expansion-indicator [direction]=\"direction\"></sky-expansion-indicator>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\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@NgModule({\n declarations: [SkyChevronComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n SkyExpansionIndicatorModule,\n ],\n exports: [SkyChevronComponent],\n})\nexport class SkyChevronModule {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'sky-help-inline',\n templateUrl: './help-inline.component.html',\n styleUrls: ['./help-inline.component.scss'],\n})\nexport class SkyHelpInlineComponent {\n /**\n * Fires when the user clicks the help inline button.\n */\n @Output()\n public actionClick = new EventEmitter<any>();\n\n public onClick(): void {\n this.actionClick.emit();\n }\n}\n","<button\n class=\"sky-help-inline\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_help_inline_button_title' | skyLibResources\"\n (click)=\"onClick()\"\n>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"info-circle\"> </sky-icon>\n <sky-icon-stack\n *skyThemeIf=\"'modern'\"\n size=\"xs\"\n [baseIcon]=\"{\n icon: 'circle-solid',\n iconType: 'skyux'\n }\"\n [topIcon]=\"{\n icon: 'help-i',\n iconType: 'skyux'\n }\"\n >\n </sky-icon-stack>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIconModule } from '../icon/icon.module';\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyHelpInlineComponent } from './help-inline.component';\n\n@NgModule({\n declarations: [SkyHelpInlineComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyHelpInlineComponent],\n})\nexport class SkyHelpInlineModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a label to display in smaller, plain text under or beside the value.\n * @required\n */\n@Component({\n selector: 'sky-key-info-label',\n template: '<ng-content></ng-content>',\n})\nexport class SkyKeyInfoLabelComponent {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a value to display in larger, bold text.\n * @required\n */\n@Component({\n selector: 'sky-key-info-value',\n template: '<ng-content></ng-content>',\n})\nexport class SkyKeyInfoValueComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sky-key-info',\n templateUrl: './key-info.component.html',\n styleUrls: ['./key-info.component.scss'],\n})\nexport class SkyKeyInfoComponent {\n /**\n * Specifies whether to display key info in a `vertical` layout with the label under the\n * value or in a `horizontal` layout with the label beside the value.\n * @default \"vertical\"\n */\n @Input()\n public layout = 'vertical';\n}\n","<div\n class=\"sky-key-info\"\n [ngClass]=\"{\n 'sky-key-info-horizontal': layout === 'horizontal'\n }\"\n>\n <div class=\"sky-key-info-value sky-headline\">\n <ng-content select=\"sky-key-info-value\"> </ng-content>\n </div>\n <div class=\"sky-key-info-label sky-field-label sky-font-data-label\">\n <ng-content select=\"sky-key-info-label\"> </ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { 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 declarations: [\n SkyKeyInfoComponent,\n SkyKeyInfoLabelComponent,\n SkyKeyInfoValueComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyKeyInfoComponent,\n SkyKeyInfoLabelComponent,\n SkyKeyInfoValueComponent,\n ],\n})\nexport class SkyKeyInfoModule {}\n","import { Component, Input } from '@angular/core';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\nimport { SkyIndicatorIconUtility } from '../shared/indicator-icon-utility';\n\nimport { SkyLabelType } from './label-type';\n\n@Component({\n selector: 'sky-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class SkyLabelComponent {\n /**\n * The type of label to display.\n * @required\n */\n @Input()\n public set labelType(value: SkyLabelType) {\n this._labelType = value;\n this.updateIcon();\n }\n\n public get labelType(): SkyLabelType {\n return this._labelType || 'info';\n }\n\n public baseIcon: SkyIconStackItem;\n\n public icon: string;\n\n public topIcon: SkyIconStackItem;\n\n private _labelType: SkyLabelType;\n\n private updateIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.labelType\n );\n\n this.icon = indicatorIcon.defaultThemeIcon;\n this.baseIcon = indicatorIcon.modernThemeBaseIcon;\n this.topIcon = indicatorIcon.modernThemeTopIcon;\n }\n}\n","<span class=\"sky-label\" [ngClass]=\"'sky-label-' + labelType\">\n <span class=\"sky-label-icon-theme-default\">\n <sky-icon [icon]=\"icon\"></sky-icon>\n </span>\n <span class=\"sky-label-icon-theme-modern\">\n <sky-icon-stack size=\"xs\" [baseIcon]=\"baseIcon\" [topIcon]=\"topIcon\">\n </sky-icon-stack>\n </span>\n <span class=\"sky-label-text\">\n <ng-content></ng-content>\n </span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconModule } from '../icon/icon.module';\n\nimport { SkyLabelComponent } from './label.component';\n\n@NgModule({\n declarations: [SkyLabelComponent],\n imports: [CommonModule, SkyIconModule],\n exports: [SkyLabelComponent],\n})\nexport class SkyLabelModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\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@Component({\n selector: 'sky-status-indicator',\n templateUrl: './status-indicator.component.html',\n styleUrls: ['./status-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyStatusIndicatorComponent {\n /**\n * Specifies a style for the status indicator to determine the icon.\n * The valid options are `danger`, `info`, `success`, and `warning`.\n * @default \"warning\"\n */\n @Input()\n public set indicatorType(value: SkyIndicatorIconType) {\n this._indicatorType = value;\n this.updateIcon();\n }\n\n public get indicatorType(): SkyIndicatorIconType {\n return this._indicatorType || INDICATOR_TYPE_DEFAULT;\n }\n\n /**\n * Specifies the predefined text to be read by screen readers for users\n * who cannot see the indicator icon. The valid options are `none`, `custom`,\n * `error`, `warning`, `completed`, and `important-info`.\n * @required\n */\n @Input()\n public set descriptionType(value: SkyIndicatorDescriptionType) {\n this._descriptionType = value;\n this.updateDescriptionComputed();\n }\n\n public get descriptionType(): SkyIndicatorDescriptionType {\n return this._descriptionType;\n }\n\n /**\n * Specifies 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) {\n this._customDescription = value;\n this.updateDescriptionComputed();\n }\n\n public get customDescription(): string {\n return this._customDescription;\n }\n\n public descriptionComputed: string;\n\n public baseIcon: SkyIconStackItem;\n\n public icon: string;\n\n public topIcon: SkyIconStackItem;\n\n private _indicatorType: SkyIndicatorIconType;\n\n private _descriptionType: SkyIndicatorDescriptionType;\n\n private _customDescription: string;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private resources: SkyLibResourcesService\n ) {}\n\n private updateIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.indicatorType\n );\n\n this.icon = indicatorIcon.defaultThemeIcon;\n this.baseIcon = indicatorIcon.modernThemeBaseIcon;\n this.topIcon = indicatorIcon.modernThemeTopIcon;\n }\n\n private 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.resources\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","<div *ngIf=\"descriptionType\" class=\"sky-status-indicator\">\n <div\n aria-hidden=\"true\"\n class=\"sky-margin-inline-xs sky-status-indicator-icon\"\n [ngClass]=\"'sky-status-indicator-icon-' + indicatorType\"\n >\n <span class=\"sky-status-indicator-icon-default\">\n <sky-icon [icon]=\"icon\"></sky-icon>\n </span>\n <span class=\"sky-status-indicator-icon-modern\">\n <sky-icon-stack size=\"xs\" [baseIcon]=\"baseIcon\" [topIcon]=\"topIcon\">\n </sky-icon-stack>\n </span>\n </div>\n <div class=\"sky-status-indicator-message-wrapper\">\n <span *ngIf=\"descriptionComputed\" class=\"sky-screen-reader-only\">\n {{ descriptionComputed }}\n </span>\n <span class=\"sky-status-indicator-message\">\n <ng-content></ng-content>\n </span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n ],\n exports: [SkyStatusIndicatorComponent],\n})\nexport class SkyStatusIndicatorModule {}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\n\nconst className = 'sky-highlight-mark';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\n/**\n * Highlights all matching text within DOM elements that it is placed on.\n * The directive is only valid for elements that contain content, so you\n * cannot place it on `ng-template`, `ng-content`, or `ng-container` tags.\n */\n@Directive({\n selector: '[skyHighlight]',\n})\nexport class SkyTextHighlightDirective\n implements OnChanges, AfterViewInit, OnDestroy\n{\n /**\n * Specifies the text to highlight.\n */\n @Input()\n public set skyHighlight(value: string | string[]) {\n value = value || [];\n this._skyHighlight = [];\n\n if (Array.isArray(value)) {\n this._skyHighlight = 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._skyHighlight.sort(function (a, b) {\n return b.length - a.length;\n });\n } else {\n this._skyHighlight = [value as string];\n }\n }\n\n private existingHighlight = false;\n\n private observer: MutationObserver;\n\n private _skyHighlight: string[];\n\n constructor(\n private el: ElementRef,\n private observerService: MutationObserverService\n ) {}\n\n private static cleanRegex(regex: string): string {\n return regex.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n private static markNode(node: any, searchTerms: string[]): number {\n /* istanbul ignore else */\n if (searchTerms) {\n const text = node.nodeValue;\n for (let i = 0; i < searchTerms.length; i++) {\n searchTerms[i] = this.cleanRegex(searchTerms[i]);\n }\n const searchRegex = new RegExp(searchTerms.join('|'), 'gi');\n const match = searchRegex.exec(text);\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 = className;\n markNode.appendChild(middleClone);\n middle.parentNode.replaceChild(markNode, middle);\n\n return 1;\n }\n }\n return 0;\n }\n\n private static markTextNodes(\n node: HTMLElement,\n searchTerms: string[]\n ): number {\n if (node.nodeType === 3) {\n return SkyTextHighlightDirective.markNode(node, searchTerms);\n } else if (node.nodeType === 1 && node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const childNode = node.childNodes[i] as HTMLElement;\n i += SkyTextHighlightDirective.markTextNodes(childNode, searchTerms);\n }\n }\n\n return 0;\n }\n\n private static removeHighlight(el: ElementRef): void {\n const matchedElements = el.nativeElement.querySelectorAll(\n `mark.${className}`\n ) as NodeList;\n\n /* istanbul ignore else */\n /* sanity check */\n if (matchedElements) {\n for (let i = 0; i < matchedElements.length; i++) {\n const node = matchedElements[i];\n const parentNode = node.parentNode;\n\n parentNode.replaceChild(node.firstChild, node);\n parentNode.normalize();\n }\n }\n }\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.observerService.create(() => {\n this.highlight();\n });\n\n this.observeDom();\n if (this._skyHighlight && this._skyHighlight.length > 0) {\n this.highlight();\n }\n }\n\n public ngOnDestroy(): void {\n /* istanbul ignore else */\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private readyForHighlight(searchText: string[]): boolean {\n return searchText && searchText.length > 0 && this.el.nativeElement;\n }\n\n private highlight(): void {\n /* istanbul ignore else */\n if (this.observer) {\n this.observer.disconnect();\n }\n\n const searchText = this._skyHighlight;\n\n if (this.existingHighlight) {\n SkyTextHighlightDirective.removeHighlight(this.el);\n }\n\n /* istanbul ignore else */\n if (this.readyForHighlight(searchText)) {\n const node: HTMLElement = this.el.nativeElement;\n\n // mark all matched text in the DOM\n SkyTextHighlightDirective.markTextNodes(node, searchText);\n this.existingHighlight = true;\n }\n\n this.observeDom();\n }\n\n private observeDom(): void {\n /* istanbul ignore else */\n if (this.observer) {\n const config = {\n attributes: false,\n childList: true,\n characterData: true,\n };\n this.observer.observe(this.el.nativeElement, config);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\n\nimport { SkyTextHighlightDirective } from './text-highlight.directive';\n\n@NgModule({\n declarations: [SkyTextHighlightDirective],\n exports: [SkyTextHighlightDirective],\n providers: [MutationObserverService],\n})\nexport class SkyTextHighlightModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\n@Component({\n selector: 'sky-token',\n templateUrl: './token.component.html',\n styleUrls: ['./token.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTokenComponent {\n /**\n * Indicates 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 true\n */\n @Input()\n public set disabled(value: boolean) {\n this._disabled = value;\n }\n\n public get disabled(): boolean {\n return !!this._disabled;\n }\n\n /**\n * Specifies an ARIA label for the token's close button. This sets the button's `aria-label`\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * @default \"Remove item\"\n */\n @Input()\n public set ariaLabel(value: string) {\n this._ariaLabel = value;\n }\n\n public get ariaLabel(): string {\n return (\n this._ariaLabel || this.getString('skyux_tokens_dismiss_button_title')\n );\n }\n\n /**\n * Indicates whether users can remove the token from the list by selecting the close button\n * or pressing the `Backspace` key.\n * @default true\n */\n @Input()\n public set dismissible(value: boolean) {\n this._dismissible = value;\n }\n\n public get dismissible(): boolean {\n return this._dismissible !== false;\n }\n\n /**\n * Indicates whether users can press the `Tab` key to place focus on the token. 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) {\n this._focusable = value;\n }\n\n public get focusable(): boolean {\n return this._focusable !== false;\n }\n\n /**\n * Fires when users click the close button or press the `Backspace` key to dismiss the token.\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 /**\n * @internal\n */\n public get tabIndex(): number | boolean {\n return this.focusable ? 0 : -1;\n }\n\n /**\n * @internal\n */\n public tokenActive: boolean;\n\n /**\n * @internal\n */\n public closeActive: boolean;\n\n private _ariaLabel: string;\n private _disabled: boolean;\n private _dismissible: boolean;\n private _focusable: boolean;\n\n constructor(\n private elementRef: ElementRef,\n private resourcesService: SkyLibResourcesService\n ) {}\n\n public dismissToken(event: Event): void {\n event.stopPropagation();\n this.dismiss.emit();\n }\n\n public focusElement(): void {\n this.elementRef.nativeElement.querySelector('.sky-token').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 private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n}\n","<div\n class=\"sky-token sky-btn sky-btn-default\"\n role=\"button\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n [ngClass]=\"{\n 'sky-btn-disabled': disabled,\n 'sky-token-dismissable': dismissible,\n 'sky-token-active': tokenActive && !closeActive\n }\"\n (document:mouseup)=\"setTokenActive(false)\"\n (focus)=\"tokenFocus.emit()\"\n (mousedown)=\"setTokenActive(true)\"\n>\n <ng-content></ng-content>\n <button\n *ngIf=\"dismissible\"\n class=\"sky-btn sky-token-btn-close\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"tabIndex\"\n [attr.title]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\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 class=\"sky-token-btn-close-icon-default\" icon=\"times\"></sky-icon>\n <sky-icon\n class=\"sky-token-btn-close-icon-modern\"\n icon=\"close\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n</div>\n","export enum SkyTokensMessageType {\n /**\n * Places focus on the last token in the list.\n */\n FocusLastToken = 0,\n\n /**\n * Places focus on the token that is currently selected.\n */\n FocusActiveToken = 1,\n\n /**\n * Places focus on the token before the currently selected token.\n */\n FocusPreviousToken = 2,\n\n /**\n * Places focus on the token after the currently selected token.\n */\n FocusNextToken = 3,\n\n /**\n * Removes the token that is currently selected from the list of tokens.\n */\n RemoveActiveToken = 4,\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChildren,\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\n@Component({\n selector: 'sky-tokens',\n templateUrl: './tokens.component.html',\n styleUrls: ['./tokens.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('dismiss', [\n transition(':enter', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '150ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition(':leave', [\n animate(\n '150ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyTokensComponent implements OnDestroy {\n /**\n * Indicates 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) {\n this._disabled = value;\n }\n\n public get disabled(): boolean {\n return !!this._disabled;\n }\n\n /**\n * Indicates whether users can remove tokens from the list by selecting their close buttons\n * or pressing the `Backspace` key.\n * @default true\n */\n @Input()\n public set dismissible(value: boolean) {\n this._dismissible = value;\n }\n\n public get dismissible(): boolean {\n return this._dismissible !== false;\n }\n\n /**\n * Specifies the token property to display for each item in the tokens list.\n * @default \"name\"\n */\n @Input()\n public set displayWith(value: string) {\n this._displayWith = value;\n }\n\n public get displayWith(): string {\n return this._displayWith || 'name';\n }\n\n /**\n * Specifies 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;\n\n /**\n * Indicates whether users can focus on items 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) {\n this._focusable = value;\n }\n\n public get focusable(): boolean {\n return this._focusable !== false;\n }\n\n /**\n * Specifies an array of tokens to include in the list.\n */\n @Input()\n public set tokens(value: SkyToken[]) {\n this._tokens = value;\n this.tokensChange.emit(this._tokens);\n }\n\n public get tokens(): SkyToken[] {\n return this._tokens || [];\n }\n\n /**\n * Specifies an 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>) {\n this._messageStream = value;\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 usersnavigate 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 * @internal\n */\n public get activeIndex(): number {\n return this._activeIndex || 0;\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;\n }\n\n /**\n * internal\n */\n public trackTokenFn: (index: number, item: SkyToken) => any;\n\n @ViewChildren(SkyTokenComponent)\n private tokenComponents: QueryList<SkyTokenComponent>;\n\n private messageStreamSub: Subscription;\n private ngUnsubscribe = new Subject();\n\n private _activeIndex: number;\n private _disabled: boolean;\n private _dismissible: boolean;\n private _focusable: boolean;\n private _tokens: SkyToken[];\n private _displayWith: string;\n private _messageStream: Subject<SkyTokensMessage>;\n\n constructor(private changeDetector: ChangeDetectorRef) {\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) => {\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 /* tslint:disable-next-line:switch-default */\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 private focusPreviousToken(): void {\n this.activeIndex--;\n this.focusActiveToken();\n }\n\n private focusNextToken(): void {\n this.activeIndex++;\n this.focusActiveToken();\n }\n\n private focusLastToken(): void {\n this.activeIndex = this.tokenComponents.length - 1;\n this.focusActiveToken();\n }\n\n private focusActiveToken(): void {\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 private removeActiveToken(): void {\n const token = this.tokens[this.activeIndex];\n if (token) {\n this.removeToken(token);\n }\n }\n\n private initMessageStream(): void {\n if (this.messageStreamSub) {\n this.messageStreamSub.unsubscribe();\n }\n\n if (this.messageStream) {\n this.messageStreamSub = this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyTokensMessage) => {\n /* tslint:disable-next-line:switch-default */\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\n private notifyTokenSelected(token: SkyToken): void {\n this.tokenSelected.emit({\n token,\n });\n }\n}\n","<div\n *ngIf=\"tokens\"\n class=\"sky-tokens\"\n [@blockAnimationOnLoad]\n [attr.role]=\"tokens && tokens.length ? 'list' : null\"\n>\n <sky-token\n *ngFor=\"let token of tokens; let i = index; trackBy: trackTokenFn\"\n role=\"listitem\"\n [@.disabled]=\"!trackWith\"\n [@dismiss]\n [disabled]=\"disabled\"\n [dismissible]=\"dismissible\"\n [focusable]=\"focusable\"\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 <div class=\"sky-tokens-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\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\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n/**\n * @internal\n * @dynamic\n */\n@Injectable()\nexport class SkyWaitAdapterService implements OnDestroy {\n private static isPageWaitActive = false;\n private static busyElements: {\n [key: string]: { busyEl: HTMLElement; listener: any };\n } = {};\n\n private focussableElements: HTMLElement[];\n\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public ngOnDestroy(): void {\n this.clearListeners();\n }\n\n public setWaitBounds(waitEl: ElementRef): void {\n this.renderer.setStyle(\n waitEl.nativeElement.parentElement,\n 'position',\n 'relative'\n );\n }\n\n public removeWaitBounds(waitEl: ElementRef): void {\n this.renderer.removeStyle(waitEl.nativeElement.parentElement, 'position');\n }\n\n public setBusyState(\n waitEl: ElementRef,\n isFullPage: boolean,\n isWaiting: boolean,\n isNonBlocking = false,\n waitComponentId?: string\n ): void {\n const busyEl = isFullPage\n ? document.body\n : waitEl.nativeElement.parentElement;\n\n if (!isNonBlocking) {\n if (isWaiting) {\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 this.clearDocumentFocus();\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 any).blur();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.clearDocumentFocus();\n }\n }\n }\n );\n SkyWaitAdapterService.busyElements[waitComponentId] = {\n listener: endListenerFunc,\n busyEl: undefined,\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: any = event.target;\n target.blur();\n this.focusNextElement(target, this.isShift(event), busyEl);\n }\n }\n }\n );\n SkyWaitAdapterService.busyElements[waitComponentId] = {\n listener: endListenerFunc,\n busyEl: busyEl,\n };\n }\n } else {\n this.renderer.removeAttribute(busyEl, 'aria-busy');\n\n if (isFullPage) {\n SkyWaitAdapterService.isPageWaitActive = false;\n }\n if (waitComponentId in SkyWaitAdapterService.busyElements) {\n SkyWaitAdapterService.busyElements[waitComponentId].listener();\n delete SkyWaitAdapterService.busyElements[waitComponentId];\n }\n }\n }\n }\n\n private focusNextElement(\n targetElement: HTMLElement,\n shiftKey: boolean,\n busyEl: Element\n ): void {\n const focussable = this.getFocussableElements();\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 = focussable.indexOf(targetElement);\n let curIndex = startingIndex + modifier;\n while (\n focussable[curIndex] &&\n this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n if (\n focussable[curIndex] &&\n !this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n /* istanbul ignore next */\n /* sanity check */\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n /* istanbul ignore next */\n /* sanity check */\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (\n focussable[curIndex] &&\n !this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n this.clearDocumentFocus();\n }\n }\n\n // clear focussableElements list\n this.focussableElements = undefined;\n }\n\n private isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().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 private isElementHidden(element: any): boolean {\n const style = window.getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden';\n }\n\n private isElementBusyOrHidden(element: any): boolean {\n if (this.isElementHidden(element)) {\n return true;\n }\n\n for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {\n const parentElement = SkyWaitAdapterService.busyElements[key].busyEl;\n if (parentElement && parentElement.contains(element)) {\n return true;\n }\n }\n return false;\n }\n\n private clearDocumentFocus(): void {\n /* istanbul ignore else */\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n\n private getFocussableElements(): HTMLElement[] {\n // Keep this cached so we can reduce querys\n if (this.focussableElements) {\n return this.focussableElements;\n }\n\n // Select all possible focussable elements\n const focussableElements =\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.focussableElements = Array.prototype.filter.call(\n document.body.querySelectorAll(focussableElements),\n (element: any) => {\n return (\n element.offsetWidth > 0 ||\n element.offsetHeight > 0 ||\n element === document.activeElement\n );\n }\n );\n return this.focussableElements;\n }\n\n private clearListeners(): void {\n SkyWaitAdapterService.isPageWaitActive = false;\n for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {\n SkyWaitAdapterService.busyElements[key].listener();\n delete SkyWaitAdapterService.busyElements[key];\n }\n }\n}\n","import { Component, ElementRef, Input, OnInit, Optional } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject } from 'rxjs';\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})\nexport class SkyWaitComponent implements OnInit {\n /**\n * Specifies an ARIA label for the wait icon while an element or page loads.\n * This sets the icon's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * The default value varies based on whether the wait is for an element or a page\n * and whether it is a blocking wait. For example, the default for a page-blocking\n * wait is \"Page loading. Please wait.\"\n */\n @Input()\n public ariaLabel: string;\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) {\n if (value && !this._isFullPage) {\n this.adapterService.setWaitBounds(this.elRef);\n } else if (!value && !this._isFullPage) {\n this.adapterService.removeWaitBounds(this.elRef);\n }\n\n this.adapterService.setBusyState(\n this.elRef,\n this.isFullPage,\n value,\n this.isNonBlocking,\n this.id\n );\n\n this._isWaiting = value;\n }\n\n public get isWaiting(): boolean {\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) {\n /* istanbul ignore else: untestable */\n if (value) {\n this.adapterService.removeWaitBounds(this.elRef);\n } else if (!value && this._isWaiting) {\n this.adapterService.setWaitBounds(this.elRef);\n }\n\n this._isFullPage = value;\n }\n\n public get isFullPage(): boolean {\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 isNonBlocking: boolean;\n\n public ariaLabelStream = new BehaviorSubject<string>('');\n\n private id = `sky-wait-${++nextId}`;\n private _isFullPage: boolean;\n private _isWaiting: boolean;\n\n constructor(\n private elRef: ElementRef,\n private adapterService: SkyWaitAdapterService,\n @Optional() private resourceService: SkyLibResourcesService\n ) {}\n\n public ngOnInit(): void {\n this.publishAriaLabel();\n }\n\n private publishAriaLabel(): void {\n if (this.ariaLabel) {\n this.ariaLabelStream.next(this.ariaLabel);\n return;\n }\n\n /* istanbul ignore else */\n if (this.resourceService) {\n const type = this.isFullPage ? '_page' : '';\n const blocking = this.isNonBlocking ? '' : '_blocking';\n const key = `skyux_wait${type}${blocking}_aria_alt_text`;\n this.resourceService.getString(key).subscribe((value: string) => {\n this.ariaLabelStream.next(value);\n });\n }\n }\n}\n","<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\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</div>\n","import { Component, Input } from '@angular/core';\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})\nexport class SkyWaitPageComponent {\n @Input()\n public hasBlockingWait: boolean;\n\n @Input()\n public hasNonBlockingWait: boolean;\n}\n","<div class=\"sky-wait-page\">\n <sky-wait\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n >\n </sky-wait>\n <sky-wait [isFullPage]=\"true\" [isWaiting]=\"hasBlockingWait\"> </sky-wait>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyWaitPageComponent } from './wait-page.component';\nimport { SkyWaitComponent } from './wait.component';\n\n@NgModule({\n declarations: [SkyWaitComponent, SkyWaitPageComponent],\n imports: [CommonModule, SkyI18nModule, SkyIndicatorsResourcesModule],\n exports: [SkyWaitComponent],\n entryComponents: [SkyWaitPageComponent],\n})\nexport class SkyWaitModule {}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyWaitPageAdapterService {\n public addPageWaitEl(): void {\n document.body.appendChild(document.createElement('sky-wait-page'));\n }\n\n public removePageWaitEl(): void {\n const waitEl = document.querySelector('sky-wait-page');\n if (waitEl) {\n document.body.removeChild(waitEl);\n }\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n Injectable,\n} from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { Observable, defer as observableDefer } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { SkyWaitPageAdapterService } from './wait-page-adapter.service';\nimport { SkyWaitPageComponent } from './wait-page.component';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyWaitService {\n private static waitComponent: SkyWaitPageComponent;\n private static pageWaitBlockingCount = 0;\n private static pageWaitNonBlockingCount = 0;\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private waitAdapter: SkyWaitPageAdapterService,\n private windowSvc: SkyAppWindowRef\n ) {}\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 (SkyWaitService.waitComponent) {\n SkyWaitService.waitComponent = undefined;\n SkyWaitService.pageWaitBlockingCount = 0;\n SkyWaitService.pageWaitNonBlockingCount = 0;\n this.waitAdapter.removePageWaitEl();\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 private setWaitComponentProperties(isBlocking: boolean): void {\n if (isBlocking) {\n SkyWaitService.waitComponent.hasBlockingWait = true;\n SkyWaitService.pageWaitBlockingCount++;\n } else {\n SkyWaitService.waitComponent.hasNonBlockingWait = true;\n SkyWaitService.pageWaitNonBlockingCount++;\n }\n }\n\n private beginPageWait(isBlocking: boolean): void {\n if (!SkyWaitService.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 (!SkyWaitService.waitComponent) {\n const factory =\n this.resolver.resolveComponentFactory(SkyWaitPageComponent);\n this.waitAdapter.addPageWaitEl();\n\n const cmpRef = this.appRef.bootstrap(factory);\n SkyWaitService.waitComponent = cmpRef.instance;\n }\n\n this.setWaitComponentProperties(isBlocking);\n });\n } else {\n this.setWaitComponentProperties(isBlocking);\n }\n }\n\n private 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 (SkyWaitService.waitComponent) {\n if (isBlocking) {\n if (SkyWaitService.pageWaitBlockingCount > 0) {\n SkyWaitService.pageWaitBlockingCount--;\n }\n\n if (SkyWaitService.pageWaitBlockingCount < 1) {\n SkyWaitService.waitComponent.hasBlockingWait = false;\n }\n } else {\n if (SkyWaitService.pageWaitNonBlockingCount > 0) {\n SkyWaitService.pageWaitNonBlockingCount--;\n }\n\n if (SkyWaitService.pageWaitNonBlockingCount < 1) {\n SkyWaitService.waitComponent.hasNonBlockingWait = false;\n }\n }\n }\n });\n }\n\n private clearPageWait(isBlocking: boolean): void {\n if (SkyWaitService.waitComponent) {\n if (isBlocking) {\n SkyWaitService.pageWaitBlockingCount = 0;\n SkyWaitService.waitComponent.hasBlockingWait = false;\n } else {\n SkyWaitService.pageWaitNonBlockingCount = 0;\n SkyWaitService.waitComponent.hasNonBlockingWait = false;\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableDefer"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-indicators.js","sources":["../../../../../libs/components/indicators/src/lib/modules/icon/icon-resolver.service.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-class-list.pipe.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-stack.component.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon-stack.component.html","../../../../../libs/components/indicators/src/lib/modules/icon/icon.component.ts","../../../../../libs/components/indicators/src/lib/modules/icon/icon.component.html","../../../../../libs/components/indicators/src/lib/modules/icon/icon.module.ts","../../../../../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/help-inline/help-inline.component.ts","../../../../../libs/components/indicators/src/lib/modules/help-inline/help-inline.component.html","../../../../../libs/components/indicators/src/lib/modules/help-inline/help-inline.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-page.component.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page.component.html","../../../../../libs/components/indicators/src/lib/modules/wait/wait.module.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait-page-adapter.service.ts","../../../../../libs/components/indicators/src/lib/modules/wait/wait.service.ts","../../../../../libs/components/indicators/src/skyux-indicators.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n SkyThemeIconManifestGlyph,\n SkyThemeIconManifestService,\n} from '@skyux/theme';\n\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconResolverService {\n private glyphMap = new Map<string, SkyThemeIconManifestGlyph>();\n\n constructor(manifestSvc: SkyThemeIconManifestService) {\n // Map the icons by name for more efficient lookup.\n for (const glyph of manifestSvc.getManifest().glyphs) {\n this.glyphMap.set(glyph.name, glyph);\n }\n }\n\n public resolveIcon(iconName: string, variant?: SkyIconVariantType): string {\n const variantIconName = variant && `${iconName}-${variant}`;\n\n if (variantIconName && this.glyphMap.has(variantIconName)) {\n // A variant was specified and exists; return it.\n return variantIconName;\n }\n\n if (variant !== 'line' && !this.glyphMap.has(iconName)) {\n // Either the solid variant was specified and doesn't exist, or no variant was\n // specified and a non-variant doesn't exist; fall back to the line variant.\n const lineIconName = `${iconName}-line`;\n\n if (this.glyphMap.has(lineIconName)) {\n return lineIconName;\n }\n }\n\n // Fall back to the icon name as-is.\n return iconName;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { SkyIconResolverService } from './icon-resolver.service';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Pipe({\n name: 'skyIconClassList',\n})\nexport class SkyIconClassListPipe implements PipeTransform {\n constructor(private resolver: SkyIconResolverService) {}\n\n public transform(\n icon: string,\n iconType?: string,\n size?: string,\n fixedWidth?: boolean,\n variant?: SkyIconVariantType\n ): string[] {\n let classList: string[];\n\n if (iconType === 'skyux') {\n const resolvedIcon = this.resolver.resolveIcon(icon, variant);\n classList = ['sky-i-' + resolvedIcon];\n } else {\n classList = ['fa', 'fa-' + icon];\n }\n\n if (size) {\n classList.push('fa-' + size);\n }\n\n if (fixedWidth) {\n classList.push('fa-fw');\n }\n\n return classList;\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { SkyIconStackItem } from './icon-stack-item';\n\n@Component({\n selector: 'sky-icon-stack',\n templateUrl: './icon-stack.component.html',\n styleUrls: ['./icon-stack.component.scss'],\n})\nexport class SkyIconStackComponent {\n /**\n * Specifies the size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/how-to-use/on-the-web/styling/sizing-icons).\n */\n @Input()\n public size: string;\n\n /**\n * The icon to display at the bottom of the stack.\n */\n @Input()\n public baseIcon: SkyIconStackItem;\n\n /**\n * The icon to display at the top of the stack.\n */\n @Input()\n public topIcon: SkyIconStackItem;\n}\n","<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"baseIcon.icon | skyIconClassList: baseIcon.iconType\"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"topIcon.icon | skyIconClassList: topIcon.iconType\"\n ></i>\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SkyIconType } from './types/icon-type';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n@Component({\n selector: 'sky-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyIconComponent {\n /**\n * Specifies the name of\n * [the Font Awesome 4.7 icon](https://fontawesome.com/v4.7/icons/) to\n * display. Do not specify the `fa fa-` classes.\n * @required\n */\n @Input()\n public icon: string;\n\n /**\n * Specifies the type of icon to display. Specifying `\"fa\"` will display a Font Awesome icon,\n * while specifying `\"skyux\"` will display an icon from the custom SKY UX icon font. Note that\n * the custom SKY UX icon font is currently in beta.\n * @default \"fa\"\n */\n @Input()\n public iconType: SkyIconType = 'fa';\n\n /**\n * Specifies the size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/how-to-use/on-the-web/styling/sizing-icons).\n */\n @Input()\n public size: string;\n\n /**\n * Indicates whether the icon has a fixed width.\n */\n @Input()\n public fixedWidth: boolean;\n\n /**\n * Specifies the icon variant (`\"line\"` or `\"solid\"`). If the variant doesn't exist for the\n * specified icon, the normal icon is displayed.\n */\n @Input()\n public variant: SkyIconVariantType;\n}\n","<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [ngClass]=\"icon | skyIconClassList: iconType:size:fixedWidth:variant\"\n>\n</i>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeIconManifestModule } from '@skyux/theme';\n\nimport { SkyIconClassListPipe } from './icon-class-list.pipe';\nimport { SkyIconStackComponent } from './icon-stack.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyThemeIconManifestModule],\n exports: [SkyIconComponent, SkyIconStackComponent],\n})\nexport class SkyIconModule {}\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 SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_alert_close: { message: 'Close the alert' },\n skyux_help_inline_button_title: { message: 'Show help content' },\n skyux_status_indicator_sr_completed: { message: 'Completed:' },\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_warning: { message: 'Warning:' },\n skyux_tokens_dismiss_button_title: { message: 'Remove item' },\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 },\n};\n\nexport class SkyIndicatorsResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyIndicatorsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyIndicatorsResourcesModule {}\n","import { SkyIndicatorIcon } from './indicator-icon';\nimport { SkyIndicatorIconType } from './indicator-icon-type';\n\n/**\n * @internl\n */\nexport class SkyIndicatorIconUtility {\n public static getIconsForType(\n indicatorType: SkyIndicatorIconType\n ): SkyIndicatorIcon {\n let icon: string;\n let baseIcon: string;\n let topIcon: string;\n\n // tslint:disable-next-line: switch-default\n switch (indicatorType) {\n case 'danger':\n case 'warning':\n icon = 'warning';\n baseIcon = 'triangle-solid';\n topIcon = 'exclamation';\n break;\n case 'info':\n icon = 'exclamation-circle';\n baseIcon = 'circle-solid';\n topIcon = 'help-i';\n break;\n case 'success':\n icon = 'check';\n baseIcon = 'circle-solid';\n topIcon = 'check';\n break;\n }\n\n return {\n defaultThemeIcon: icon,\n modernThemeBaseIcon: {\n icon: baseIcon,\n iconType: 'skyux',\n },\n modernThemeTopIcon: {\n icon: topIcon,\n iconType: 'skyux',\n },\n };\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\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: ['./alert.component.scss'],\n templateUrl: './alert.component.html',\n})\nexport class SkyAlertComponent implements OnInit {\n /**\n * Specifies a style for the alert to determine 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: string) {\n this._alertType = value;\n this.updateAlertIcon();\n }\n\n public get alertType(): string {\n return this._alertType || ALERT_TYPE_DEFAULT;\n }\n\n /**\n * Indicates whether to include a close button for users to dismiss the alert.\n * @default false\n */\n @Input()\n public closeable: boolean;\n\n /**\n * Indicates whether the alert is closed.\n * @default false\n */\n @Input()\n public closed: boolean;\n\n /**\n * Fires when users close the alert.\n */\n @Output()\n public closedChange = new EventEmitter<boolean>();\n\n public alertBaseIcon: SkyIconStackItem;\n\n public alertTopIcon: SkyIconStackItem;\n\n private _alertType: string;\n\n public ngOnInit(): void {\n this.updateAlertIcon();\n }\n\n public close(): void {\n this.closed = true;\n this.closedChange.emit(true);\n }\n\n private updateAlertIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.alertType as SkyIndicatorIconType\n );\n\n this.alertBaseIcon = indicatorIcon.modernThemeBaseIcon;\n this.alertTopIcon = indicatorIcon.modernThemeTopIcon;\n }\n}\n","<div\n class=\"sky-alert\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n role=\"alert\"\n [hidden]=\"closed\"\n [ngClass]=\"{\n 'sky-alert-info': alertType === 'info',\n 'sky-alert-success': alertType === 'success',\n 'sky-alert-warning': alertType === 'warning',\n 'sky-alert-danger': alertType === 'danger',\n 'sky-alert-closeable': closeable\n }\"\n>\n <div aria-hidden=\"true\" class=\"sky-alert-icon-theme-modern\">\n <sky-icon-stack [baseIcon]=\"alertBaseIcon\" [topIcon]=\"alertTopIcon\">\n </sky-icon-stack>\n </div>\n <div class=\"sky-alert-content\">\n <ng-content></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 class=\"sky-alert-close-icon-theme-default\" icon=\"close\">\n </sky-icon>\n <sky-icon\n class=\"sky-alert-close-icon-theme-modern\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </span>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyAlertComponent],\n})\nexport class SkyAlertModule {}\n","import { Component, Input } from '@angular/core';\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})\nexport class SkyExpansionIndicatorComponent {\n /**\n * Specifies whether the chevron points up or down.\n */\n @Input()\n public set direction(value: string) {\n /* istanbul ignore else */\n if (value != this._direction) {\n this._direction = value;\n }\n }\n\n public get direction(): string {\n return this._direction || 'up';\n }\n\n private _direction: string;\n}\n","<div\n aria-hidden=\"true\"\n class=\"sky-expansion-indicator\"\n [ngClass]=\"['sky-expansion-indicator-' + direction]\"\n>\n <ng-container *skyThemeIf=\"'default'\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <span class=\"sky-expansion-indicator-glyph-container\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n </span>\n </ng-container>\n</div>\n\n<ng-template #icon>\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</ng-template>\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';\n\n/**\n * Creates an accessible button that wraps the chevron icon.\n * @internal\n */\n@Component({\n selector: 'sky-chevron',\n styleUrls: ['./chevron.component.scss'],\n templateUrl: './chevron.component.html',\n})\nexport class SkyChevronComponent {\n /**\n * Specifies 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 */\n @Input()\n public ariaControls: string;\n\n /**\n * Specifies an ARIA label for the chevron. This sets the chevron's aria-label attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies whether the chevron points up or down.\n */\n @Input()\n public set direction(value: string) {\n /* istanbul ignore else */\n if (value != this._direction) {\n this._direction = value;\n /* istanbul ignore else */\n if (value === 'up') {\n this.ariaExpanded = true;\n } else if (this.direction === 'down') {\n this.ariaExpanded = false;\n }\n }\n }\n\n public get direction(): string {\n return this._direction || 'up';\n }\n\n /**\n * Indicates 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: boolean;\n\n private _direction: string;\n\n public chevronClick(event: Event): void {\n event.stopPropagation();\n this.direction = this.direction === 'up' ? 'down' : 'up';\n this.directionChange.emit(this.direction);\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-' + direction]\"\n [skyThemeClass]=\"{\n 'sky-btn sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"chevronClick($event)\"\n>\n <sky-expansion-indicator [direction]=\"direction\"></sky-expansion-indicator>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\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@NgModule({\n declarations: [SkyChevronComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n SkyExpansionIndicatorModule,\n ],\n exports: [SkyChevronComponent],\n})\nexport class SkyChevronModule {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'sky-help-inline',\n templateUrl: './help-inline.component.html',\n styleUrls: ['./help-inline.component.scss'],\n})\nexport class SkyHelpInlineComponent {\n /**\n * Fires when the user clicks the help inline button.\n */\n @Output()\n public actionClick = new EventEmitter<any>();\n\n public onClick(): void {\n this.actionClick.emit();\n }\n}\n","<button\n class=\"sky-help-inline\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_help_inline_button_title' | skyLibResources\"\n (click)=\"onClick()\"\n>\n <sky-icon *skyThemeIf=\"'default'\" icon=\"info-circle\"> </sky-icon>\n <sky-icon-stack\n *skyThemeIf=\"'modern'\"\n size=\"xs\"\n [baseIcon]=\"{\n icon: 'circle-solid',\n iconType: 'skyux'\n }\"\n [topIcon]=\"{\n icon: 'help-i',\n iconType: 'skyux'\n }\"\n >\n </sky-icon-stack>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyIconModule } from '../icon/icon.module';\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyHelpInlineComponent } from './help-inline.component';\n\n@NgModule({\n declarations: [SkyHelpInlineComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyHelpInlineComponent],\n})\nexport class SkyHelpInlineModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a label to display in smaller, plain text under or beside the value.\n * @required\n */\n@Component({\n selector: 'sky-key-info-label',\n template: '<ng-content></ng-content>',\n})\nexport class SkyKeyInfoLabelComponent {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a value to display in larger, bold text.\n * @required\n */\n@Component({\n selector: 'sky-key-info-value',\n template: '<ng-content></ng-content>',\n})\nexport class SkyKeyInfoValueComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sky-key-info',\n templateUrl: './key-info.component.html',\n styleUrls: ['./key-info.component.scss'],\n})\nexport class SkyKeyInfoComponent {\n /**\n * Specifies whether to display key info in a `vertical` layout with the label under the\n * value or in a `horizontal` layout with the label beside the value.\n * @default \"vertical\"\n */\n @Input()\n public layout = 'vertical';\n}\n","<div\n class=\"sky-key-info\"\n [ngClass]=\"{\n 'sky-key-info-horizontal': layout === 'horizontal'\n }\"\n>\n <div class=\"sky-key-info-value sky-headline\">\n <ng-content select=\"sky-key-info-value\"> </ng-content>\n </div>\n <div class=\"sky-key-info-label sky-field-label sky-font-data-label\">\n <ng-content select=\"sky-key-info-label\"> </ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { 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 declarations: [\n SkyKeyInfoComponent,\n SkyKeyInfoLabelComponent,\n SkyKeyInfoValueComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyKeyInfoComponent,\n SkyKeyInfoLabelComponent,\n SkyKeyInfoValueComponent,\n ],\n})\nexport class SkyKeyInfoModule {}\n","import { Component, Input } from '@angular/core';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\nimport { SkyIndicatorIconUtility } from '../shared/indicator-icon-utility';\n\nimport { SkyLabelType } from './label-type';\n\n@Component({\n selector: 'sky-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class SkyLabelComponent {\n /**\n * The type of label to display.\n * @required\n */\n @Input()\n public set labelType(value: SkyLabelType) {\n this._labelType = value;\n this.updateIcon();\n }\n\n public get labelType(): SkyLabelType {\n return this._labelType || 'info';\n }\n\n public baseIcon: SkyIconStackItem;\n\n public icon: string;\n\n public topIcon: SkyIconStackItem;\n\n private _labelType: SkyLabelType;\n\n private updateIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.labelType\n );\n\n this.icon = indicatorIcon.defaultThemeIcon;\n this.baseIcon = indicatorIcon.modernThemeBaseIcon;\n this.topIcon = indicatorIcon.modernThemeTopIcon;\n }\n}\n","<span class=\"sky-label\" [ngClass]=\"'sky-label-' + labelType\">\n <span class=\"sky-label-icon-theme-default\">\n <sky-icon [icon]=\"icon\"></sky-icon>\n </span>\n <span class=\"sky-label-icon-theme-modern\">\n <sky-icon-stack size=\"xs\" [baseIcon]=\"baseIcon\" [topIcon]=\"topIcon\">\n </sky-icon-stack>\n </span>\n <span class=\"sky-label-text\">\n <ng-content></ng-content>\n </span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconModule } from '../icon/icon.module';\n\nimport { SkyLabelComponent } from './label.component';\n\n@NgModule({\n declarations: [SkyLabelComponent],\n imports: [CommonModule, SkyIconModule],\n exports: [SkyLabelComponent],\n})\nexport class SkyLabelModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyIconStackItem } from '../icon/icon-stack-item';\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@Component({\n selector: 'sky-status-indicator',\n templateUrl: './status-indicator.component.html',\n styleUrls: ['./status-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyStatusIndicatorComponent {\n /**\n * Specifies a style for the status indicator to determine the icon.\n * The valid options are `danger`, `info`, `success`, and `warning`.\n * @default \"warning\"\n */\n @Input()\n public set indicatorType(value: SkyIndicatorIconType) {\n this._indicatorType = value;\n this.updateIcon();\n }\n\n public get indicatorType(): SkyIndicatorIconType {\n return this._indicatorType || INDICATOR_TYPE_DEFAULT;\n }\n\n /**\n * Specifies the predefined text to be read by screen readers for users\n * who cannot see the indicator icon. The valid options are `none`, `custom`,\n * `error`, `warning`, `completed`, and `important-info`.\n * @required\n */\n @Input()\n public set descriptionType(value: SkyIndicatorDescriptionType) {\n this._descriptionType = value;\n this.updateDescriptionComputed();\n }\n\n public get descriptionType(): SkyIndicatorDescriptionType {\n return this._descriptionType;\n }\n\n /**\n * Specifies 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) {\n this._customDescription = value;\n this.updateDescriptionComputed();\n }\n\n public get customDescription(): string {\n return this._customDescription;\n }\n\n public descriptionComputed: string;\n\n public baseIcon: SkyIconStackItem;\n\n public icon: string;\n\n public topIcon: SkyIconStackItem;\n\n private _indicatorType: SkyIndicatorIconType;\n\n private _descriptionType: SkyIndicatorDescriptionType;\n\n private _customDescription: string;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private resources: SkyLibResourcesService\n ) {}\n\n private updateIcon(): void {\n const indicatorIcon = SkyIndicatorIconUtility.getIconsForType(\n this.indicatorType\n );\n\n this.icon = indicatorIcon.defaultThemeIcon;\n this.baseIcon = indicatorIcon.modernThemeBaseIcon;\n this.topIcon = indicatorIcon.modernThemeTopIcon;\n }\n\n private 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.resources\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","<div *ngIf=\"descriptionType\" class=\"sky-status-indicator\">\n <div\n aria-hidden=\"true\"\n class=\"sky-margin-inline-xs sky-status-indicator-icon\"\n [ngClass]=\"'sky-status-indicator-icon-' + indicatorType\"\n >\n <span class=\"sky-status-indicator-icon-default\">\n <sky-icon [icon]=\"icon\"></sky-icon>\n </span>\n <span class=\"sky-status-indicator-icon-modern\">\n <sky-icon-stack size=\"xs\" [baseIcon]=\"baseIcon\" [topIcon]=\"topIcon\">\n </sky-icon-stack>\n </span>\n </div>\n <div class=\"sky-status-indicator-message-wrapper\">\n <span *ngIf=\"descriptionComputed\" class=\"sky-screen-reader-only\">\n {{ descriptionComputed }}\n </span>\n <span class=\"sky-status-indicator-message\">\n <ng-content></ng-content>\n </span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\n ],\n exports: [SkyStatusIndicatorComponent],\n})\nexport class SkyStatusIndicatorModule {}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\n\nconst className = 'sky-highlight-mark';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\n/**\n * Highlights all matching text within DOM elements that it is placed on.\n * The directive is only valid for elements that contain content, so you\n * cannot place it on `ng-template`, `ng-content`, or `ng-container` tags.\n */\n@Directive({\n selector: '[skyHighlight]',\n})\nexport class SkyTextHighlightDirective\n implements OnChanges, AfterViewInit, OnDestroy\n{\n /**\n * Specifies the text to highlight.\n */\n @Input()\n public set skyHighlight(value: string | string[]) {\n value = value || [];\n this._skyHighlight = [];\n\n if (Array.isArray(value)) {\n this._skyHighlight = 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._skyHighlight.sort(function (a, b) {\n return b.length - a.length;\n });\n } else {\n this._skyHighlight = [value as string];\n }\n }\n\n private existingHighlight = false;\n\n private observer: MutationObserver;\n\n private _skyHighlight: string[];\n\n constructor(\n private el: ElementRef,\n private observerService: MutationObserverService\n ) {}\n\n private static cleanRegex(regex: string): string {\n return regex.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n private static markNode(node: any, searchTerms: string[]): number {\n /* istanbul ignore else */\n if (searchTerms) {\n const text = node.nodeValue;\n for (let i = 0; i < searchTerms.length; i++) {\n searchTerms[i] = this.cleanRegex(searchTerms[i]);\n }\n const searchRegex = new RegExp(searchTerms.join('|'), 'gi');\n const match = searchRegex.exec(text);\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 = className;\n markNode.appendChild(middleClone);\n middle.parentNode.replaceChild(markNode, middle);\n\n return 1;\n }\n }\n return 0;\n }\n\n private static markTextNodes(\n node: HTMLElement,\n searchTerms: string[]\n ): number {\n if (node.nodeType === 3) {\n return SkyTextHighlightDirective.markNode(node, searchTerms);\n } else if (node.nodeType === 1 && node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const childNode = node.childNodes[i] as HTMLElement;\n i += SkyTextHighlightDirective.markTextNodes(childNode, searchTerms);\n }\n }\n\n return 0;\n }\n\n private static removeHighlight(el: ElementRef): void {\n const matchedElements = el.nativeElement.querySelectorAll(\n `mark.${className}`\n ) as NodeList;\n\n /* istanbul ignore else */\n /* sanity check */\n if (matchedElements) {\n for (let i = 0; i < matchedElements.length; i++) {\n const node = matchedElements[i];\n const parentNode = node.parentNode;\n\n parentNode.replaceChild(node.firstChild, node);\n parentNode.normalize();\n }\n }\n }\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.observerService.create(() => {\n this.highlight();\n });\n\n this.observeDom();\n if (this._skyHighlight && this._skyHighlight.length > 0) {\n this.highlight();\n }\n }\n\n public ngOnDestroy(): void {\n /* istanbul ignore else */\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private readyForHighlight(searchText: string[]): boolean {\n return searchText && searchText.length > 0 && this.el.nativeElement;\n }\n\n private highlight(): void {\n /* istanbul ignore else */\n if (this.observer) {\n this.observer.disconnect();\n }\n\n const searchText = this._skyHighlight;\n\n if (this.existingHighlight) {\n SkyTextHighlightDirective.removeHighlight(this.el);\n }\n\n /* istanbul ignore else */\n if (this.readyForHighlight(searchText)) {\n const node: HTMLElement = this.el.nativeElement;\n\n // mark all matched text in the DOM\n SkyTextHighlightDirective.markTextNodes(node, searchText);\n this.existingHighlight = true;\n }\n\n this.observeDom();\n }\n\n private observeDom(): void {\n /* istanbul ignore else */\n if (this.observer) {\n const config = {\n attributes: false,\n childList: true,\n characterData: true,\n };\n this.observer.observe(this.el.nativeElement, config);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\n\nimport { SkyTextHighlightDirective } from './text-highlight.directive';\n\n@NgModule({\n declarations: [SkyTextHighlightDirective],\n exports: [SkyTextHighlightDirective],\n providers: [MutationObserverService],\n})\nexport class SkyTextHighlightModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\n@Component({\n selector: 'sky-token',\n templateUrl: './token.component.html',\n styleUrls: ['./token.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTokenComponent {\n /**\n * Indicates 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 true\n */\n @Input()\n public set disabled(value: boolean) {\n this._disabled = value;\n }\n\n public get disabled(): boolean {\n return !!this._disabled;\n }\n\n /**\n * Specifies an ARIA label for the token's close button. This sets the button's `aria-label`\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * @default \"Remove item\"\n */\n @Input()\n public set ariaLabel(value: string) {\n this._ariaLabel = value;\n }\n\n public get ariaLabel(): string {\n return (\n this._ariaLabel || this.getString('skyux_tokens_dismiss_button_title')\n );\n }\n\n /**\n * Indicates whether users can remove the token from the list by selecting the close button\n * or pressing the `Backspace` key.\n * @default true\n */\n @Input()\n public set dismissible(value: boolean) {\n this._dismissible = value;\n }\n\n public get dismissible(): boolean {\n return this._dismissible !== false;\n }\n\n /**\n * Indicates whether users can press the `Tab` key to place focus on the token. 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) {\n this._focusable = value;\n }\n\n public get focusable(): boolean {\n return this._focusable !== false;\n }\n\n /**\n * Fires when users click the close button or press the `Backspace` key to dismiss the token.\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 /**\n * @internal\n */\n public get tabIndex(): number | boolean {\n return this.focusable ? 0 : -1;\n }\n\n /**\n * @internal\n */\n public tokenActive: boolean;\n\n /**\n * @internal\n */\n public closeActive: boolean;\n\n private _ariaLabel: string;\n private _disabled: boolean;\n private _dismissible: boolean;\n private _focusable: boolean;\n\n constructor(\n private elementRef: ElementRef,\n private resourcesService: SkyLibResourcesService\n ) {}\n\n public dismissToken(event: Event): void {\n event.stopPropagation();\n this.dismiss.emit();\n }\n\n public focusElement(): void {\n this.elementRef.nativeElement.querySelector('.sky-token').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 private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n}\n","<div\n class=\"sky-token sky-btn sky-btn-default\"\n role=\"button\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n [ngClass]=\"{\n 'sky-btn-disabled': disabled,\n 'sky-token-dismissable': dismissible,\n 'sky-token-active': tokenActive && !closeActive\n }\"\n (document:mouseup)=\"setTokenActive(false)\"\n (focus)=\"tokenFocus.emit()\"\n (mousedown)=\"setTokenActive(true)\"\n>\n <ng-content></ng-content>\n <button\n *ngIf=\"dismissible\"\n class=\"sky-btn sky-token-btn-close\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"tabIndex\"\n [attr.title]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\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 class=\"sky-token-btn-close-icon-default\" icon=\"times\"></sky-icon>\n <sky-icon\n class=\"sky-token-btn-close-icon-modern\"\n icon=\"close\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n</div>\n","export enum SkyTokensMessageType {\n /**\n * Places focus on the last token in the list.\n */\n FocusLastToken = 0,\n\n /**\n * Places focus on the token that is currently selected.\n */\n FocusActiveToken = 1,\n\n /**\n * Places focus on the token before the currently selected token.\n */\n FocusPreviousToken = 2,\n\n /**\n * Places focus on the token after the currently selected token.\n */\n FocusNextToken = 3,\n\n /**\n * Removes the token that is currently selected from the list of tokens.\n */\n RemoveActiveToken = 4,\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChildren,\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\n@Component({\n selector: 'sky-tokens',\n templateUrl: './tokens.component.html',\n styleUrls: ['./tokens.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('dismiss', [\n transition(':enter', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '150ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition(':leave', [\n animate(\n '150ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyTokensComponent implements OnDestroy {\n /**\n * Indicates 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) {\n this._disabled = value;\n }\n\n public get disabled(): boolean {\n return !!this._disabled;\n }\n\n /**\n * Indicates whether users can remove tokens from the list by selecting their close buttons\n * or pressing the `Backspace` key.\n * @default true\n */\n @Input()\n public set dismissible(value: boolean) {\n this._dismissible = value;\n }\n\n public get dismissible(): boolean {\n return this._dismissible !== false;\n }\n\n /**\n * Specifies the token property to display for each item in the tokens list.\n * @default \"name\"\n */\n @Input()\n public set displayWith(value: string) {\n this._displayWith = value;\n }\n\n public get displayWith(): string {\n return this._displayWith || 'name';\n }\n\n /**\n * Specifies 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;\n\n /**\n * Indicates whether users can focus on items 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) {\n this._focusable = value;\n }\n\n public get focusable(): boolean {\n return this._focusable !== false;\n }\n\n /**\n * Specifies an array of tokens to include in the list.\n */\n @Input()\n public set tokens(value: SkyToken[]) {\n this._tokens = value;\n this.tokensChange.emit(this._tokens);\n }\n\n public get tokens(): SkyToken[] {\n return this._tokens || [];\n }\n\n /**\n * Specifies an 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>) {\n this._messageStream = value;\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 usersnavigate 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 * @internal\n */\n public get activeIndex(): number {\n return this._activeIndex || 0;\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;\n }\n\n /**\n * internal\n */\n public trackTokenFn: (index: number, item: SkyToken) => any;\n\n @ViewChildren(SkyTokenComponent)\n private tokenComponents: QueryList<SkyTokenComponent>;\n\n private messageStreamSub: Subscription;\n private ngUnsubscribe = new Subject();\n\n private _activeIndex: number;\n private _disabled: boolean;\n private _dismissible: boolean;\n private _focusable: boolean;\n private _tokens: SkyToken[];\n private _displayWith: string;\n private _messageStream: Subject<SkyTokensMessage>;\n\n constructor(private changeDetector: ChangeDetectorRef) {\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) => {\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 /* tslint:disable-next-line:switch-default */\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 private focusPreviousToken(): void {\n this.activeIndex--;\n this.focusActiveToken();\n }\n\n private focusNextToken(): void {\n this.activeIndex++;\n this.focusActiveToken();\n }\n\n private focusLastToken(): void {\n this.activeIndex = this.tokenComponents.length - 1;\n this.focusActiveToken();\n }\n\n private focusActiveToken(): void {\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 private removeActiveToken(): void {\n const token = this.tokens[this.activeIndex];\n if (token) {\n this.removeToken(token);\n }\n }\n\n private initMessageStream(): void {\n if (this.messageStreamSub) {\n this.messageStreamSub.unsubscribe();\n }\n\n if (this.messageStream) {\n this.messageStreamSub = this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyTokensMessage) => {\n /* tslint:disable-next-line:switch-default */\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\n private notifyTokenSelected(token: SkyToken): void {\n this.tokenSelected.emit({\n token,\n });\n }\n}\n","<div\n *ngIf=\"tokens\"\n class=\"sky-tokens\"\n [@blockAnimationOnLoad]\n [attr.role]=\"tokens && tokens.length ? 'list' : null\"\n>\n <sky-token\n *ngFor=\"let token of tokens; let i = index; trackBy: trackTokenFn\"\n role=\"listitem\"\n [@.disabled]=\"!trackWith\"\n [@dismiss]\n [disabled]=\"disabled\"\n [dismissible]=\"dismissible\"\n [focusable]=\"focusable\"\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 <div class=\"sky-tokens-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '../icon/icon.module';\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 SkyI18nModule,\n SkyIconModule,\n SkyIndicatorsResourcesModule,\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\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n/**\n * @internal\n * @dynamic\n */\n@Injectable()\nexport class SkyWaitAdapterService implements OnDestroy {\n private static isPageWaitActive = false;\n private static busyElements: {\n [key: string]: { busyEl: HTMLElement; listener: any };\n } = {};\n\n private focussableElements: HTMLElement[];\n\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public ngOnDestroy(): void {\n this.clearListeners();\n }\n\n public setWaitBounds(waitEl: ElementRef): void {\n this.renderer.setStyle(\n waitEl.nativeElement.parentElement,\n 'position',\n 'relative'\n );\n }\n\n public removeWaitBounds(waitEl: ElementRef): void {\n this.renderer.removeStyle(waitEl.nativeElement.parentElement, 'position');\n }\n\n public setBusyState(\n waitEl: ElementRef,\n isFullPage: boolean,\n isWaiting: boolean,\n isNonBlocking = false,\n waitComponentId?: string\n ): void {\n const busyEl = isFullPage\n ? document.body\n : waitEl.nativeElement.parentElement;\n\n if (!isNonBlocking) {\n if (isWaiting) {\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 this.clearDocumentFocus();\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 any).blur();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.clearDocumentFocus();\n }\n }\n }\n );\n SkyWaitAdapterService.busyElements[waitComponentId] = {\n listener: endListenerFunc,\n busyEl: undefined,\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: any = event.target;\n target.blur();\n this.focusNextElement(target, this.isShift(event), busyEl);\n }\n }\n }\n );\n SkyWaitAdapterService.busyElements[waitComponentId] = {\n listener: endListenerFunc,\n busyEl: busyEl,\n };\n }\n } else {\n this.renderer.removeAttribute(busyEl, 'aria-busy');\n\n if (isFullPage) {\n SkyWaitAdapterService.isPageWaitActive = false;\n }\n if (waitComponentId in SkyWaitAdapterService.busyElements) {\n SkyWaitAdapterService.busyElements[waitComponentId].listener();\n delete SkyWaitAdapterService.busyElements[waitComponentId];\n }\n }\n }\n }\n\n private focusNextElement(\n targetElement: HTMLElement,\n shiftKey: boolean,\n busyEl: Element\n ): void {\n const focussable = this.getFocussableElements();\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 = focussable.indexOf(targetElement);\n let curIndex = startingIndex + modifier;\n while (\n focussable[curIndex] &&\n this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n if (\n focussable[curIndex] &&\n !this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n /* istanbul ignore next */\n /* sanity check */\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n /* istanbul ignore next */\n /* sanity check */\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (\n focussable[curIndex] &&\n !this.isElementBusyOrHidden(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n this.clearDocumentFocus();\n }\n }\n\n // clear focussableElements list\n this.focussableElements = undefined;\n }\n\n private isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().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 private isElementHidden(element: any): boolean {\n const style = window.getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden';\n }\n\n private isElementBusyOrHidden(element: any): boolean {\n if (this.isElementHidden(element)) {\n return true;\n }\n\n for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {\n const parentElement = SkyWaitAdapterService.busyElements[key].busyEl;\n if (parentElement && parentElement.contains(element)) {\n return true;\n }\n }\n return false;\n }\n\n private clearDocumentFocus(): void {\n /* istanbul ignore else */\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n\n private getFocussableElements(): HTMLElement[] {\n // Keep this cached so we can reduce querys\n if (this.focussableElements) {\n return this.focussableElements;\n }\n\n // Select all possible focussable elements\n const focussableElements =\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.focussableElements = Array.prototype.filter.call(\n document.body.querySelectorAll(focussableElements),\n (element: any) => {\n return (\n element.offsetWidth > 0 ||\n element.offsetHeight > 0 ||\n element === document.activeElement\n );\n }\n );\n return this.focussableElements;\n }\n\n private clearListeners(): void {\n SkyWaitAdapterService.isPageWaitActive = false;\n for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {\n SkyWaitAdapterService.busyElements[key].listener();\n delete SkyWaitAdapterService.busyElements[key];\n }\n }\n}\n","import { Component, ElementRef, Input, OnInit, Optional } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject } from 'rxjs';\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})\nexport class SkyWaitComponent implements OnInit {\n /**\n * Specifies an ARIA label for the wait icon while an element or page loads.\n * This sets the icon's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * The default value varies based on whether the wait is for an element or a page\n * and whether it is a blocking wait. For example, the default for a page-blocking\n * wait is \"Page loading. Please wait.\"\n */\n @Input()\n public ariaLabel: string;\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) {\n if (value && !this._isFullPage) {\n this.adapterService.setWaitBounds(this.elRef);\n } else if (!value && !this._isFullPage) {\n this.adapterService.removeWaitBounds(this.elRef);\n }\n\n this.adapterService.setBusyState(\n this.elRef,\n this.isFullPage,\n value,\n this.isNonBlocking,\n this.id\n );\n\n this._isWaiting = value;\n }\n\n public get isWaiting(): boolean {\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) {\n /* istanbul ignore else: untestable */\n if (value) {\n this.adapterService.removeWaitBounds(this.elRef);\n } else if (!value && this._isWaiting) {\n this.adapterService.setWaitBounds(this.elRef);\n }\n\n this._isFullPage = value;\n }\n\n public get isFullPage(): boolean {\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 isNonBlocking: boolean;\n\n public ariaLabelStream = new BehaviorSubject<string>('');\n\n private id = `sky-wait-${++nextId}`;\n private _isFullPage: boolean;\n private _isWaiting: boolean;\n\n constructor(\n private elRef: ElementRef,\n private adapterService: SkyWaitAdapterService,\n @Optional() private resourceService: SkyLibResourcesService\n ) {}\n\n public ngOnInit(): void {\n this.publishAriaLabel();\n }\n\n private publishAriaLabel(): void {\n if (this.ariaLabel) {\n this.ariaLabelStream.next(this.ariaLabel);\n return;\n }\n\n /* istanbul ignore else */\n if (this.resourceService) {\n const type = this.isFullPage ? '_page' : '';\n const blocking = this.isNonBlocking ? '' : '_blocking';\n const key = `skyux_wait${type}${blocking}_aria_alt_text`;\n this.resourceService.getString(key).subscribe((value: string) => {\n this.ariaLabelStream.next(value);\n });\n }\n }\n}\n","<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\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</div>\n","import { Component, Input } from '@angular/core';\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})\nexport class SkyWaitPageComponent {\n @Input()\n public hasBlockingWait: boolean;\n\n @Input()\n public hasNonBlockingWait: boolean;\n}\n","<div class=\"sky-wait-page\">\n <sky-wait\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n >\n </sky-wait>\n <sky-wait [isFullPage]=\"true\" [isWaiting]=\"hasBlockingWait\"> </sky-wait>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';\n\nimport { SkyWaitPageComponent } from './wait-page.component';\nimport { SkyWaitComponent } from './wait.component';\n\n@NgModule({\n declarations: [SkyWaitComponent, SkyWaitPageComponent],\n imports: [CommonModule, SkyI18nModule, SkyIndicatorsResourcesModule],\n exports: [SkyWaitComponent],\n entryComponents: [SkyWaitPageComponent],\n})\nexport class SkyWaitModule {}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyWaitPageAdapterService {\n public addPageWaitEl(): void {\n document.body.appendChild(document.createElement('sky-wait-page'));\n }\n\n public removePageWaitEl(): void {\n const waitEl = document.querySelector('sky-wait-page');\n if (waitEl) {\n document.body.removeChild(waitEl);\n }\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n Injectable,\n} from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { Observable, defer as observableDefer } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { SkyWaitPageAdapterService } from './wait-page-adapter.service';\nimport { SkyWaitPageComponent } from './wait-page.component';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyWaitService {\n private static waitComponent: SkyWaitPageComponent;\n private static pageWaitBlockingCount = 0;\n private static pageWaitNonBlockingCount = 0;\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private waitAdapter: SkyWaitPageAdapterService,\n private windowSvc: SkyAppWindowRef\n ) {}\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 (SkyWaitService.waitComponent) {\n SkyWaitService.waitComponent = undefined;\n SkyWaitService.pageWaitBlockingCount = 0;\n SkyWaitService.pageWaitNonBlockingCount = 0;\n this.waitAdapter.removePageWaitEl();\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 private setWaitComponentProperties(isBlocking: boolean): void {\n if (isBlocking) {\n SkyWaitService.waitComponent.hasBlockingWait = true;\n SkyWaitService.pageWaitBlockingCount++;\n } else {\n SkyWaitService.waitComponent.hasNonBlockingWait = true;\n SkyWaitService.pageWaitNonBlockingCount++;\n }\n }\n\n private beginPageWait(isBlocking: boolean): void {\n if (!SkyWaitService.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 (!SkyWaitService.waitComponent) {\n const factory =\n this.resolver.resolveComponentFactory(SkyWaitPageComponent);\n this.waitAdapter.addPageWaitEl();\n\n const cmpRef = this.appRef.bootstrap(factory);\n SkyWaitService.waitComponent = cmpRef.instance;\n }\n\n this.setWaitComponentProperties(isBlocking);\n });\n } else {\n this.setWaitComponentProperties(isBlocking);\n }\n }\n\n private 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 (SkyWaitService.waitComponent) {\n if (isBlocking) {\n if (SkyWaitService.pageWaitBlockingCount > 0) {\n SkyWaitService.pageWaitBlockingCount--;\n }\n\n if (SkyWaitService.pageWaitBlockingCount < 1) {\n SkyWaitService.waitComponent.hasBlockingWait = false;\n }\n } else {\n if (SkyWaitService.pageWaitNonBlockingCount > 0) {\n SkyWaitService.pageWaitNonBlockingCount--;\n }\n\n if (SkyWaitService.pageWaitNonBlockingCount < 1) {\n SkyWaitService.waitComponent.hasNonBlockingWait = false;\n }\n }\n }\n });\n }\n\n private clearPageWait(isBlocking: boolean): void {\n if (SkyWaitService.waitComponent) {\n if (isBlocking) {\n SkyWaitService.pageWaitBlockingCount = 0;\n SkyWaitService.waitComponent.hasBlockingWait = false;\n } else {\n SkyWaitService.pageWaitNonBlockingCount = 0;\n SkyWaitService.waitComponent.hasNonBlockingWait = false;\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableDefer"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { SkyAppLocaleInfo, SkyLibResourcesProvider } from '@skyux/i18n';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@skyux/i18n";
4
4
  export declare class SkyIndicatorsResourcesProvider implements SkyLibResourcesProvider {
5
- getString(localeInfo: SkyAppLocaleInfo, name: string): string;
5
+ getString(localeInfo: SkyAppLocaleInfo, name: string): string | undefined;
6
6
  }
7
7
  /**
8
8
  * Import into any component library module that needs to use resource strings.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/indicators",
3
- "version": "5.6.2",
3
+ "version": "5.7.2",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -20,10 +20,10 @@
20
20
  "@angular/common": "^12.2.16",
21
21
  "@angular/core": "^12.2.16",
22
22
  "@angular/platform-browser": "^12.2.16",
23
- "@skyux-sdk/testing": "5.6.2",
24
- "@skyux/core": "5.6.2",
25
- "@skyux/i18n": "5.6.2",
26
- "@skyux/theme": "5.6.2"
23
+ "@skyux-sdk/testing": "5.7.2",
24
+ "@skyux/core": "5.7.2",
25
+ "@skyux/i18n": "5.7.2",
26
+ "@skyux/theme": "5.7.2"
27
27
  },
28
28
  "dependencies": {
29
29
  "tslib": "^2.3.1"