@skyux/layout 4.7.0 → 4.7.4
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.
- package/CHANGELOG.md +17 -0
- package/bundles/skyux-layout.umd.js +17 -9
- package/bundles/skyux-layout.umd.js.map +1 -1
- package/bundles/skyux-layout.umd.min.js +2 -2
- package/bundles/skyux-layout.umd.min.js.map +1 -1
- package/esm2015/modules/action-button/action-button-header.component.js +1 -1
- package/esm2015/modules/action-button/action-button-icon.component.js +1 -1
- package/esm2015/modules/description-list/description-list.component.js +1 -1
- package/esm2015/modules/fluid-grid/fluid-grid.component.js +5 -1
- package/esm2015/modules/fluid-grid/row.component.js +6 -2
- package/esm2015/modules/toolbar/toolbar-item.component.js +1 -1
- package/esm2015/modules/toolbar/toolbar-section.component.js +1 -1
- package/esm2015/modules/toolbar/toolbar-view-actions.component.js +1 -1
- package/esm2015/modules/toolbar/toolbar.component.js +1 -1
- package/esm2015/plugin-resources/layout-resources-provider.js +2 -2
- package/esm5/modules/action-button/action-button-header.component.js +1 -1
- package/esm5/modules/action-button/action-button-icon.component.js +1 -1
- package/esm5/modules/description-list/description-list.component.js +1 -1
- package/esm5/modules/fluid-grid/fluid-grid.component.js +5 -1
- package/esm5/modules/fluid-grid/row.component.js +6 -2
- package/esm5/modules/toolbar/toolbar-item.component.js +1 -1
- package/esm5/modules/toolbar/toolbar-section.component.js +1 -1
- package/esm5/modules/toolbar/toolbar-view-actions.component.js +1 -1
- package/esm5/modules/toolbar/toolbar.component.js +1 -1
- package/esm5/plugin-resources/layout-resources-provider.js +2 -2
- package/fesm2015/skyux-layout.js +17 -9
- package/fesm2015/skyux-layout.js.map +1 -1
- package/fesm5/skyux-layout.js +17 -9
- package/fesm5/skyux-layout.js.map +1 -1
- package/modules/fluid-grid/fluid-grid.component.d.ts +4 -0
- package/modules/fluid-grid/row.component.d.ts +4 -0
- package/package.json +2 -1
- package/skyux-layout.metadata.json +1 -1
- package/src/assets/locales/resources_en_US.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-layout.js","sources":["ng://@skyux/layout/modules/action-button/action-button-adapter-service.ts","ng://@skyux/layout/modules/action-button/action-button.component.ts","ng://@skyux/layout/modules/action-button/action-button-container.component.ts","ng://@skyux/layout/modules/action-button/action-button-details.component.ts","ng://@skyux/layout/modules/action-button/action-button-header.component.ts","ng://@skyux/layout/modules/action-button/action-button-icon.component.ts","ng://@skyux/layout/modules/action-button/action-button.module.ts","ng://@skyux/layout/plugin-resources/layout-resources-provider.ts","ng://@skyux/layout/modules/shared/layout-resources.module.ts","ng://@skyux/layout/modules/back-to-top/back-to-top-adapter.service.ts","ng://@skyux/layout/modules/back-to-top/back-to-top.component.ts","ng://@skyux/layout/modules/back-to-top/models/back-to-top-message-type.ts","ng://@skyux/layout/modules/back-to-top/back-to-top.directive.ts","ng://@skyux/layout/modules/back-to-top/back-top-top.module.ts","ng://@skyux/layout/modules/inline-delete/inline-delete-adapter.service.ts","ng://@skyux/layout/modules/inline-delete/inline-delete-type.ts","ng://@skyux/layout/modules/inline-delete/inline-delete.component.ts","ng://@skyux/layout/modules/inline-delete/inline-delete.module.ts","ng://@skyux/layout/modules/card/card-actions.component.ts","ng://@skyux/layout/modules/card/card-content.component.ts","ng://@skyux/layout/modules/card/card-title.component.ts","ng://@skyux/layout/modules/card/card.component.ts","ng://@skyux/layout/modules/card/card.module.ts","ng://@skyux/layout/modules/definition-list/definition-list.service.ts","ng://@skyux/layout/modules/definition-list/definition-list.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-content.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-heading.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-label.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-value.component.ts","ng://@skyux/layout/modules/definition-list/definition-list.module.ts","ng://@skyux/layout/modules/description-list/description-list-adapter-service.ts","ng://@skyux/layout/modules/description-list/types/description-list-mode.ts","ng://@skyux/layout/modules/description-list/description-list-term.component.ts","ng://@skyux/layout/modules/description-list/description-list.service.ts","ng://@skyux/layout/modules/description-list/description-list-description.component.ts","ng://@skyux/layout/modules/description-list/description-list-content.component.ts","ng://@skyux/layout/modules/description-list/description-list.component.ts","ng://@skyux/layout/modules/description-list/description-list.module.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid-gutter-size.ts","ng://@skyux/layout/modules/fluid-grid/row.component.ts","ng://@skyux/layout/modules/fluid-grid/column.component.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid.component.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid.module.ts","ng://@skyux/layout/modules/format/format.component.ts","ng://@skyux/layout/modules/format/format.module.ts","ng://@skyux/layout/modules/page/page-theme-adapter.service.ts","ng://@skyux/layout/modules/page/page.component.ts","ng://@skyux/layout/modules/page/page.module.ts","ng://@skyux/layout/modules/page-summary/page-summary-alert.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-content.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-image.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-key-info.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-status.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-subtitle.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-title.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-adapter.service.ts","ng://@skyux/layout/modules/page-summary/page-summary.component.ts","ng://@skyux/layout/modules/page-summary/page-summary.module.ts","ng://@skyux/layout/modules/text-expand/text-expand-adapter.service.ts","ng://@skyux/layout/modules/text-expand/text-expand-modal-context.ts","ng://@skyux/layout/modules/text-expand/text-expand-modal.component.ts","ng://@skyux/layout/modules/text-expand/text-expand.component.ts","ng://@skyux/layout/modules/text-expand/text-expand.module.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater-adapter.service.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater.component.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater.module.ts","ng://@skyux/layout/modules/toolbar/toolbar-section.component.ts","ng://@skyux/layout/modules/toolbar/toolbar.component.ts","ng://@skyux/layout/modules/toolbar/toolbar-item.component.ts","ng://@skyux/layout/modules/toolbar/toolbar-view-actions.component.ts","ng://@skyux/layout/modules/toolbar/toolbar.module.ts","ng://@skyux/layout/skyux-layout.ts"],"sourcesContent":["import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\nconst RESPONSIVE_CLASS_SM = 'sky-action-button-container-sm';\nconst RESPONSIVE_CLASS_MD = 'sky-action-button-container-md';\nconst RESPONSIVE_CLASS_LG = 'sky-action-button-container-lg';\n\nconst BREAKPOINT_MD = 912;\nconst BREAKPOINT_LG = 1378;\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyActionButtonAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getParentWidth(element: ElementRef): number {\n return element.nativeElement.parentNode.getBoundingClientRect().width;\n }\n\n public setResponsiveClass(element: ElementRef, width: number): void {\n const el: any = element.nativeElement;\n const className = this.getResponsiveClassName(width);\n\n this.renderer.removeClass(el, RESPONSIVE_CLASS_SM);\n this.renderer.removeClass(el, RESPONSIVE_CLASS_MD);\n this.renderer.removeClass(el, RESPONSIVE_CLASS_LG);\n\n this.renderer.addClass(el, className);\n }\n\n private getResponsiveClassName(width: number): string {\n if (width < BREAKPOINT_MD) {\n return RESPONSIVE_CLASS_SM;\n } else if (width > BREAKPOINT_MD && width < BREAKPOINT_LG) {\n return RESPONSIVE_CLASS_MD;\n } else {\n return RESPONSIVE_CLASS_LG;\n }\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n SkyActionButtonPermalink\n} from './action-button-permalink';\n\n/**\n * Creates a button to present users with an option to move forward with tasks.\n */\n@Component({\n selector: 'sky-action-button',\n styleUrls: ['./action-button.component.scss'],\n templateUrl: './action-button.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyActionButtonComponent {\n\n/**\n * Specifies a link for the action button.\n */\n @Input()\n public permalink: SkyActionButtonPermalink;\n\n/**\n * Fires when users select the action button.\n */\n @Output()\n public actionClick = new EventEmitter<any>();\n\n public buttonClicked() {\n this.actionClick.emit();\n }\n\n public enterPress() {\n this.actionClick.emit();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n MutationObserverService,\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyActionButtonContainerAlignItems\n} from './types/action-button-container-align-items';\n\nimport {\n SkyActionButtonAdapterService\n} from './action-button-adapter-service';\n\nimport {\n SkyActionButtonComponent\n} from './action-button.component';\n\n/**\n * Wraps action buttons to ensures that they have consistent height and spacing.\n * @required\n */\n@Component({\n selector: 'sky-action-button-container',\n styleUrls: ['./action-button-container.component.scss'],\n templateUrl: './action-button-container.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyActionButtonContainerComponent implements AfterContentInit, OnDestroy, OnInit {\n\n /**\n * Specifies how to display the action buttons inside the action button container.\n * @default SkyActionButtonContainerAlignItems.center\n */\n @Input()\n public set alignItems(value: SkyActionButtonContainerAlignItems) {\n this._alignItems = value;\n }\n\n public get alignItems(): SkyActionButtonContainerAlignItems {\n return this._alignItems || SkyActionButtonContainerAlignItems.Center;\n }\n\n @ContentChildren(SkyActionButtonComponent)\n private actionButtons: QueryList<SkyActionButtonComponent>;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true\n })\n private containerRef: ElementRef<any>;\n\n private mutationObserver: MutationObserver;\n\n private ngUnsubscribe = new Subject();\n\n private set themeName(value: string) {\n this._themeName = value;\n this.updateResponsiveClass();\n this.updateHeight();\n }\n\n private _alignItems: SkyActionButtonContainerAlignItems;\n\n private _themeName: string;\n\n constructor(\n private actionButtonAdapterService: SkyActionButtonAdapterService,\n private changeRef: ChangeDetectorRef,\n private coreAdapterService: SkyCoreAdapterService,\n private hostElRef: ElementRef,\n private mutationObserverSvc: MutationObserverService,\n private ngZone: NgZone,\n @Optional() private themeSvc?: SkyThemeService\n ) { }\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n this.themeName = themeSettings.currentSettings?.theme?.name;\n this.changeRef.markForCheck();\n });\n }\n\n // Wait for children components to complete rendering before container width is determined.\n setTimeout(() => {\n this.updateResponsiveClass();\n });\n }\n\n public ngAfterContentInit(): void {\n // Watch for dynamic action button changes and recalculate height.\n this.actionButtons?.changes\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(() => {\n this.updateHeight();\n });\n\n this.initMutationObserver();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.destroyMutationObserver();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.updateResponsiveClass();\n }\n\n private initMutationObserver(): void {\n if (!this.mutationObserver) {\n const el = this.containerRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // scenarios. This will keep MutationObserver from triggering change detection.\n this.ngZone.runOutsideAngular(() => {\n this.mutationObserver = this.mutationObserverSvc.create(() => {\n this.updateHeight();\n });\n\n this.mutationObserver.observe(\n el,\n {\n characterData: true,\n subtree: true\n }\n );\n });\n }\n }\n\n private destroyMutationObserver(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n private updateHeight(): void {\n this.coreAdapterService.resetHeight(this.containerRef, '.sky-action-button');\n if (this._themeName === 'modern') {\n // Wait for children components to complete rendering before height is determined.\n setTimeout(() => {\n this.coreAdapterService.syncMaxHeight(this.containerRef, '.sky-action-button');\n });\n }\n }\n\n private updateResponsiveClass(): void {\n const parentWidth = this.actionButtonAdapterService.getParentWidth(this.hostElRef);\n this.actionButtonAdapterService.setResponsiveClass(this.containerRef, parentWidth);\n }\n\n}\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a description to display on an action button.\n */\n@Component({\n selector: 'sky-action-button-details',\n templateUrl: './action-button-details.component.html'\n})\nexport class SkyActionButtonDetailsComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a header to display on an action button.\n */\n@Component({\n selector: 'sky-action-button-header',\n styleUrls: ['./action-button-header.component.scss'],\n templateUrl: './action-button-header.component.html'\n})\nexport class SkyActionButtonHeaderComponent {}\n","import {\n Component,\n Input,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService\n} from '@skyux/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nconst FONTSIZECLASS_SMALL = '2x';\nconst FONTSIZECLASS_LARGE = '3x';\n\n/**\n * Specifies an icon to display on the action button.\n */\n@Component({\n selector: 'sky-action-button-icon',\n styleUrls: ['./action-button-icon.component.scss'],\n templateUrl: './action-button-icon.component.html'\n})\nexport class SkyActionButtonIconComponent implements OnDestroy {\n\n/**\n * Specifies an icon from the\n * [Font Awesome library](https://fontawesome.com/v4.7.0/).\n * For example, to display the `fa-filter` icon on the action button,\n * set `iconType` to `filter`. SKY UX supports version 4.7.0 of Font Awesome.\n * For more information about icons in SKY UX, see the\n * [icon component](https://developer.blackbaud.com/skyux-indicators/docs/icon).\n */\n @Input()\n public iconType: string;\n\n public fontSizeClass: string = FONTSIZECLASS_LARGE;\n\n private subscription: Subscription;\n\n constructor(private mediaQueryService: SkyMediaQueryService) {\n this.subscription = this.mediaQueryService.subscribe((args: SkyMediaBreakpoints) => {\n if (args === SkyMediaBreakpoints.xs) {\n this.fontSizeClass = FONTSIZECLASS_SMALL;\n } else {\n this.fontSizeClass = FONTSIZECLASS_LARGE;\n }\n });\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n RouterModule\n} from '@angular/router';\n\nimport {\n MutationObserverService,\n SkyCoreAdapterService,\n SkyMediaQueryModule\n} from '@skyux/core';\n\nimport {\n SkyIconModule\n} from '@skyux/indicators';\n\nimport {\n SkyHrefModule\n} from '@skyux/router';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyActionButtonAdapterService\n} from './action-button-adapter-service';\n\nimport {\n SkyActionButtonContainerComponent\n} from './action-button-container.component';\n\nimport {\n SkyActionButtonDetailsComponent\n} from './action-button-details.component';\n\nimport {\n SkyActionButtonHeaderComponent\n} from './action-button-header.component';\n\nimport {\n SkyActionButtonIconComponent\n} from './action-button-icon.component';\n\nimport {\n SkyActionButtonComponent\n} from './action-button.component';\n\n@NgModule({\n declarations: [\n SkyActionButtonComponent,\n SkyActionButtonContainerComponent,\n SkyActionButtonDetailsComponent,\n SkyActionButtonHeaderComponent,\n SkyActionButtonIconComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n SkyIconModule,\n SkyMediaQueryModule,\n SkyThemeModule,\n SkyHrefModule\n ],\n exports: [\n SkyActionButtonComponent,\n SkyActionButtonContainerComponent,\n SkyActionButtonDetailsComponent,\n SkyActionButtonHeaderComponent,\n SkyActionButtonIconComponent\n ],\n providers: [\n MutationObserverService,\n SkyActionButtonAdapterService,\n SkyCoreAdapterService\n ]\n})\nexport class SkyActionButtonModule { }\n","\nimport {\n Injectable\n} from '@angular/core';\n\nimport {\n getStringForLocale,\n SkyAppLocaleInfo,\n SkyLibResourcesProvider\n} from '@skyux/i18n';\n\n@Injectable()\nexport class SkyLayoutResourcesProvider implements SkyLibResourcesProvider {\n private resources: any = {\"EN-US\":{\"skyux_back_to_top\":\"Back to top\",\"skyux_card_checkbox_label\":\"Select card\",\"skyux_definition_list_none_found\":\"None found\",\"skyux_description_list_none_found\":\"None found\",\"skyux_inline_delete_assistive_text\":\"Are you sure you want to delete this item?\",\"skyux_inline_delete_cancel\":\"Cancel\",\"skyux_inline_delete_confirm_deletion\":\"Confirm deletion\",\"skyux_inline_delete_delete\":\"Delete\",\"skyux_text_expand_close_text\":\"Close\",\"skyux_text_expand_modal_title\":\"Expanded view\",\"skyux_text_expand_see_less\":\"See less\",\"skyux_text_expand_see_more\":\"See more\"}};\n\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getStringForLocale(this.resources, localeInfo.locale, name);\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SKY_LIB_RESOURCES_PROVIDERS\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesProvider\n} from '../../plugin-resources/layout-resources-provider';\n\n@NgModule({\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyLayoutResourcesProvider,\n multi: true\n }]\n})\nexport class SkyLayoutResourcesModule { }\n","import {\n ElementRef,\n Injectable,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyAppWindowRef\n} from '@skyux/core';\n\nimport {\n fromEvent,\n Observable,\n Subject\n} from 'rxjs';\n\nimport {\n map,\n takeUntil\n} from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyBackToTopDomAdapterService implements OnDestroy {\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private windowRef: SkyAppWindowRef\n ) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * This event returns a boolean on scroll indicating whether the provided element is in view.\n * @param elementRef The target element reference.\n */\n public elementInViewOnScroll(elementRef: ElementRef): Observable<boolean> {\n const parent = this.findScrollableParent(elementRef.nativeElement);\n\n return fromEvent(parent, 'scroll')\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(() => {\n const isInView = this.isElementScrolledInView(\n elementRef.nativeElement,\n parent\n );\n return isInView;\n })\n );\n }\n\n /**\n * Scrolls the window or scrollable parent to the provided element.\n * @param elementRef The target element reference.\n */\n public scrollToElement(elementRef: ElementRef): void {\n /* sanity check */\n /* istanbul ignore if */\n if (!elementRef || !elementRef.nativeElement) {\n return;\n }\n\n const windowObj = this.windowRef.nativeWindow;\n const parent = this.findScrollableParent(elementRef.nativeElement);\n\n if (parent === windowObj) {\n // Scroll to top of window, but account for the body margin that allows for the omnibar if it exists.\n const bodyMarginOffset = parseInt(getComputedStyle(document.body).marginTop, 10);\n const newOffsetTop = elementRef.nativeElement.offsetTop - bodyMarginOffset;\n this.windowRef.nativeWindow.scrollTo(\n elementRef.nativeElement.offsetLeft,\n newOffsetTop\n );\n } else {\n // Scroll to top of parent element.\n parent.scrollTop = parent.offsetTop - elementRef.nativeElement.offsetTop;\n }\n }\n\n public findScrollableParent(element: any): any {\n const regex = /(auto|scroll)/;\n const windowObj = this.windowRef.nativeWindow;\n const bodyObj = windowObj.document.body;\n\n let style = windowObj.getComputedStyle(element);\n let parent = element;\n\n do {\n parent = parent.parentNode;\n style = windowObj.getComputedStyle(parent);\n } while (\n !regex.test(style.overflow) &&\n !regex.test(style.overflowY) &&\n parent !== bodyObj\n );\n\n if (parent === bodyObj) {\n return windowObj;\n }\n\n return parent;\n }\n\n public isElementScrolledInView(\n element: any,\n parentElement: any\n ): boolean {\n const buffer = 25;\n const windowObj = this.windowRef.nativeWindow;\n const elementRect = element.getBoundingClientRect();\n\n /* istanbul ignore else */\n if (parentElement === windowObj) {\n return (elementRect.top > -buffer);\n } else {\n const parentRect = parentElement.getBoundingClientRect();\n return (elementRect.top > parentRect.top - buffer);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\nimport {\n Observable,\n Subject\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-back-to-top',\n templateUrl: './back-to-top.component.html',\n styleUrls: [\n './back-to-top.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyBackToTopComponent {\n\n public get scrollToTopClick(): Observable<void> {\n return this._scrollToTopClick.asObservable();\n }\n\n private _scrollToTopClick = new Subject<void>();\n\n public onScrollToTopClick(): void {\n this._scrollToTopClick.next();\n this._scrollToTopClick.complete();\n }\n\n}\n","/**\n * Specifies the type of message to send to the back to top component.\n */\nexport enum SkyBackToTopMessageType {\n\n /**\n * Scrolls the element back to the top.\n */\n BackToTop = 0\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyDockItem,\n SkyDockService\n} from '@skyux/core';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n SkyBackToTopDomAdapterService\n} from './back-to-top-adapter.service';\n\nimport {\n SkyBackToTopComponent\n} from './back-to-top.component';\n\nimport {\n SkyBackToTopMessage\n} from './models/back-to-top-message';\n\nimport {\n SkyBackToTopMessageType\n} from './models/back-to-top-message-type';\n\nimport {\n SkyBackToTopOptions\n} from './models/back-to-top-options';\n\n/**\n * Associates a button with an element on the page and displays that button\n * to return to the element after users scroll away.\n */\n@Directive({\n selector: '[skyBackToTop]',\n providers: [\n SkyBackToTopDomAdapterService\n ]\n})\nexport class SkyBackToTopDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Specifies configuration options for the back to top component.\n */\n @Input()\n public set skyBackToTop(value: SkyBackToTopOptions) {\n this.buttonHidden = !!value?.buttonHidden;\n\n this.handleBackToTopButton(this.elementInView);\n }\n\n /**\n * Provides an observable to send commands to the back to top component.\n * The commands respect the `SkyBackToTopMessage` type.\n */\n @Input()\n public set skyBackToTopMessageStream(value: Subject<SkyBackToTopMessage>) {\n if (this._skyBackToTopMessageStream) {\n this._skyBackToTopMessageStream.unsubscribe();\n }\n this._skyBackToTopMessageStream = value;\n this._skyBackToTopMessageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyBackToTopMessage) => this.handleIncomingMessages(message));\n }\n\n private buttonHidden = false;\n private dockItem: SkyDockItem<SkyBackToTopComponent>;\n private elementInView: boolean;\n\n private ngUnsubscribe = new Subject<void>();\n private _skyBackToTopMessageStream: Subject<SkyBackToTopMessage>;\n\n constructor(\n private dockService: SkyDockService,\n private domAdapter: SkyBackToTopDomAdapterService,\n private element: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n const scrollableParent = this.domAdapter.findScrollableParent(this.element.nativeElement);\n this.elementInView = this.domAdapter.isElementScrolledInView(this.element.nativeElement, scrollableParent);\n\n this.handleBackToTopButton(this.elementInView);\n this.setBackToTopListeners();\n }\n\n public ngOnDestroy(): void {\n if (this.dockItem) {\n this.dockItem.destroy();\n }\n }\n\n private handleBackToTopButton(elementInView: boolean): void {\n // Add back to top button if user scrolls down and button is not hidden.\n if (!this.dockItem && elementInView !== undefined && !elementInView && !this.buttonHidden) {\n this.addBackToTop();\n }\n // Remove back to top button if user scrolls back up.\n if (elementInView || this.buttonHidden) {\n this.destroyBackToTop();\n }\n }\n\n private addBackToTop(): void {\n this.dockItem = this.dockService.insertComponent(SkyBackToTopComponent);\n\n // Listen for clicks on the \"back to top\" button so we know when to scroll up.\n this.dockItem.componentInstance.scrollToTopClick\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.domAdapter.scrollToElement(this.element);\n });\n }\n\n private handleIncomingMessages(message: SkyBackToTopMessage): void {\n /* istanbul ignore else */\n if (message.type === SkyBackToTopMessageType.BackToTop) {\n this.domAdapter.scrollToElement(this.element);\n }\n }\n\n private setBackToTopListeners(): void {\n /* istanbul ignore else */\n if (this.element) {\n this.domAdapter.elementInViewOnScroll(this.element)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((elementInView: boolean) => {\n this.elementInView = elementInView;\n\n this.handleBackToTopButton(elementInView);\n });\n }\n }\n\n private destroyBackToTop(): void {\n /* istanbul ignore else */\n if (this.dockItem) {\n this.dockItem.destroy();\n this.dockItem = undefined;\n }\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyAppWindowRef,\n SkyDockModule\n} from '@skyux/core';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyBackToTopDirective\n} from './back-to-top.directive';\n\nimport {\n SkyBackToTopComponent\n} from './back-to-top.component';\n\n@NgModule({\n declarations: [\n SkyBackToTopComponent,\n SkyBackToTopDirective\n ],\n providers: [\n SkyAppWindowRef\n ],\n imports: [\n CommonModule,\n SkyDockModule,\n SkyI18nModule,\n SkyLayoutResourcesModule\n ],\n exports: [\n SkyBackToTopComponent,\n SkyBackToTopDirective\n ],\n entryComponents: [\n SkyBackToTopComponent\n ]\n})\nexport class SkyBackToTopModule { }\n","import {\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\nimport {\n SkyCoreAdapterService\n} from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineDeleteAdapterService {\n\n private element: HTMLElement;\n private focussableElements: HTMLElement[];\n private parentEl: HTMLElement;\n private parentElUnlistenFn: Function;\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public clearListeners(): void {\n /* istanbul ignore else */\n if (this.parentElUnlistenFn) {\n this.parentElUnlistenFn();\n }\n }\n\n public setEl(element: HTMLElement): void {\n this.element = element;\n this.parentEl = element.parentElement;\n\n /* istanbul ignore else */\n if (this.parentEl) {\n this.parentElUnlistenFn = this.renderer.listen(this.parentEl, 'focusin',\n (event: FocusEvent) => {\n const target: any = event.target;\n if (!this.element.contains(target) && this.parentEl !== target) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n target.blur();\n this.focusNextElement(target, this.isShift(event), this.parentEl);\n }\n });\n }\n }\n\n private focusNextElement(targetElement: HTMLElement, shiftKey: boolean, busyEl: Element): 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 (focussable[curIndex] && this.isElementHiddenOrCovered(focussable[curIndex])) {\n curIndex += modifier;\n }\n\n if (focussable[curIndex] && !this.isElementHiddenOrCovered(focussable[curIndex])) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (focussable[curIndex] && !this.isElementHiddenOrCovered(focussable[curIndex])) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n // This should never happen in practice due to the multiple inline delete buttons\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n }\n\n // clear focussableElements list so that if things change between tabbing we know about it\n this.focussableElements = undefined;\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 this.focussableElements = this.coreAdapterService.getFocusableChildren(document.body);\n\n return this.focussableElements;\n }\n\n private isElementHiddenOrCovered(element: any): boolean {\n // Check if the element is hidden by css, not within the inline delete, or a wait is covering it\n return this.isElementHidden(element) ||\n (this.parentEl.contains(element) && (!this.element.contains(element) ||\n this.parentEl.querySelector('.sky-wait-mask') !== null));\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 isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().filter(elem => !this.isElementHidden(elem));\n\n const previousInd = elements.indexOf((event as any).relatedTarget);\n const currentInd = elements.indexOf(event.target as HTMLElement);\n\n return previousInd === currentInd + 1\n || (previousInd === 0 && currentInd === elements.length - 1)\n || (previousInd > currentInd)\n || !(event as any).relatedTarget;\n }\n}\n","/**\n * Specifies the type of inline delete that is shown.\n * @internal\n */\nexport enum SkyInlineDeleteType {\n /**\n * The standard styling for inline deletes.\n */\n Standard = 'standard',\n /**\n * The styling for inline delete components which are used in card components.\n */\n Card = 'card'\n}\n","import {\n animate,\n AnimationEvent,\n group,\n query,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyInlineDeleteAdapterService\n} from './inline-delete-adapter.service';\n\nimport {\n SkyInlineDeleteType\n} from './inline-delete-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for inline delete components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-inline-delete',\n styleUrls: ['./inline-delete.component.scss'],\n templateUrl: './inline-delete.component.html',\n animations: [\n trigger('inlineDeleteAnimation', [\n transition('* => shown', [\n style({\n opacity: 0\n }),\n query('.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(0.0)' })),\n group([\n animate('300ms ease-in-out', style({ opacity: 1 })),\n query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({\n transform: 'scale(1)'\n })))\n ])\n ]),\n transition(`shown <=> *`, [\n query('.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(1)' })),\n group([\n animate('300ms ease-in-out', style({\n opacity: 0\n })),\n query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({\n transform: 'scale(0.0)'\n })))\n ])\n ])\n ])\n ],\n providers: [\n SkyCoreAdapterService,\n SkyInlineDeleteAdapterService\n ]\n})\nexport class SkyInlineDeleteComponent implements OnDestroy, OnInit {\n\n /**\n * Indicates whether the deletion is pending.\n * @default \"false\"\n */\n @Input()\n public pending: boolean = false;\n\n /**\n * Fires when users click the cancel button.\n */\n @Output()\n public cancelTriggered = new EventEmitter<void>();\n\n /**\n * Fires when users click the delete button.\n */\n @Output()\n public deleteTriggered = new EventEmitter<void>();\n\n public animationState: string = 'shown';\n\n public assistiveTextId: string = `sky-inline-delete-assistive-text-${++nextId}`;\n\n public type: SkyInlineDeleteType = SkyInlineDeleteType.Standard;\n\n @ViewChild('delete', {\n read: ElementRef,\n static: false\n })\n private deleteButton: ElementRef;\n\n constructor(\n private adapterService: SkyInlineDeleteAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef\n ) { }\n\n /**\n * Initialization lifecycle hook\n * @internal\n */\n public ngOnInit(): void {\n this.animationState = 'shown';\n }\n\n /**\n * Destruction lifecycle hook\n * @internal\n */\n public ngOnDestroy(): void {\n this.adapterService.clearListeners();\n this.cancelTriggered.complete();\n this.deleteTriggered.complete();\n }\n\n /**\n * @internal\n */\n public onCancelClick(): void {\n this.animationState = 'hidden';\n }\n\n /**\n * @internal\n */\n public onDeleteClick(): void {\n this.deleteTriggered.emit();\n }\n\n /**\n * Sets the inline delete to one of its predefined types.\n * @param type The inline delete type\n * @internal\n */\n public setType(type: SkyInlineDeleteType): void {\n this.type = type;\n this.changeDetector.detectChanges();\n }\n\n /**\n * Handles actions that should be taken after the inline delete animates\n * @param event The animation event\n * @internal\n */\n public onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'hidden') {\n this.cancelTriggered.emit();\n } else {\n this.deleteButton.nativeElement.focus();\n if (this.elRef) {\n this.adapterService.setEl(this.elRef.nativeElement);\n }\n }\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyWaitModule\n} from '@skyux/indicators';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyInlineDeleteComponent\n} from './inline-delete.component';\n\n@NgModule({\n declarations: [\n SkyInlineDeleteComponent\n ],\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyWaitModule\n ],\n exports: [\n SkyInlineDeleteComponent\n ]\n})\nexport class SkyInlineDeleteModule { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies an action that users can perform on the card.\n */\n@Component({\n selector: 'sky-card-actions',\n templateUrl: './card-actions.component.html',\n styleUrls: ['./card-actions.component.scss']\n})\nexport class SkyCardActionsComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies the content to display in the body of the card.\n */\n@Component({\n selector: 'sky-card-content',\n templateUrl: './card-content.component.html'\n})\nexport class SkyCardContentComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a title to identify what the card represents.\n */\n@Component({\n selector: 'sky-card-title',\n templateUrl: './card-title.component.html'\n})\nexport class SkyCardTitleComponent { }\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyCardTitleComponent\n} from './card-title.component';\n\nimport {\n SkyInlineDeleteComponent\n} from '../inline-delete/inline-delete.component';\n\nimport {\n SkyInlineDeleteType\n} from '../inline-delete/inline-delete-type';\n\n/**\n * Creates a a small container to highlight important information.\n */\n@Component({\n selector: 'sky-card',\n styleUrls: ['./card.component.scss'],\n templateUrl: './card.component.html'\n})\nexport class SkyCardComponent implements AfterContentInit, OnDestroy {\n/**\n * Specifies the size of the card. The valid options are `large` and `small`.\n * @default large\n */\n @Input()\n public size: string;\n\n/**\n * Indicates whether to display a checkbox to the right of the card title.\n * Users can select multiple checkboxes and perform actions on the selected cards.\n * @default false\n */\n @Input()\n public selectable: boolean;\n\n/**\n * Indicates whether the card is selected. This only applies to card where\n * `selectable` is set to `true`.\n * @default false\n */\n @Input()\n public selected: boolean;\n\n/**\n * Fires when users select or deselect the card.\n */\n @Output()\n public selectedChange = new EventEmitter<boolean>();\n\n @ContentChildren(SkyInlineDeleteComponent)\n public inlineDeleteComponent: QueryList<SkyInlineDeleteComponent>;\n\n @ContentChildren(SkyCardTitleComponent)\n public titleComponent: QueryList<SkyCardTitleComponent>;\n\n public showTitle: boolean = true;\n\n private subscription: Subscription;\n\n public ngAfterContentInit() {\n this.showTitle = this.titleComponent.length > 0;\n\n this.subscription = this.titleComponent.changes.subscribe(() => {\n this.showTitle = this.titleComponent.length > 0;\n });\n\n this.inlineDeleteComponent.forEach(item => {\n item.setType(SkyInlineDeleteType.Card);\n });\n\n this.inlineDeleteComponent.changes.subscribe(() => {\n this.inlineDeleteComponent.forEach(item => {\n item.setType(SkyInlineDeleteType.Card);\n });\n });\n }\n\n public contentClick() {\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedChange.emit(this.selected);\n }\n }\n\n public onCheckboxChange(newValue: boolean) {\n if (this.selectable && this.selected !== newValue) {\n this.selected = newValue;\n this.selectedChange.emit(this.selected);\n }\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n FormsModule\n} from '@angular/forms';\n\nimport {\n SkyCheckboxModule\n} from '@skyux/forms';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyInlineDeleteModule\n} from '../inline-delete/inline-delete.module';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyCardActionsComponent\n} from './card-actions.component';\n\nimport {\n SkyCardContentComponent\n} from './card-content.component';\n\nimport {\n SkyCardTitleComponent\n} from './card-title.component';\n\nimport {\n SkyCardComponent\n} from './card.component';\n\n@NgModule({\n declarations: [\n SkyCardActionsComponent,\n SkyCardComponent,\n SkyCardContentComponent,\n SkyCardTitleComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyInlineDeleteModule\n ],\n exports: [\n SkyCardActionsComponent,\n SkyCardComponent,\n SkyCardContentComponent,\n SkyCardTitleComponent\n ]\n})\nexport class SkyCardModule { }\n","import { Injectable } from '@angular/core';\n\nimport {\n BehaviorSubject\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDefinitionListService {\n public labelWidth = new BehaviorSubject<string>('');\n\n public defaultValue = new BehaviorSubject<string>('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Creates a definition list to display label-value pairs.\n */\n@Component({\n selector: 'sky-definition-list',\n templateUrl: './definition-list.component.html',\n styleUrls: ['./definition-list.component.scss'],\n providers: [SkyDefinitionListService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListComponent {\n\n/**\n * Specifies the width of the label portion of the definition list.\n * @default 90px\n */\n @Input()\n public set labelWidth(value: string) {\n this.service.labelWidth.next(value);\n }\n\n/**\n * Specifies a default value to display when no value is provided\n * for a label-value pair.\n * @default 'None found'\n */\n @Input()\n public set defaultValue(value: string) {\n this.service.defaultValue.next(value);\n }\n\n constructor(\n public service: SkyDefinitionListService) { }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Wraps the label-value pairs in the definition list.\n */\n@Component({\n selector: 'sky-definition-list-content',\n templateUrl: './definition-list-content.component.html',\n styleUrls: ['./definition-list-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListContentComponent { }\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Specifies a title for the definition list.\n */\n@Component({\n selector: 'sky-definition-list-heading',\n templateUrl: './definition-list-heading.component.html',\n styleUrls: ['./definition-list-heading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListHeadingComponent { }\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Specifies the label in a label-value pair.\n */\n@Component({\n selector: 'sky-definition-list-label',\n templateUrl: './definition-list-label.component.html',\n styleUrls: ['./definition-list-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListLabelComponent {\n public labelWidth: number;\n\n constructor(\n public service: SkyDefinitionListService) { }\n}\n","import {\n Component\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Specifies the value in a label-value pair.\n */\n@Component({\n selector: 'sky-definition-list-value',\n templateUrl: './definition-list-value.component.html',\n styleUrls: ['./definition-list-value.component.scss']\n})\nexport class SkyDefinitionListValueComponent {\n public defaultValue: string;\n\n constructor(public service: SkyDefinitionListService) { }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyDefinitionListComponent } from './definition-list.component';\nimport { SkyDefinitionListContentComponent } from './definition-list-content.component';\nimport { SkyDefinitionListHeadingComponent } from './definition-list-heading.component';\nimport { SkyDefinitionListLabelComponent } from './definition-list-label.component';\nimport { SkyDefinitionListValueComponent } from './definition-list-value.component';\n\n@NgModule({\n declarations: [\n SkyDefinitionListComponent,\n SkyDefinitionListContentComponent,\n SkyDefinitionListHeadingComponent,\n SkyDefinitionListLabelComponent,\n SkyDefinitionListValueComponent\n ],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule\n ],\n exports: [\n SkyDefinitionListComponent,\n SkyDefinitionListContentComponent,\n SkyDefinitionListHeadingComponent,\n SkyDefinitionListLabelComponent,\n SkyDefinitionListValueComponent\n ]\n})\nexport class SkyDefinitionListModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDescriptionListAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getWidth(elementRef: ElementRef): number {\n return elementRef.nativeElement.clientWidth;\n }\n\n public setResponsiveClass(element: ElementRef): void {\n const nativeEl: any = element.nativeElement;\n const width = this.getWidth(element);\n const className = this.getResponsiveClassName(width);\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n\n this.renderer.addClass(nativeEl, className);\n }\n\n private getResponsiveClassName(width: number): string {\n const xsBreakpointMaxPixels = 479;\n const smBreakpointMinPixels = 480;\n const smBreakpointMaxPixels = 767;\n\n if (width <= xsBreakpointMaxPixels) {\n return 'sky-responsive-container-xs';\n } else if (width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels) {\n return 'sky-responsive-container-sm';\n } else {\n return 'sky-responsive-container-md';\n }\n }\n\n}\n","/**\n * Specifies how to display the term-description pairs within a description list.\n */\nexport enum SkyDescriptionListMode {\n\n /**\n * Displays term-description pairs side by side in a horizontal list.\n * This mode provides a responsive layout.\n */\n horizontal = 'horizontal',\n\n /**\n * Displays terms and descriptions side by side with the term on the left and the description\n * on the right. This mode includes room for long descriptions and uses a responsive layout\n * that stacks term-description pairs vertically.\n */\n longDescription = 'longDescription',\n\n /**\n * Displays term-description pairs in a vertical list.\n */\n vertical = 'vertical'\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\n/**\n * Specifies the term in a term-description pair.\n */\n@Component({\n selector: 'sky-description-list-term',\n templateUrl: './description-list-term.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListTermComponent {\n\n @ViewChild('termTemplateRef', {\n read: TemplateRef,\n static: true\n })\n public templateRef: TemplateRef<any>;\n\n}\n","import {\n Injectable,\n OnDestroy\n} from '@angular/core';\n\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDescriptionListService implements OnDestroy {\n\n public get defaultDescription(): Observable<string> {\n return this._defaultDescription.asObservable();\n }\n\n private _defaultDescription = new BehaviorSubject<string>('');\n\n public ngOnDestroy(): void {\n this._defaultDescription.complete();\n }\n\n public updateDefaultDescription(value: string): void {\n this._defaultDescription.next(value);\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyDescriptionListService\n} from './description-list.service';\n\n/**\n * Specifies the description in a term-description pair.\n */\n@Component({\n selector: 'sky-description-list-description',\n templateUrl: './description-list-description.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListDescriptionComponent implements OnDestroy, OnInit {\n\n public defaultDescription: string;\n\n public themeName: string;\n\n @ViewChild('descriptionTemplateRef', {\n read: TemplateRef,\n static: true\n })\n public templateRef: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n public service: SkyDescriptionListService,\n private changeRef: ChangeDetectorRef,\n private themeSvc: SkyThemeService\n ) {}\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n this.themeName = themeSettings.currentSettings?.theme?.name;\n this.changeRef.markForCheck();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyDescriptionListTermComponent\n} from './description-list-term.component';\n\nimport {\n SkyDescriptionListDescriptionComponent\n} from './description-list-description.component';\n\n/**\n * Wraps the term-description pairs in the description list.\n */\n@Component({\n selector: 'sky-description-list-content',\n templateUrl: './description-list-content.component.html'\n})\nexport class SkyDescriptionListContentComponent {\n\n @ContentChildren(SkyDescriptionListTermComponent)\n public termComponents: QueryList<SkyDescriptionListTermComponent>;\n\n @ContentChildren(SkyDescriptionListDescriptionComponent)\n public descriptionComponents: QueryList<SkyDescriptionListDescriptionComponent>;\n\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n QueryList,\n ViewChild\n} from '@angular/core';\n\nimport {\n MutationObserverService\n} from '@skyux/core';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyDescriptionListMode\n} from './types/description-list-mode';\n\nimport {\n SkyDescriptionListAdapterService\n} from './description-list-adapter-service';\n\nimport {\n SkyDescriptionListContentComponent\n} from './description-list-content.component';\n\nimport {\n SkyDescriptionListService\n} from './description-list.service';\n\n/**\n * Creates a description list to display term-description pairs.\n */\n@Component({\n selector: 'sky-description-list',\n templateUrl: './description-list.component.html',\n styleUrls: ['./description-list.component.scss'],\n providers: [SkyDescriptionListService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n/**\n * Specifies a default description to display when no description is provided\n * for a term-description pair.\n * @default 'None found'\n */\n @Input()\n public set defaultDescription(value: string) {\n this.descriptionListService.updateDefaultDescription(value);\n }\n\n /**\n * Specifies the width of term-description pairs when `mode` is set to `horizontal`. By default,\n * the width is responsive based on the width of the container element.\n */\n @Input()\n public listItemWidth: string;\n\n /**\n * Specifies how to display term-description pairs within the description list.\n * @default SkyDescriptionListMode.vertical\n */\n @Input()\n public set mode(value: SkyDescriptionListMode) {\n this._mode = value;\n }\n\n public get mode(): SkyDescriptionListMode {\n return this._mode || SkyDescriptionListMode.vertical;\n }\n\n @ContentChildren(SkyDescriptionListContentComponent)\n public contentComponents: QueryList<SkyDescriptionListContentComponent>;\n\n private contentObserver: MutationObserver;\n\n @ViewChild('descriptionListElement', {\n read: ElementRef,\n static: true\n })\n private elementRef: ElementRef;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _mode: SkyDescriptionListMode;\n\n constructor(\n private adapterService: SkyDescriptionListAdapterService,\n private changeDetector: ChangeDetectorRef,\n private descriptionListService: SkyDescriptionListService,\n private mutationSvc: MutationObserverService\n ) { }\n\n public ngAfterContentInit(): void {\n\n // Wait for all content to render before detecting parent width.\n setTimeout(() => {\n this.updateResponsiveClass();\n });\n\n this.contentComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n\n public ngAfterViewInit(): void {\n this.contentObserver = this.mutationSvc.create(() => {\n this.changeDetector.markForCheck();\n });\n this.contentObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.contentObserver.disconnect();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.updateResponsiveClass();\n }\n\n private updateResponsiveClass(): void {\n this.adapterService.setResponsiveClass(this.elementRef);\n this.changeDetector.markForCheck();\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n MutationObserverService\n} from '@skyux/core';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyDescriptionListAdapterService\n} from './description-list-adapter-service';\n\nimport {\n SkyDescriptionListComponent\n} from './description-list.component';\n\nimport {\n SkyDescriptionListContentComponent\n} from './description-list-content.component';\n\nimport {\n SkyDescriptionListTermComponent\n} from './description-list-term.component';\n\nimport {\n SkyDescriptionListDescriptionComponent\n} from './description-list-description.component';\n\n@NgModule({\n declarations: [\n SkyDescriptionListComponent,\n SkyDescriptionListContentComponent,\n SkyDescriptionListTermComponent,\n SkyDescriptionListDescriptionComponent\n ],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyThemeModule\n ],\n exports: [\n SkyDescriptionListComponent,\n SkyDescriptionListContentComponent,\n SkyDescriptionListTermComponent,\n SkyDescriptionListDescriptionComponent\n ],\n providers: [\n MutationObserverService,\n SkyDescriptionListAdapterService\n ]\n})\nexport class SkyDescriptionListModule { }\n","export enum SkyFluidGridGutterSize {\n /**\n * Specifies a small gutter.\n */\n Small,\n /**\n * Specifies a medium gutter.\n */\n Medium,\n /**\n * Specifies a large gutter.\n */\n Large\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sky-row',\n templateUrl: './row.component.html',\n styleUrls: ['./row.component.scss']\n})\nexport class SkyRowComponent {\n /**\n * Indicates whether to reverse the display order for columns in the row.\n * @default false\n */\n @Input()\n public reverseColumnOrder: boolean = false;\n}\n","import {\n Component,\n HostBinding,\n Input,\n OnInit,\n SimpleChanges,\n OnChanges,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'sky-column',\n templateUrl: './column.component.html',\n styleUrls: ['./column.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyColumnComponent implements OnInit, OnChanges {\n\n/**\n * Specifies the number of columns (1-12) to use on extra-small screens\n * (less than 768px). If you do not specify a value, the fluid grid displays\n * the column at the full width of the screen.\n * @default 12\n */\n @Input()\n public screenXSmall: number;\n\n/**\n * Specifies the number of columns (1-12) to use on small screens\n * (768-991px). If you do not specify a value, the column inherits\n * the `screenXSmall` value.\n */\n @Input()\n public screenSmall: number;\n\n/**\n * Specifies the number of columns (1-12) to use on medium screens\n * (992-1199px). If you do not specify a value, the column inherits\n * the `screenSmall` value.\n */\n @Input()\n public screenMedium: number;\n\n/**\n * Specifies the number of columns (1-12) to use on large screens\n * (more than 1200px). If you do not specify a value, the column\n * inherits the `screenMedium` value.\n */\n @Input()\n public screenLarge: number;\n\n @HostBinding('class')\n public classnames: string;\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.screenXSmall || changes.screenSmall || changes.screenMedium || changes.screenLarge) {\n this.classnames = this.getClassNames();\n }\n }\n\n public getClassNames(): string {\n let classnames = [\n 'sky-column'\n ];\n\n if (this.screenXSmall) {\n classnames.push(`sky-column-xs-${this.screenXSmall}`);\n }\n\n if (this.screenSmall) {\n classnames.push(`sky-column-sm-${this.screenSmall}`);\n }\n\n if (this.screenMedium) {\n classnames.push(`sky-column-md-${this.screenMedium}`);\n }\n\n if (this.screenLarge) {\n classnames.push(`sky-column-lg-${this.screenLarge}`);\n }\n\n return classnames.join(' ');\n }\n\n public ngOnInit(): void {\n this.classnames = this.getClassNames();\n }\n}\n","import {\n Component,\n Input\n} from '@angular/core';\n\nimport {\n SkyFluidGridGutterSize\n} from './fluid-grid-gutter-size';\n\n@Component({\n selector: 'sky-fluid-grid',\n templateUrl: './fluid-grid.component.html',\n styleUrls: [\n './fluid-grid.component.scss'\n ]\n})\nexport class SkyFluidGridComponent {\n\n /**\n * Disables the outer left and right margin of the fluid grid container.\n * @default false\n */\n @Input()\n public set disableMargin(value: boolean) {\n this._disableMargin = value;\n }\n\n public get disableMargin(): boolean {\n return this._disableMargin || false;\n }\n\n /**\n * Specifies a `SkyFluidGridGutterSize` enum to define the size of the padding\n * between columns.\n * @default SkyFluidGridGutterSize.Large\n */\n @Input()\n public set gutterSize(value: SkyFluidGridGutterSize) {\n this._gutterSize = value;\n }\n\n public get gutterSize(): SkyFluidGridGutterSize {\n return this._gutterSize === undefined ? SkyFluidGridGutterSize.Large : this._gutterSize;\n }\n\n /**\n * @internal\n * Used for resolution of enum values in the template.\n */\n public gutterSizeTypes = SkyFluidGridGutterSize;\n\n private _disableMargin: boolean;\n\n private _gutterSize: SkyFluidGridGutterSize;\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SkyRowComponent } from './row.component';\nimport { SkyColumnComponent } from './column.component';\nimport { SkyFluidGridComponent } from './fluid-grid.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n SkyRowComponent,\n SkyColumnComponent,\n SkyFluidGridComponent\n ],\n exports: [\n SkyRowComponent,\n SkyColumnComponent,\n SkyFluidGridComponent\n ]\n})\nexport class SkyFluidGridModule { }\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyFormatItem\n} from './format-item';\n\nconst tokenRegex = /(\\{\\d+\\})/;\n\n@Component({\n selector: 'sky-format',\n templateUrl: './format.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyFormatComponent {\n\n public itemsForDisplay: SkyFormatItem[];\n\n /**\n * The tokenized string that represents the template. Tokens use the `{n}` notation\n * where n is the ordinal of the item to replace the token.\n */\n @Input()\n public set text(value: string) {\n this._text = value;\n this.updateItemsForDisplay();\n }\n\n public get text(): string {\n return this._text;\n }\n\n /**\n * An array of `TemplateRef` objects to be placed in the template, where the `nth`\n * item is placed at the `{n}` location in the template.\n */\n @Input()\n public set args(value: TemplateRef<any>[]) {\n this._args = value;\n this.updateItemsForDisplay();\n }\n\n public get args(): TemplateRef<any>[] {\n return this._args;\n }\n\n private _text: string;\n\n private _args: TemplateRef<any>[];\n\n private updateItemsForDisplay(): void {\n this.itemsForDisplay = [];\n\n if (this.text && this.args) {\n const textParts = this.text.split(tokenRegex);\n\n for (const textPart of textParts) {\n // Disregard empty strings.\n if (textPart) {\n const item: SkyFormatItem = {};\n\n if (tokenRegex.test(textPart)) {\n const valueIndex = +textPart.substring(1, textPart.length - 1);\n\n item.templateRef = this.args[valueIndex];\n } else {\n item.text = textPart;\n }\n\n this.itemsForDisplay.push(item);\n }\n }\n }\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyFormatComponent\n} from './format.component';\n\n@NgModule({\n declarations: [\n SkyFormatComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SkyFormatComponent\n ]\n})\nexport class SkyFormatModule { }\n","import {\n Injectable\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageThemeAdapterService {\n\n private styleEl: HTMLStyleElement;\n\n public addTheme(): void {\n if (!this.styleEl) {\n this.styleEl = document.createElement('style');\n this.styleEl.appendChild(document.createTextNode('body { background-color: #fff; }'));\n\n document.head.appendChild(this.styleEl);\n }\n }\n\n public removeTheme(): void {\n if (this.styleEl) {\n document.head.removeChild(this.styleEl);\n this.styleEl = undefined;\n }\n }\n\n}\n","import {\n Component,\n OnDestroy,\n OnInit\n} from '@angular/core';\n\nimport {\n SkyPageThemeAdapterService\n} from './page-theme-adapter.service';\n\n/**\n * Resets the SPA's background to white and adds the `sky-theme-default` CSS class to the host\n * element to let consumers override CSS styling. Consumers can override any element by writing\n * CSS selectors like this: `:host-context(.sky-theme-default) .my-class {}`.\n */\n@Component({\n selector: 'sky-page',\n templateUrl: './page.component.html',\n providers: [SkyPageThemeAdapterService]\n})\nexport class SkyPageComponent implements OnInit, OnDestroy {\n\n constructor(private themeAdapter: SkyPageThemeAdapterService) { }\n\n public ngOnInit(): void {\n this.themeAdapter.addTheme();\n }\n\n public ngOnDestroy(): void {\n this.themeAdapter.removeTheme();\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyPageComponent\n} from './page.component';\n\n@NgModule({\n declarations: [\n SkyPageComponent\n ],\n exports: [\n SkyPageComponent\n ]\n})\nexport class SkyPageModule { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays messages that require immediate attention as [alerts](https://developer.blackbaud.com/skyux-indicators/docs/alert) within\n * the page summary.\n */\n@Component({\n selector: 'sky-page-summary-alert',\n templateUrl: './page-summary-alert.component.html',\n styleUrls: ['./page-summary-alert.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryAlertComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays content in the arbitrary section of the page summary.\n */\n@Component({\n selector: 'sky-page-summary-content',\n templateUrl: './page-summary-content.component.html',\n styleUrls: ['./page-summary-content.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryContentComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays an image in the page summary to identify a record\n * or help users complete a core task.\n */\n@Component({\n selector: 'sky-page-summary-image',\n templateUrl: './page-summary-image.component.html',\n styleUrls: ['./page-summary-image.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryImageComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Highlights important information about a page in the key information section of the\n * page summary.\n */\n@Component({\n selector: 'sky-page-summary-key-info',\n templateUrl: './page-summary-key-info.component.html',\n styleUrls: ['./page-summary-key-info.component.scss']\n})\nexport class SkyPageSummaryKeyInfoComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays [labels](https://developer.blackbaud.com/skyux/components/label)\n * to highlight important status information about a page's content.\n */\n@Component({\n selector: 'sky-page-summary-status',\n templateUrl: './page-summary-status.component.html',\n styleUrls: ['./page-summary-status.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryStatusComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a subtitle to identify the page content.\n */\n@Component({\n selector: 'sky-page-summary-subtitle',\n templateUrl: './page-summary-subtitle.component.html',\n styleUrls: ['./page-summary-subtitle.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummarySubtitleComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a title to identify the page content.\n */\n@Component({\n selector: 'sky-page-summary-title',\n templateUrl: './page-summary-title.component.html',\n styleUrls: ['./page-summary-title.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryTitleComponent { }\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageSummaryAdapterService {\n public updateKeyInfoLocation(elRef: ElementRef, isXS: boolean) {\n let el = elRef.nativeElement;\n let keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');\n\n if (isXS) {\n el.querySelector('.sky-page-summary-key-info-xs').appendChild(keyInfoContainerEl);\n } else {\n el.querySelector('.sky-page-summary-key-info-sm').appendChild(keyInfoContainerEl);\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n OnDestroy,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService\n} from '@skyux/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyPageSummaryAdapterService\n} from './page-summary-adapter.service';\n\nimport {\n SkyPageSummaryKeyInfoComponent\n} from './page-summary-key-info.component';\n\n/**\n * Specifies the components to display in the page summary.\n */\n@Component({\n selector: 'sky-page-summary',\n templateUrl: './page-summary.component.html',\n styleUrls: ['./page-summary.component.scss'],\n providers: [SkyPageSummaryAdapterService]\n})\nexport class SkyPageSummaryComponent implements OnDestroy, AfterViewInit {\n public get hasKeyInfo(): boolean {\n return (this.keyInfoComponents.length > 0);\n }\n\n @ContentChildren(SkyPageSummaryKeyInfoComponent, { read: SkyPageSummaryKeyInfoComponent })\n private keyInfoComponents: QueryList<SkyPageSummaryKeyInfoComponent>;\n\n private breakpointSubscription: Subscription;\n\n constructor(\n private elRef: ElementRef,\n private adapter: SkyPageSummaryAdapterService,\n private mediaQueryService: SkyMediaQueryService\n ) { }\n\n public ngAfterViewInit() {\n this.breakpointSubscription = this.mediaQueryService.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.adapter.updateKeyInfoLocation(this.elRef, args === SkyMediaBreakpoints.xs);\n }\n );\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyMediaQueryModule\n} from '@skyux/core';\n\nimport {\n SkyPageSummaryAlertComponent\n} from './page-summary-alert.component';\n\nimport {\n SkyPageSummaryContentComponent\n} from './page-summary-content.component';\n\nimport {\n SkyPageSummaryImageComponent\n} from './page-summary-image.component';\n\nimport {\n SkyPageSummaryKeyInfoComponent\n} from './page-summary-key-info.component';\n\nimport {\n SkyPageSummaryStatusComponent\n} from './page-summary-status.component';\n\nimport {\n SkyPageSummarySubtitleComponent\n} from './page-summary-subtitle.component';\n\nimport {\n SkyPageSummaryTitleComponent\n} from './page-summary-title.component';\n\nimport {\nSkyPageSummaryComponent\n} from './page-summary.component';\n\n@NgModule({\n declarations: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent\n ],\n imports: [\n CommonModule,\n SkyMediaQueryModule\n ],\n exports: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent\n ]\n})\nexport class SkyPageSummaryModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyTextExpandAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getContainerHeight(containerEl: ElementRef) {\n return containerEl.nativeElement.offsetHeight;\n }\n\n public setContainerHeight(containerEl: ElementRef, height: string) {\n if (height === undefined) {\n this.renderer.removeStyle(containerEl.nativeElement, 'max-height');\n } else {\n this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);\n }\n }\n\n public setText(textEl: ElementRef, text: string) {\n textEl.nativeElement.textContent = text;\n }\n}\n","/**\n * @internal\n */\nexport class SkyTextExpandModalContext {\n public header: string;\n public text: string;\n}\n","import {\n Component\n} from '@angular/core';\n\nimport {\n SkyModalInstance\n} from '@skyux/modals';\n\nimport {\n SkyTextExpandModalContext\n} from './text-expand-modal-context';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-expand-modal',\n templateUrl: './text-expand-modal.component.html',\n styleUrls: ['./text-expand.component.scss']\n})\nexport class SkyTextExpandModalComponent {\n\n constructor(\n public context: SkyTextExpandModalContext,\n public instance: SkyModalInstance\n ) { }\n\n public close(): void {\n this.instance.close();\n }\n\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n SkyModalService\n} from '@skyux/modals';\n\nimport {\n forkJoin as observableForkJoin\n} from 'rxjs';\n\nimport {\n take\n} from 'rxjs/operators';\n\nimport {\n SkyTextExpandAdapterService\n} from './text-expand-adapter.service';\n\nimport {\n SkyTextExpandModalComponent\n} from './text-expand-modal.component';\n\nimport {\n SkyTextExpandModalContext\n} from './text-expand-modal-context';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand',\n templateUrl: './text-expand.component.html',\n styleUrls: ['./text-expand.component.scss'],\n providers: [\n SkyTextExpandAdapterService\n ]\n})\nexport class SkyTextExpandComponent implements AfterContentInit {\n\n /**\n * Specifies a title to display when the component expands the full text in a modal.\n * @default 'Expanded view'\n */\n @Input()\n public expandModalTitle: string;\n\n /**\n * Specifies the maximum number of text characters to display inline when users select the link\n * to expand the full text. If the text exceeds this limit, then the component expands\n * the full text in a modal instead.\n */\n @Input()\n public maxExpandedLength: number = 600;\n\n /**\n * Specifies the maximum number of newline characters to display inline when users select\n * the link to expand the full text. If the text exceeds this limit, then\n * the component expands the full text in a modal view instead.\n */\n @Input()\n public maxExpandedNewlines: number = 2;\n\n /**\n * Specifies the number of text characters to display before truncating the text.\n * To avoid truncating text in the middle of a word, the component looks for a space\n * in the 10 characters before the last character.\n * @default 200\n */\n @Input()\n public set maxLength(value: number) {\n this._maxLength = value;\n\n /** istanbul ignore else */\n if (this.textEl) {\n this.setup(this.expandedText);\n }\n }\n\n public get maxLength(): number {\n return this._maxLength;\n }\n\n /**\n * Specifies the text to truncate.\n */\n @Input()\n public set text(value: string) {\n /** istanbul ignore else */\n if (this.textEl) {\n this.setup(value);\n }\n }\n\n /**\n * Indicates whether to replace newline characters in truncated text with spaces.\n */\n @Input()\n public truncateNewlines: boolean = true;\n\n public buttonText: string;\n\n public contentSectionId: string = `sky-text-expand-content-${++nextId}`;\n\n public expandable: boolean;\n\n public isExpanded: boolean = false;\n\n public isModal: boolean;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true\n })\n private containerEl: ElementRef;\n\n @ViewChild('text', {\n read: ElementRef,\n static: true\n })\n private textEl: ElementRef;\n\n private collapsedText: string;\n\n private expandedText: string;\n\n private newlineCount: number;\n\n private seeMoreText: string;\n\n private seeLessText: string;\n\n private textToShow: string;\n\n private _maxLength: number = 200;\n\n constructor(\n private resources: SkyLibResourcesService,\n private modalService: SkyModalService,\n private textExpandAdapter: SkyTextExpandAdapterService\n ) { }\n\n public textExpand(): void {\n if (this.isModal) {\n // Modal View\n /* istanbul ignore else */\n /* sanity check */\n if (!this.isExpanded) {\n this.modalService.open(\n SkyTextExpandModalComponent,\n [\n {\n provide: SkyTextExpandModalContext,\n useValue: {\n header: this.expandModalTitle,\n text: this.expandedText\n }\n }\n ]\n );\n }\n } else {\n // Normal View\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this\n .animateText(this.collapsedText, this.expandedText, true);\n }, 10);\n\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this\n .animateText(this.expandedText, this.collapsedText, false);\n }, 10);\n }\n }\n }\n\n public animationEnd(): void {\n // Ensure the correct text is displayed\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public ngAfterContentInit(): void {\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less')\n ])\n .pipe(take(1))\n .subscribe(resources => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n this.setup(this.expandedText);\n\n if (!this.expandModalTitle) {\n this.resources.getString('skyux_text_expand_modal_title')\n .pipe(take(1))\n .subscribe(resource => {\n this.expandModalTitle = resource;\n });\n }\n });\n }\n\n private setContainerMaxHeight(): void {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);\n this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);\n }\n\n private setup(value: string): void {\n if (value) {\n this.newlineCount = this.getNewlineCount(value);\n this.collapsedText = this.getTruncatedText(value, this.maxLength);\n this.expandedText = value;\n if (this.collapsedText !== value) {\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n this.expandable = true;\n this.isModal = this.newlineCount > this.maxExpandedNewlines\n || this.expandedText.length > this.maxExpandedLength;\n } else {\n this.expandable = false;\n }\n this.textToShow = this.collapsedText;\n } else {\n this.textToShow = '';\n this.expandable = false;\n }\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n }\n\n private getNewlineCount(value: string): number {\n let matches = value.match(/\\n/gi);\n\n if (matches) {\n return matches.length;\n }\n\n return 0;\n }\n\n private getTruncatedText(value: string, length: number): string {\n let i: number;\n if (this.truncateNewlines) {\n value = value.replace(/\\n+/gi, ' ');\n }\n // Jump ahead one character and see if it's a space, and if it isn't,\n // back up to the first space and break there so a word doesn't get cut\n // in half.\n if (length < value.length) {\n for (i = length; i > length - 10; i--) {\n if (/\\s/.test(value.charAt(i))) {\n length = i;\n break;\n }\n }\n }\n return value.substr(0, length);\n }\n\n private animateText(previousText: string, newText: string, expanding: boolean): void {\n\n let adapter = this.textExpandAdapter;\n let container = this.containerEl;\n // Reset max height\n adapter.setContainerHeight(container, undefined);\n // Measure the current height so we can animate from it.\n let currentHeight = adapter.getContainerHeight(container);\n this.textToShow = newText;\n adapter.setText(this.textEl, this.textToShow);\n this.buttonText = expanding ? this.seeLessText : this.seeMoreText;\n // Measure the new height so we can animate to it.\n let newHeight = adapter.getContainerHeight(container);\n /* istanbul ignore if */\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n adapter.setText(this.textEl, previousText);\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyModalModule\n} from '@skyux/modals';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyTextExpandComponent } from './text-expand.component';\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\n\n@NgModule({\n declarations: [\n SkyTextExpandComponent,\n SkyTextExpandModalComponent\n ],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyModalModule,\n CommonModule\n ],\n exports: [\n SkyTextExpandComponent\n ],\n entryComponents: [\n SkyTextExpandModalComponent\n ]\n})\nexport class SkyTextExpandModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyTextExpandRepeaterAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getItems(elRef: ElementRef) {\n return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');\n }\n\n public hideItem(item: HTMLElement) {\n this.renderer.setStyle(item, 'display', 'none');\n }\n\n public showItem(item: HTMLElement) {\n this.renderer.setStyle(item, 'display', 'list-item');\n }\n\n public getContainerHeight(containerEl: ElementRef) {\n return containerEl.nativeElement.offsetHeight;\n }\n\n public setContainerHeight(containerEl: ElementRef, height: string) {\n if (height === undefined) {\n this.renderer.removeStyle(containerEl.nativeElement, 'max-height');\n } else {\n this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n forkJoin as observableForkJoin\n} from 'rxjs';\n\nimport {\n take\n} from 'rxjs/operators';\n\nimport {\n SkyTextExpandRepeaterAdapterService\n} from './text-expand-repeater-adapter.service';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand repeater components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand-repeater',\n templateUrl: './text-expand-repeater.component.html',\n styleUrls: ['./text-expand-repeater.component.scss'],\n providers: [\n SkyTextExpandRepeaterAdapterService\n ]\n})\nexport class SkyTextExpandRepeaterComponent implements AfterViewInit, OnChanges {\n\n /**\n * Specifies the data to truncate.\n */\n @Input()\n public data: any[];\n\n /**\n * Specifies a template for items in the list.\n */\n @Input()\n public itemTemplate: TemplateRef<any>;\n\n /**\n * Specifies the number of items to display before truncating the list.\n */\n @Input()\n public maxItems: number;\n\n public buttonText: string;\n public contentItems: Array<any>;\n public expandable: boolean;\n public contentSectionId: string = `sky-text-expand-repeater-content-${++nextId}`;\n\n public isExpanded: boolean = false;\n\n private seeMoreText: string;\n private seeLessText: string;\n\n @ViewChild('container', {\n read: ElementRef,\n static: false\n })\n private containerEl: ElementRef;\n\n private items: Array<HTMLElement>;\n\n constructor(\n private resources: SkyLibResourcesService,\n private elRef: ElementRef,\n private textExpandRepeaterAdapter: SkyTextExpandRepeaterAdapterService,\n private changeDetector: ChangeDetectorRef\n ) { }\n\n public ngAfterViewInit() {\n if (this.contentItems) {\n this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less')\n ])\n .pipe(take(1))\n .subscribe(resources => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n /* sanity check */\n /* istanbul ignore else */\n if (!this.isExpanded) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.maxItems || changes.data) {\n this.setup(this.data);\n }\n }\n\n public animationEnd() {\n // Ensure the correct items are displayed\n if (!this.isExpanded) {\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public repeaterExpand() {\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateRepeater(true);\n });\n\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateRepeater(false);\n });\n\n }\n }\n\n private setContainerMaxHeight() {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);\n this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);\n }\n\n private animateRepeater(expanding: boolean) {\n let adapter = this.textExpandRepeaterAdapter;\n let container = this.containerEl;\n\n adapter.setContainerHeight(container, undefined);\n let currentHeight = adapter.getContainerHeight(container);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n if (!expanding) {\n adapter.hideItem(this.items[i]);\n } else {\n adapter.showItem(this.items[i]);\n }\n }\n let newHeight = adapter.getContainerHeight(container);\n if (!expanding) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n adapter.showItem(this.items[i]);\n }\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n\n private setup(value: Array<any>) {\n if (value) {\n let length = value.length;\n if (length > this.maxItems) {\n this.expandable = true;\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n } else {\n this.expandable = false;\n }\n this.contentItems = value;\n } else {\n this.contentItems = undefined;\n this.expandable = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';\n\n@NgModule({\n declarations: [\n SkyTextExpandRepeaterComponent\n ],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n CommonModule\n ],\n exports: [\n SkyTextExpandRepeaterComponent\n ]\n})\nexport class SkyTextExpandRepeaterModule { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a section to group items within the toolbar. The section displays items in a separate horizontal row.\n */\n@Component({\n selector: 'sky-toolbar-section',\n styleUrls: ['./toolbar-section.component.scss'],\n templateUrl: './toolbar-section.component.html'\n})\nexport class SkyToolbarSectionComponent {\n\n}\n","import {\n Component,\n AfterContentInit,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyToolbarSectionComponent\n} from './toolbar-section.component';\n\n/**\n * Displays actions for lists, records, and tiles.\n */\n@Component({\n selector: 'sky-toolbar',\n styleUrls: ['./toolbar.component.scss'],\n templateUrl: './toolbar.component.html'\n})\nexport class SkyToolbarComponent implements AfterContentInit {\n\n public hasSections: boolean = false;\n\n @ContentChildren(SkyToolbarSectionComponent, {descendants: true})\n private sectionComponents: QueryList<SkyToolbarSectionComponent>;\n\n public ngAfterContentInit() {\n this.hasSections = this.sectionComponents.length > 0;\n }\n}\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a container for an item in the toolbar.\n */\n@Component({\n selector: 'sky-toolbar-item',\n styleUrls: ['./toolbar-item.component.scss'],\n templateUrl: './toolbar-item.component.html'\n})\nexport class SkyToolbarItemComponent {\n\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Adds a section on the right side of the toolbar for items that substantially alter\n * the view of the content container. This includes simple filters and view switchers.\n */\n@Component({\n selector: 'sky-toolbar-view-actions',\n templateUrl: './toolbar-view-actions.component.html',\n styleUrls: ['./toolbar-view-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyToolbarViewActionsComponent { }\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyToolbarComponent\n} from './toolbar.component';\n\nimport {\n SkyToolbarItemComponent\n} from './toolbar-item.component';\n\nimport {\n SkyToolbarSectionComponent\n} from './toolbar-section.component';\n\nimport {\n SkyToolbarViewActionsComponent\n} from './toolbar-view-actions.component';\n\n@NgModule({\n declarations: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent\n ]\n})\nexport class SkyToolbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {SkyActionButtonAdapterService as ɵc} from './modules/action-button/action-button-adapter-service';\nexport {SkyActionButtonContainerComponent as ɵb} from './modules/action-button/action-button-container.component';\nexport {SkyActionButtonDetailsComponent as ɵd} from './modules/action-button/action-button-details.component';\nexport {SkyActionButtonHeaderComponent as ɵe} from './modules/action-button/action-button-header.component';\nexport {SkyActionButtonIconComponent as ɵf} from './modules/action-button/action-button-icon.component';\nexport {SkyActionButtonComponent as ɵa} from './modules/action-button/action-button.component';\nexport {SkyBackToTopDomAdapterService as ɵi} from './modules/back-to-top/back-to-top-adapter.service';\nexport {SkyBackToTopComponent as ɵg} from './modules/back-to-top/back-to-top.component';\nexport {SkyBackToTopDirective as ɵh} from './modules/back-to-top/back-to-top.directive';\nexport {SkyCardActionsComponent as ɵl} from './modules/card/card-actions.component';\nexport {SkyCardContentComponent as ɵq} from './modules/card/card-content.component';\nexport {SkyCardTitleComponent as ɵp} from './modules/card/card-title.component';\nexport {SkyCardComponent as ɵm} from './modules/card/card.component';\nexport {SkyDefinitionListContentComponent as ɵt} from './modules/definition-list/definition-list-content.component';\nexport {SkyDefinitionListHeadingComponent as ɵu} from './modules/definition-list/definition-list-heading.component';\nexport {SkyDefinitionListLabelComponent as ɵv} from './modules/definition-list/definition-list-label.component';\nexport {SkyDefinitionListValueComponent as ɵw} from './modules/definition-list/definition-list-value.component';\nexport {SkyDefinitionListComponent as ɵr} from './modules/definition-list/definition-list.component';\nexport {SkyDefinitionListService as ɵs} from './modules/definition-list/definition-list.service';\nexport {SkyDescriptionListAdapterService as ɵbc} from './modules/description-list/description-list-adapter-service';\nexport {SkyDescriptionListContentComponent as ɵz} from './modules/description-list/description-list-content.component';\nexport {SkyDescriptionListDescriptionComponent as ɵbb} from './modules/description-list/description-list-description.component';\nexport {SkyDescriptionListTermComponent as ɵba} from './modules/description-list/description-list-term.component';\nexport {SkyDescriptionListComponent as ɵx} from './modules/description-list/description-list.component';\nexport {SkyDescriptionListService as ɵy} from './modules/description-list/description-list.service';\nexport {SkyColumnComponent as ɵbe} from './modules/fluid-grid/column.component';\nexport {SkyFluidGridComponent as ɵbf} from './modules/fluid-grid/fluid-grid.component';\nexport {SkyRowComponent as ɵbd} from './modules/fluid-grid/row.component';\nexport {SkyFormatComponent as ɵbg} from './modules/format/format.component';\nexport {SkyInlineDeleteAdapterService as ɵo} from './modules/inline-delete/inline-delete-adapter.service';\nexport {SkyInlineDeleteComponent as ɵn} from './modules/inline-delete/inline-delete.component';\nexport {SkyPageSummaryAdapterService as ɵbl} from './modules/page-summary/page-summary-adapter.service';\nexport {SkyPageSummaryAlertComponent as ɵbj} from './modules/page-summary/page-summary-alert.component';\nexport {SkyPageSummaryContentComponent as ɵbn} from './modules/page-summary/page-summary-content.component';\nexport {SkyPageSummaryImageComponent as ɵbo} from './modules/page-summary/page-summary-image.component';\nexport {SkyPageSummaryKeyInfoComponent as ɵbm} from './modules/page-summary/page-summary-key-info.component';\nexport {SkyPageSummaryStatusComponent as ɵbp} from './modules/page-summary/page-summary-status.component';\nexport {SkyPageSummarySubtitleComponent as ɵbq} from './modules/page-summary/page-summary-subtitle.component';\nexport {SkyPageSummaryTitleComponent as ɵbr} from './modules/page-summary/page-summary-title.component';\nexport {SkyPageSummaryComponent as ɵbk} from './modules/page-summary/page-summary.component';\nexport {SkyPageThemeAdapterService as ɵbi} from './modules/page/page-theme-adapter.service';\nexport {SkyPageComponent as ɵbh} from './modules/page/page.component';\nexport {SkyLayoutResourcesModule as ɵj} from './modules/shared/layout-resources.module';\nexport {SkyTextExpandRepeaterAdapterService as ɵbx} from './modules/text-expand-repeater/text-expand-repeater-adapter.service';\nexport {SkyTextExpandRepeaterComponent as ɵbw} from './modules/text-expand-repeater/text-expand-repeater.component';\nexport {SkyTextExpandAdapterService as ɵbt} from './modules/text-expand/text-expand-adapter.service';\nexport {SkyTextExpandModalContext as ɵbv} from './modules/text-expand/text-expand-modal-context';\nexport {SkyTextExpandModalComponent as ɵbu} from './modules/text-expand/text-expand-modal.component';\nexport {SkyTextExpandComponent as ɵbs} from './modules/text-expand/text-expand.component';\nexport {SkyToolbarItemComponent as ɵca} from './modules/toolbar/toolbar-item.component';\nexport {SkyToolbarSectionComponent as ɵbz} from './modules/toolbar/toolbar-section.component';\nexport {SkyToolbarViewActionsComponent as ɵcb} from './modules/toolbar/toolbar-view-actions.component';\nexport {SkyToolbarComponent as ɵby} from './modules/toolbar/toolbar.component';\nexport {SkyLayoutResourcesProvider as ɵk} from './plugin-resources/layout-resources-provider';"],"names":["nextId","observableForkJoin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-layout.js","sources":["ng://@skyux/layout/modules/action-button/action-button-adapter-service.ts","ng://@skyux/layout/modules/action-button/action-button.component.ts","ng://@skyux/layout/modules/action-button/action-button-container.component.ts","ng://@skyux/layout/modules/action-button/action-button-details.component.ts","ng://@skyux/layout/modules/action-button/action-button-header.component.ts","ng://@skyux/layout/modules/action-button/action-button-icon.component.ts","ng://@skyux/layout/modules/action-button/action-button.module.ts","ng://@skyux/layout/plugin-resources/layout-resources-provider.ts","ng://@skyux/layout/modules/shared/layout-resources.module.ts","ng://@skyux/layout/modules/back-to-top/back-to-top-adapter.service.ts","ng://@skyux/layout/modules/back-to-top/back-to-top.component.ts","ng://@skyux/layout/modules/back-to-top/models/back-to-top-message-type.ts","ng://@skyux/layout/modules/back-to-top/back-to-top.directive.ts","ng://@skyux/layout/modules/back-to-top/back-top-top.module.ts","ng://@skyux/layout/modules/inline-delete/inline-delete-adapter.service.ts","ng://@skyux/layout/modules/inline-delete/inline-delete-type.ts","ng://@skyux/layout/modules/inline-delete/inline-delete.component.ts","ng://@skyux/layout/modules/inline-delete/inline-delete.module.ts","ng://@skyux/layout/modules/card/card-actions.component.ts","ng://@skyux/layout/modules/card/card-content.component.ts","ng://@skyux/layout/modules/card/card-title.component.ts","ng://@skyux/layout/modules/card/card.component.ts","ng://@skyux/layout/modules/card/card.module.ts","ng://@skyux/layout/modules/definition-list/definition-list.service.ts","ng://@skyux/layout/modules/definition-list/definition-list.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-content.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-heading.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-label.component.ts","ng://@skyux/layout/modules/definition-list/definition-list-value.component.ts","ng://@skyux/layout/modules/definition-list/definition-list.module.ts","ng://@skyux/layout/modules/description-list/description-list-adapter-service.ts","ng://@skyux/layout/modules/description-list/types/description-list-mode.ts","ng://@skyux/layout/modules/description-list/description-list-term.component.ts","ng://@skyux/layout/modules/description-list/description-list.service.ts","ng://@skyux/layout/modules/description-list/description-list-description.component.ts","ng://@skyux/layout/modules/description-list/description-list-content.component.ts","ng://@skyux/layout/modules/description-list/description-list.component.ts","ng://@skyux/layout/modules/description-list/description-list.module.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid-gutter-size.ts","ng://@skyux/layout/modules/fluid-grid/row.component.ts","ng://@skyux/layout/modules/fluid-grid/column.component.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid.component.ts","ng://@skyux/layout/modules/fluid-grid/fluid-grid.module.ts","ng://@skyux/layout/modules/format/format.component.ts","ng://@skyux/layout/modules/format/format.module.ts","ng://@skyux/layout/modules/page/page-theme-adapter.service.ts","ng://@skyux/layout/modules/page/page.component.ts","ng://@skyux/layout/modules/page/page.module.ts","ng://@skyux/layout/modules/page-summary/page-summary-alert.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-content.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-image.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-key-info.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-status.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-subtitle.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-title.component.ts","ng://@skyux/layout/modules/page-summary/page-summary-adapter.service.ts","ng://@skyux/layout/modules/page-summary/page-summary.component.ts","ng://@skyux/layout/modules/page-summary/page-summary.module.ts","ng://@skyux/layout/modules/text-expand/text-expand-adapter.service.ts","ng://@skyux/layout/modules/text-expand/text-expand-modal-context.ts","ng://@skyux/layout/modules/text-expand/text-expand-modal.component.ts","ng://@skyux/layout/modules/text-expand/text-expand.component.ts","ng://@skyux/layout/modules/text-expand/text-expand.module.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater-adapter.service.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater.component.ts","ng://@skyux/layout/modules/text-expand-repeater/text-expand-repeater.module.ts","ng://@skyux/layout/modules/toolbar/toolbar-section.component.ts","ng://@skyux/layout/modules/toolbar/toolbar.component.ts","ng://@skyux/layout/modules/toolbar/toolbar-item.component.ts","ng://@skyux/layout/modules/toolbar/toolbar-view-actions.component.ts","ng://@skyux/layout/modules/toolbar/toolbar.module.ts","ng://@skyux/layout/skyux-layout.ts"],"sourcesContent":["import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\nconst RESPONSIVE_CLASS_SM = 'sky-action-button-container-sm';\nconst RESPONSIVE_CLASS_MD = 'sky-action-button-container-md';\nconst RESPONSIVE_CLASS_LG = 'sky-action-button-container-lg';\n\nconst BREAKPOINT_MD = 912;\nconst BREAKPOINT_LG = 1378;\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyActionButtonAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getParentWidth(element: ElementRef): number {\n return element.nativeElement.parentNode.getBoundingClientRect().width;\n }\n\n public setResponsiveClass(element: ElementRef, width: number): void {\n const el: any = element.nativeElement;\n const className = this.getResponsiveClassName(width);\n\n this.renderer.removeClass(el, RESPONSIVE_CLASS_SM);\n this.renderer.removeClass(el, RESPONSIVE_CLASS_MD);\n this.renderer.removeClass(el, RESPONSIVE_CLASS_LG);\n\n this.renderer.addClass(el, className);\n }\n\n private getResponsiveClassName(width: number): string {\n if (width < BREAKPOINT_MD) {\n return RESPONSIVE_CLASS_SM;\n } else if (width > BREAKPOINT_MD && width < BREAKPOINT_LG) {\n return RESPONSIVE_CLASS_MD;\n } else {\n return RESPONSIVE_CLASS_LG;\n }\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n SkyActionButtonPermalink\n} from './action-button-permalink';\n\n/**\n * Creates a button to present users with an option to move forward with tasks.\n */\n@Component({\n selector: 'sky-action-button',\n styleUrls: ['./action-button.component.scss'],\n templateUrl: './action-button.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyActionButtonComponent {\n\n/**\n * Specifies a link for the action button.\n */\n @Input()\n public permalink: SkyActionButtonPermalink;\n\n/**\n * Fires when users select the action button.\n */\n @Output()\n public actionClick = new EventEmitter<any>();\n\n public buttonClicked() {\n this.actionClick.emit();\n }\n\n public enterPress() {\n this.actionClick.emit();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n MutationObserverService,\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyActionButtonContainerAlignItems\n} from './types/action-button-container-align-items';\n\nimport {\n SkyActionButtonAdapterService\n} from './action-button-adapter-service';\n\nimport {\n SkyActionButtonComponent\n} from './action-button.component';\n\n/**\n * Wraps action buttons to ensures that they have consistent height and spacing.\n * @required\n */\n@Component({\n selector: 'sky-action-button-container',\n styleUrls: ['./action-button-container.component.scss'],\n templateUrl: './action-button-container.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyActionButtonContainerComponent implements AfterContentInit, OnDestroy, OnInit {\n\n /**\n * Specifies how to display the action buttons inside the action button container.\n * @default SkyActionButtonContainerAlignItems.center\n */\n @Input()\n public set alignItems(value: SkyActionButtonContainerAlignItems) {\n this._alignItems = value;\n }\n\n public get alignItems(): SkyActionButtonContainerAlignItems {\n return this._alignItems || SkyActionButtonContainerAlignItems.Center;\n }\n\n @ContentChildren(SkyActionButtonComponent)\n private actionButtons: QueryList<SkyActionButtonComponent>;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true\n })\n private containerRef: ElementRef<any>;\n\n private mutationObserver: MutationObserver;\n\n private ngUnsubscribe = new Subject();\n\n private set themeName(value: string) {\n this._themeName = value;\n this.updateResponsiveClass();\n this.updateHeight();\n }\n\n private _alignItems: SkyActionButtonContainerAlignItems;\n\n private _themeName: string;\n\n constructor(\n private actionButtonAdapterService: SkyActionButtonAdapterService,\n private changeRef: ChangeDetectorRef,\n private coreAdapterService: SkyCoreAdapterService,\n private hostElRef: ElementRef,\n private mutationObserverSvc: MutationObserverService,\n private ngZone: NgZone,\n @Optional() private themeSvc?: SkyThemeService\n ) { }\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n this.themeName = themeSettings.currentSettings?.theme?.name;\n this.changeRef.markForCheck();\n });\n }\n\n // Wait for children components to complete rendering before container width is determined.\n setTimeout(() => {\n this.updateResponsiveClass();\n });\n }\n\n public ngAfterContentInit(): void {\n // Watch for dynamic action button changes and recalculate height.\n this.actionButtons?.changes\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(() => {\n this.updateHeight();\n });\n\n this.initMutationObserver();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.destroyMutationObserver();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.updateResponsiveClass();\n }\n\n private initMutationObserver(): void {\n if (!this.mutationObserver) {\n const el = this.containerRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // scenarios. This will keep MutationObserver from triggering change detection.\n this.ngZone.runOutsideAngular(() => {\n this.mutationObserver = this.mutationObserverSvc.create(() => {\n this.updateHeight();\n });\n\n this.mutationObserver.observe(\n el,\n {\n characterData: true,\n subtree: true\n }\n );\n });\n }\n }\n\n private destroyMutationObserver(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n private updateHeight(): void {\n this.coreAdapterService.resetHeight(this.containerRef, '.sky-action-button');\n if (this._themeName === 'modern') {\n // Wait for children components to complete rendering before height is determined.\n setTimeout(() => {\n this.coreAdapterService.syncMaxHeight(this.containerRef, '.sky-action-button');\n });\n }\n }\n\n private updateResponsiveClass(): void {\n const parentWidth = this.actionButtonAdapterService.getParentWidth(this.hostElRef);\n this.actionButtonAdapterService.setResponsiveClass(this.containerRef, parentWidth);\n }\n\n}\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a description to display on an action button.\n */\n@Component({\n selector: 'sky-action-button-details',\n templateUrl: './action-button-details.component.html'\n})\nexport class SkyActionButtonDetailsComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a header to display on an action button.\n */\n@Component({\n selector: 'sky-action-button-header',\n styleUrls: ['./action-button-header.component.scss'],\n templateUrl: './action-button-header.component.html'\n})\nexport class SkyActionButtonHeaderComponent {}\n","import {\n Component,\n Input,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService\n} from '@skyux/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nconst FONTSIZECLASS_SMALL = '2x';\nconst FONTSIZECLASS_LARGE = '3x';\n\n/**\n * Specifies an icon to display on the action button.\n */\n@Component({\n selector: 'sky-action-button-icon',\n styleUrls: ['./action-button-icon.component.scss'],\n templateUrl: './action-button-icon.component.html'\n})\nexport class SkyActionButtonIconComponent implements OnDestroy {\n\n/**\n * Specifies an icon from the\n * [Font Awesome library](https://fontawesome.com/v4.7.0/).\n * For example, to display the `fa-filter` icon on the action button,\n * set `iconType` to `filter`. SKY UX supports version 4.7.0 of Font Awesome.\n * For more information about icons in SKY UX, see the\n * [icon component](https://developer.blackbaud.com/skyux-indicators/docs/icon).\n */\n @Input()\n public iconType: string;\n\n public fontSizeClass: string = FONTSIZECLASS_LARGE;\n\n private subscription: Subscription;\n\n constructor(private mediaQueryService: SkyMediaQueryService) {\n this.subscription = this.mediaQueryService.subscribe((args: SkyMediaBreakpoints) => {\n if (args === SkyMediaBreakpoints.xs) {\n this.fontSizeClass = FONTSIZECLASS_SMALL;\n } else {\n this.fontSizeClass = FONTSIZECLASS_LARGE;\n }\n });\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n RouterModule\n} from '@angular/router';\n\nimport {\n MutationObserverService,\n SkyCoreAdapterService,\n SkyMediaQueryModule\n} from '@skyux/core';\n\nimport {\n SkyIconModule\n} from '@skyux/indicators';\n\nimport {\n SkyHrefModule\n} from '@skyux/router';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyActionButtonAdapterService\n} from './action-button-adapter-service';\n\nimport {\n SkyActionButtonContainerComponent\n} from './action-button-container.component';\n\nimport {\n SkyActionButtonDetailsComponent\n} from './action-button-details.component';\n\nimport {\n SkyActionButtonHeaderComponent\n} from './action-button-header.component';\n\nimport {\n SkyActionButtonIconComponent\n} from './action-button-icon.component';\n\nimport {\n SkyActionButtonComponent\n} from './action-button.component';\n\n@NgModule({\n declarations: [\n SkyActionButtonComponent,\n SkyActionButtonContainerComponent,\n SkyActionButtonDetailsComponent,\n SkyActionButtonHeaderComponent,\n SkyActionButtonIconComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n SkyIconModule,\n SkyMediaQueryModule,\n SkyThemeModule,\n SkyHrefModule\n ],\n exports: [\n SkyActionButtonComponent,\n SkyActionButtonContainerComponent,\n SkyActionButtonDetailsComponent,\n SkyActionButtonHeaderComponent,\n SkyActionButtonIconComponent\n ],\n providers: [\n MutationObserverService,\n SkyActionButtonAdapterService,\n SkyCoreAdapterService\n ]\n})\nexport class SkyActionButtonModule { }\n","\nimport {\n Injectable\n} from '@angular/core';\n\nimport {\n getStringForLocale,\n SkyAppLocaleInfo,\n SkyLibResourcesProvider\n} from '@skyux/i18n';\n\n@Injectable()\nexport class SkyLayoutResourcesProvider implements SkyLibResourcesProvider {\n private resources: any = {\"EN-US\":{\"skyux_back_to_top\":\"Back to top\",\"skyux_card_checkbox_label\":\"Select card\",\"skyux_definition_list_none_found\":\"None found.\",\"skyux_description_list_none_found\":\"None found.\",\"skyux_inline_delete_assistive_text\":\"Are you sure you want to delete this item?\",\"skyux_inline_delete_cancel\":\"Cancel\",\"skyux_inline_delete_confirm_deletion\":\"Confirm deletion\",\"skyux_inline_delete_delete\":\"Delete\",\"skyux_text_expand_close_text\":\"Close\",\"skyux_text_expand_modal_title\":\"Expanded view\",\"skyux_text_expand_see_less\":\"See less\",\"skyux_text_expand_see_more\":\"See more\"}};\n\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getStringForLocale(this.resources, localeInfo.locale, name);\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SKY_LIB_RESOURCES_PROVIDERS\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesProvider\n} from '../../plugin-resources/layout-resources-provider';\n\n@NgModule({\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyLayoutResourcesProvider,\n multi: true\n }]\n})\nexport class SkyLayoutResourcesModule { }\n","import {\n ElementRef,\n Injectable,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyAppWindowRef\n} from '@skyux/core';\n\nimport {\n fromEvent,\n Observable,\n Subject\n} from 'rxjs';\n\nimport {\n map,\n takeUntil\n} from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyBackToTopDomAdapterService implements OnDestroy {\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private windowRef: SkyAppWindowRef\n ) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * This event returns a boolean on scroll indicating whether the provided element is in view.\n * @param elementRef The target element reference.\n */\n public elementInViewOnScroll(elementRef: ElementRef): Observable<boolean> {\n const parent = this.findScrollableParent(elementRef.nativeElement);\n\n return fromEvent(parent, 'scroll')\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(() => {\n const isInView = this.isElementScrolledInView(\n elementRef.nativeElement,\n parent\n );\n return isInView;\n })\n );\n }\n\n /**\n * Scrolls the window or scrollable parent to the provided element.\n * @param elementRef The target element reference.\n */\n public scrollToElement(elementRef: ElementRef): void {\n /* sanity check */\n /* istanbul ignore if */\n if (!elementRef || !elementRef.nativeElement) {\n return;\n }\n\n const windowObj = this.windowRef.nativeWindow;\n const parent = this.findScrollableParent(elementRef.nativeElement);\n\n if (parent === windowObj) {\n // Scroll to top of window, but account for the body margin that allows for the omnibar if it exists.\n const bodyMarginOffset = parseInt(getComputedStyle(document.body).marginTop, 10);\n const newOffsetTop = elementRef.nativeElement.offsetTop - bodyMarginOffset;\n this.windowRef.nativeWindow.scrollTo(\n elementRef.nativeElement.offsetLeft,\n newOffsetTop\n );\n } else {\n // Scroll to top of parent element.\n parent.scrollTop = parent.offsetTop - elementRef.nativeElement.offsetTop;\n }\n }\n\n public findScrollableParent(element: any): any {\n const regex = /(auto|scroll)/;\n const windowObj = this.windowRef.nativeWindow;\n const bodyObj = windowObj.document.body;\n\n let style = windowObj.getComputedStyle(element);\n let parent = element;\n\n do {\n parent = parent.parentNode;\n style = windowObj.getComputedStyle(parent);\n } while (\n !regex.test(style.overflow) &&\n !regex.test(style.overflowY) &&\n parent !== bodyObj\n );\n\n if (parent === bodyObj) {\n return windowObj;\n }\n\n return parent;\n }\n\n public isElementScrolledInView(\n element: any,\n parentElement: any\n ): boolean {\n const buffer = 25;\n const windowObj = this.windowRef.nativeWindow;\n const elementRect = element.getBoundingClientRect();\n\n /* istanbul ignore else */\n if (parentElement === windowObj) {\n return (elementRect.top > -buffer);\n } else {\n const parentRect = parentElement.getBoundingClientRect();\n return (elementRect.top > parentRect.top - buffer);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\nimport {\n Observable,\n Subject\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-back-to-top',\n templateUrl: './back-to-top.component.html',\n styleUrls: [\n './back-to-top.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyBackToTopComponent {\n\n public get scrollToTopClick(): Observable<void> {\n return this._scrollToTopClick.asObservable();\n }\n\n private _scrollToTopClick = new Subject<void>();\n\n public onScrollToTopClick(): void {\n this._scrollToTopClick.next();\n this._scrollToTopClick.complete();\n }\n\n}\n","/**\n * Specifies the type of message to send to the back to top component.\n */\nexport enum SkyBackToTopMessageType {\n\n /**\n * Scrolls the element back to the top.\n */\n BackToTop = 0\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy\n} from '@angular/core';\n\nimport {\n SkyDockItem,\n SkyDockService\n} from '@skyux/core';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n SkyBackToTopDomAdapterService\n} from './back-to-top-adapter.service';\n\nimport {\n SkyBackToTopComponent\n} from './back-to-top.component';\n\nimport {\n SkyBackToTopMessage\n} from './models/back-to-top-message';\n\nimport {\n SkyBackToTopMessageType\n} from './models/back-to-top-message-type';\n\nimport {\n SkyBackToTopOptions\n} from './models/back-to-top-options';\n\n/**\n * Associates a button with an element on the page and displays that button\n * to return to the element after users scroll away.\n */\n@Directive({\n selector: '[skyBackToTop]',\n providers: [\n SkyBackToTopDomAdapterService\n ]\n})\nexport class SkyBackToTopDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Specifies configuration options for the back to top component.\n */\n @Input()\n public set skyBackToTop(value: SkyBackToTopOptions) {\n this.buttonHidden = !!value?.buttonHidden;\n\n this.handleBackToTopButton(this.elementInView);\n }\n\n /**\n * Provides an observable to send commands to the back to top component.\n * The commands respect the `SkyBackToTopMessage` type.\n */\n @Input()\n public set skyBackToTopMessageStream(value: Subject<SkyBackToTopMessage>) {\n if (this._skyBackToTopMessageStream) {\n this._skyBackToTopMessageStream.unsubscribe();\n }\n this._skyBackToTopMessageStream = value;\n this._skyBackToTopMessageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyBackToTopMessage) => this.handleIncomingMessages(message));\n }\n\n private buttonHidden = false;\n private dockItem: SkyDockItem<SkyBackToTopComponent>;\n private elementInView: boolean;\n\n private ngUnsubscribe = new Subject<void>();\n private _skyBackToTopMessageStream: Subject<SkyBackToTopMessage>;\n\n constructor(\n private dockService: SkyDockService,\n private domAdapter: SkyBackToTopDomAdapterService,\n private element: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n const scrollableParent = this.domAdapter.findScrollableParent(this.element.nativeElement);\n this.elementInView = this.domAdapter.isElementScrolledInView(this.element.nativeElement, scrollableParent);\n\n this.handleBackToTopButton(this.elementInView);\n this.setBackToTopListeners();\n }\n\n public ngOnDestroy(): void {\n if (this.dockItem) {\n this.dockItem.destroy();\n }\n }\n\n private handleBackToTopButton(elementInView: boolean): void {\n // Add back to top button if user scrolls down and button is not hidden.\n if (!this.dockItem && elementInView !== undefined && !elementInView && !this.buttonHidden) {\n this.addBackToTop();\n }\n // Remove back to top button if user scrolls back up.\n if (elementInView || this.buttonHidden) {\n this.destroyBackToTop();\n }\n }\n\n private addBackToTop(): void {\n this.dockItem = this.dockService.insertComponent(SkyBackToTopComponent);\n\n // Listen for clicks on the \"back to top\" button so we know when to scroll up.\n this.dockItem.componentInstance.scrollToTopClick\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.domAdapter.scrollToElement(this.element);\n });\n }\n\n private handleIncomingMessages(message: SkyBackToTopMessage): void {\n /* istanbul ignore else */\n if (message.type === SkyBackToTopMessageType.BackToTop) {\n this.domAdapter.scrollToElement(this.element);\n }\n }\n\n private setBackToTopListeners(): void {\n /* istanbul ignore else */\n if (this.element) {\n this.domAdapter.elementInViewOnScroll(this.element)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((elementInView: boolean) => {\n this.elementInView = elementInView;\n\n this.handleBackToTopButton(elementInView);\n });\n }\n }\n\n private destroyBackToTop(): void {\n /* istanbul ignore else */\n if (this.dockItem) {\n this.dockItem.destroy();\n this.dockItem = undefined;\n }\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyAppWindowRef,\n SkyDockModule\n} from '@skyux/core';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyBackToTopDirective\n} from './back-to-top.directive';\n\nimport {\n SkyBackToTopComponent\n} from './back-to-top.component';\n\n@NgModule({\n declarations: [\n SkyBackToTopComponent,\n SkyBackToTopDirective\n ],\n providers: [\n SkyAppWindowRef\n ],\n imports: [\n CommonModule,\n SkyDockModule,\n SkyI18nModule,\n SkyLayoutResourcesModule\n ],\n exports: [\n SkyBackToTopComponent,\n SkyBackToTopDirective\n ],\n entryComponents: [\n SkyBackToTopComponent\n ]\n})\nexport class SkyBackToTopModule { }\n","import {\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\nimport {\n SkyCoreAdapterService\n} from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineDeleteAdapterService {\n\n private element: HTMLElement;\n private focussableElements: HTMLElement[];\n private parentEl: HTMLElement;\n private parentElUnlistenFn: Function;\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public clearListeners(): void {\n /* istanbul ignore else */\n if (this.parentElUnlistenFn) {\n this.parentElUnlistenFn();\n }\n }\n\n public setEl(element: HTMLElement): void {\n this.element = element;\n this.parentEl = element.parentElement;\n\n /* istanbul ignore else */\n if (this.parentEl) {\n this.parentElUnlistenFn = this.renderer.listen(this.parentEl, 'focusin',\n (event: FocusEvent) => {\n const target: any = event.target;\n if (!this.element.contains(target) && this.parentEl !== target) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n target.blur();\n this.focusNextElement(target, this.isShift(event), this.parentEl);\n }\n });\n }\n }\n\n private focusNextElement(targetElement: HTMLElement, shiftKey: boolean, busyEl: Element): 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 (focussable[curIndex] && this.isElementHiddenOrCovered(focussable[curIndex])) {\n curIndex += modifier;\n }\n\n if (focussable[curIndex] && !this.isElementHiddenOrCovered(focussable[curIndex])) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (focussable[curIndex] && !this.isElementHiddenOrCovered(focussable[curIndex])) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n // This should never happen in practice due to the multiple inline delete buttons\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n }\n\n // clear focussableElements list so that if things change between tabbing we know about it\n this.focussableElements = undefined;\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 this.focussableElements = this.coreAdapterService.getFocusableChildren(document.body);\n\n return this.focussableElements;\n }\n\n private isElementHiddenOrCovered(element: any): boolean {\n // Check if the element is hidden by css, not within the inline delete, or a wait is covering it\n return this.isElementHidden(element) ||\n (this.parentEl.contains(element) && (!this.element.contains(element) ||\n this.parentEl.querySelector('.sky-wait-mask') !== null));\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 isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().filter(elem => !this.isElementHidden(elem));\n\n const previousInd = elements.indexOf((event as any).relatedTarget);\n const currentInd = elements.indexOf(event.target as HTMLElement);\n\n return previousInd === currentInd + 1\n || (previousInd === 0 && currentInd === elements.length - 1)\n || (previousInd > currentInd)\n || !(event as any).relatedTarget;\n }\n}\n","/**\n * Specifies the type of inline delete that is shown.\n * @internal\n */\nexport enum SkyInlineDeleteType {\n /**\n * The standard styling for inline deletes.\n */\n Standard = 'standard',\n /**\n * The styling for inline delete components which are used in card components.\n */\n Card = 'card'\n}\n","import {\n animate,\n AnimationEvent,\n group,\n query,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyInlineDeleteAdapterService\n} from './inline-delete-adapter.service';\n\nimport {\n SkyInlineDeleteType\n} from './inline-delete-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for inline delete components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-inline-delete',\n styleUrls: ['./inline-delete.component.scss'],\n templateUrl: './inline-delete.component.html',\n animations: [\n trigger('inlineDeleteAnimation', [\n transition('* => shown', [\n style({\n opacity: 0\n }),\n query('.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(0.0)' })),\n group([\n animate('300ms ease-in-out', style({ opacity: 1 })),\n query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({\n transform: 'scale(1)'\n })))\n ])\n ]),\n transition(`shown <=> *`, [\n query('.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(1)' })),\n group([\n animate('300ms ease-in-out', style({\n opacity: 0\n })),\n query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({\n transform: 'scale(0.0)'\n })))\n ])\n ])\n ])\n ],\n providers: [\n SkyCoreAdapterService,\n SkyInlineDeleteAdapterService\n ]\n})\nexport class SkyInlineDeleteComponent implements OnDestroy, OnInit {\n\n /**\n * Indicates whether the deletion is pending.\n * @default \"false\"\n */\n @Input()\n public pending: boolean = false;\n\n /**\n * Fires when users click the cancel button.\n */\n @Output()\n public cancelTriggered = new EventEmitter<void>();\n\n /**\n * Fires when users click the delete button.\n */\n @Output()\n public deleteTriggered = new EventEmitter<void>();\n\n public animationState: string = 'shown';\n\n public assistiveTextId: string = `sky-inline-delete-assistive-text-${++nextId}`;\n\n public type: SkyInlineDeleteType = SkyInlineDeleteType.Standard;\n\n @ViewChild('delete', {\n read: ElementRef,\n static: false\n })\n private deleteButton: ElementRef;\n\n constructor(\n private adapterService: SkyInlineDeleteAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef\n ) { }\n\n /**\n * Initialization lifecycle hook\n * @internal\n */\n public ngOnInit(): void {\n this.animationState = 'shown';\n }\n\n /**\n * Destruction lifecycle hook\n * @internal\n */\n public ngOnDestroy(): void {\n this.adapterService.clearListeners();\n this.cancelTriggered.complete();\n this.deleteTriggered.complete();\n }\n\n /**\n * @internal\n */\n public onCancelClick(): void {\n this.animationState = 'hidden';\n }\n\n /**\n * @internal\n */\n public onDeleteClick(): void {\n this.deleteTriggered.emit();\n }\n\n /**\n * Sets the inline delete to one of its predefined types.\n * @param type The inline delete type\n * @internal\n */\n public setType(type: SkyInlineDeleteType): void {\n this.type = type;\n this.changeDetector.detectChanges();\n }\n\n /**\n * Handles actions that should be taken after the inline delete animates\n * @param event The animation event\n * @internal\n */\n public onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'hidden') {\n this.cancelTriggered.emit();\n } else {\n this.deleteButton.nativeElement.focus();\n if (this.elRef) {\n this.adapterService.setEl(this.elRef.nativeElement);\n }\n }\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyWaitModule\n} from '@skyux/indicators';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyInlineDeleteComponent\n} from './inline-delete.component';\n\n@NgModule({\n declarations: [\n SkyInlineDeleteComponent\n ],\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyWaitModule\n ],\n exports: [\n SkyInlineDeleteComponent\n ]\n})\nexport class SkyInlineDeleteModule { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies an action that users can perform on the card.\n */\n@Component({\n selector: 'sky-card-actions',\n templateUrl: './card-actions.component.html',\n styleUrls: ['./card-actions.component.scss']\n})\nexport class SkyCardActionsComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies the content to display in the body of the card.\n */\n@Component({\n selector: 'sky-card-content',\n templateUrl: './card-content.component.html'\n})\nexport class SkyCardContentComponent { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a title to identify what the card represents.\n */\n@Component({\n selector: 'sky-card-title',\n templateUrl: './card-title.component.html'\n})\nexport class SkyCardTitleComponent { }\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyCardTitleComponent\n} from './card-title.component';\n\nimport {\n SkyInlineDeleteComponent\n} from '../inline-delete/inline-delete.component';\n\nimport {\n SkyInlineDeleteType\n} from '../inline-delete/inline-delete-type';\n\n/**\n * Creates a a small container to highlight important information.\n */\n@Component({\n selector: 'sky-card',\n styleUrls: ['./card.component.scss'],\n templateUrl: './card.component.html'\n})\nexport class SkyCardComponent implements AfterContentInit, OnDestroy {\n/**\n * Specifies the size of the card. The valid options are `large` and `small`.\n * @default large\n */\n @Input()\n public size: string;\n\n/**\n * Indicates whether to display a checkbox to the right of the card title.\n * Users can select multiple checkboxes and perform actions on the selected cards.\n * @default false\n */\n @Input()\n public selectable: boolean;\n\n/**\n * Indicates whether the card is selected. This only applies to card where\n * `selectable` is set to `true`.\n * @default false\n */\n @Input()\n public selected: boolean;\n\n/**\n * Fires when users select or deselect the card.\n */\n @Output()\n public selectedChange = new EventEmitter<boolean>();\n\n @ContentChildren(SkyInlineDeleteComponent)\n public inlineDeleteComponent: QueryList<SkyInlineDeleteComponent>;\n\n @ContentChildren(SkyCardTitleComponent)\n public titleComponent: QueryList<SkyCardTitleComponent>;\n\n public showTitle: boolean = true;\n\n private subscription: Subscription;\n\n public ngAfterContentInit() {\n this.showTitle = this.titleComponent.length > 0;\n\n this.subscription = this.titleComponent.changes.subscribe(() => {\n this.showTitle = this.titleComponent.length > 0;\n });\n\n this.inlineDeleteComponent.forEach(item => {\n item.setType(SkyInlineDeleteType.Card);\n });\n\n this.inlineDeleteComponent.changes.subscribe(() => {\n this.inlineDeleteComponent.forEach(item => {\n item.setType(SkyInlineDeleteType.Card);\n });\n });\n }\n\n public contentClick() {\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedChange.emit(this.selected);\n }\n }\n\n public onCheckboxChange(newValue: boolean) {\n if (this.selectable && this.selected !== newValue) {\n this.selected = newValue;\n this.selectedChange.emit(this.selected);\n }\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n FormsModule\n} from '@angular/forms';\n\nimport {\n SkyCheckboxModule\n} from '@skyux/forms';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyInlineDeleteModule\n} from '../inline-delete/inline-delete.module';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyCardActionsComponent\n} from './card-actions.component';\n\nimport {\n SkyCardContentComponent\n} from './card-content.component';\n\nimport {\n SkyCardTitleComponent\n} from './card-title.component';\n\nimport {\n SkyCardComponent\n} from './card.component';\n\n@NgModule({\n declarations: [\n SkyCardActionsComponent,\n SkyCardComponent,\n SkyCardContentComponent,\n SkyCardTitleComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyInlineDeleteModule\n ],\n exports: [\n SkyCardActionsComponent,\n SkyCardComponent,\n SkyCardContentComponent,\n SkyCardTitleComponent\n ]\n})\nexport class SkyCardModule { }\n","import { Injectable } from '@angular/core';\n\nimport {\n BehaviorSubject\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDefinitionListService {\n public labelWidth = new BehaviorSubject<string>('');\n\n public defaultValue = new BehaviorSubject<string>('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Creates a definition list to display label-value pairs.\n */\n@Component({\n selector: 'sky-definition-list',\n templateUrl: './definition-list.component.html',\n styleUrls: ['./definition-list.component.scss'],\n providers: [SkyDefinitionListService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListComponent {\n\n/**\n * Specifies the width of the label portion of the definition list.\n * @default 90px\n */\n @Input()\n public set labelWidth(value: string) {\n this.service.labelWidth.next(value);\n }\n\n/**\n * Specifies a default value to display when no value is provided\n * for a label-value pair.\n * @default 'None found'\n */\n @Input()\n public set defaultValue(value: string) {\n this.service.defaultValue.next(value);\n }\n\n constructor(\n public service: SkyDefinitionListService) { }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Wraps the label-value pairs in the definition list.\n */\n@Component({\n selector: 'sky-definition-list-content',\n templateUrl: './definition-list-content.component.html',\n styleUrls: ['./definition-list-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListContentComponent { }\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Specifies a title for the definition list.\n */\n@Component({\n selector: 'sky-definition-list-heading',\n templateUrl: './definition-list-heading.component.html',\n styleUrls: ['./definition-list-heading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListHeadingComponent { }\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Specifies the label in a label-value pair.\n */\n@Component({\n selector: 'sky-definition-list-label',\n templateUrl: './definition-list-label.component.html',\n styleUrls: ['./definition-list-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDefinitionListLabelComponent {\n public labelWidth: number;\n\n constructor(\n public service: SkyDefinitionListService) { }\n}\n","import {\n Component\n} from '@angular/core';\n\nimport { SkyDefinitionListService } from './definition-list.service';\n\n/**\n * Specifies the value in a label-value pair.\n */\n@Component({\n selector: 'sky-definition-list-value',\n templateUrl: './definition-list-value.component.html',\n styleUrls: ['./definition-list-value.component.scss']\n})\nexport class SkyDefinitionListValueComponent {\n public defaultValue: string;\n\n constructor(public service: SkyDefinitionListService) { }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyDefinitionListComponent } from './definition-list.component';\nimport { SkyDefinitionListContentComponent } from './definition-list-content.component';\nimport { SkyDefinitionListHeadingComponent } from './definition-list-heading.component';\nimport { SkyDefinitionListLabelComponent } from './definition-list-label.component';\nimport { SkyDefinitionListValueComponent } from './definition-list-value.component';\n\n@NgModule({\n declarations: [\n SkyDefinitionListComponent,\n SkyDefinitionListContentComponent,\n SkyDefinitionListHeadingComponent,\n SkyDefinitionListLabelComponent,\n SkyDefinitionListValueComponent\n ],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule\n ],\n exports: [\n SkyDefinitionListComponent,\n SkyDefinitionListContentComponent,\n SkyDefinitionListHeadingComponent,\n SkyDefinitionListLabelComponent,\n SkyDefinitionListValueComponent\n ]\n})\nexport class SkyDefinitionListModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDescriptionListAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getWidth(elementRef: ElementRef): number {\n return elementRef.nativeElement.clientWidth;\n }\n\n public setResponsiveClass(element: ElementRef): void {\n const nativeEl: any = element.nativeElement;\n const width = this.getWidth(element);\n const className = this.getResponsiveClassName(width);\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n\n this.renderer.addClass(nativeEl, className);\n }\n\n private getResponsiveClassName(width: number): string {\n const xsBreakpointMaxPixels = 479;\n const smBreakpointMinPixels = 480;\n const smBreakpointMaxPixels = 767;\n\n if (width <= xsBreakpointMaxPixels) {\n return 'sky-responsive-container-xs';\n } else if (width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels) {\n return 'sky-responsive-container-sm';\n } else {\n return 'sky-responsive-container-md';\n }\n }\n\n}\n","/**\n * Specifies how to display the term-description pairs within a description list.\n */\nexport enum SkyDescriptionListMode {\n\n /**\n * Displays term-description pairs side by side in a horizontal list.\n * This mode provides a responsive layout.\n */\n horizontal = 'horizontal',\n\n /**\n * Displays terms and descriptions side by side with the term on the left and the description\n * on the right. This mode includes room for long descriptions and uses a responsive layout\n * that stacks term-description pairs vertically.\n */\n longDescription = 'longDescription',\n\n /**\n * Displays term-description pairs in a vertical list.\n */\n vertical = 'vertical'\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\n/**\n * Specifies the term in a term-description pair.\n */\n@Component({\n selector: 'sky-description-list-term',\n templateUrl: './description-list-term.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListTermComponent {\n\n @ViewChild('termTemplateRef', {\n read: TemplateRef,\n static: true\n })\n public templateRef: TemplateRef<any>;\n\n}\n","import {\n Injectable,\n OnDestroy\n} from '@angular/core';\n\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyDescriptionListService implements OnDestroy {\n\n public get defaultDescription(): Observable<string> {\n return this._defaultDescription.asObservable();\n }\n\n private _defaultDescription = new BehaviorSubject<string>('');\n\n public ngOnDestroy(): void {\n this._defaultDescription.complete();\n }\n\n public updateDefaultDescription(value: string): void {\n this._defaultDescription.next(value);\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyDescriptionListService\n} from './description-list.service';\n\n/**\n * Specifies the description in a term-description pair.\n */\n@Component({\n selector: 'sky-description-list-description',\n templateUrl: './description-list-description.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListDescriptionComponent implements OnDestroy, OnInit {\n\n public defaultDescription: string;\n\n public themeName: string;\n\n @ViewChild('descriptionTemplateRef', {\n read: TemplateRef,\n static: true\n })\n public templateRef: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n public service: SkyDescriptionListService,\n private changeRef: ChangeDetectorRef,\n private themeSvc: SkyThemeService\n ) {}\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n this.themeName = themeSettings.currentSettings?.theme?.name;\n this.changeRef.markForCheck();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyDescriptionListTermComponent\n} from './description-list-term.component';\n\nimport {\n SkyDescriptionListDescriptionComponent\n} from './description-list-description.component';\n\n/**\n * Wraps the term-description pairs in the description list.\n */\n@Component({\n selector: 'sky-description-list-content',\n templateUrl: './description-list-content.component.html'\n})\nexport class SkyDescriptionListContentComponent {\n\n @ContentChildren(SkyDescriptionListTermComponent)\n public termComponents: QueryList<SkyDescriptionListTermComponent>;\n\n @ContentChildren(SkyDescriptionListDescriptionComponent)\n public descriptionComponents: QueryList<SkyDescriptionListDescriptionComponent>;\n\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n QueryList,\n ViewChild\n} from '@angular/core';\n\nimport {\n MutationObserverService\n} from '@skyux/core';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n Subject\n} from 'rxjs';\n\nimport {\n SkyDescriptionListMode\n} from './types/description-list-mode';\n\nimport {\n SkyDescriptionListAdapterService\n} from './description-list-adapter-service';\n\nimport {\n SkyDescriptionListContentComponent\n} from './description-list-content.component';\n\nimport {\n SkyDescriptionListService\n} from './description-list.service';\n\n/**\n * Creates a description list to display term-description pairs.\n */\n@Component({\n selector: 'sky-description-list',\n templateUrl: './description-list.component.html',\n styleUrls: ['./description-list.component.scss'],\n providers: [SkyDescriptionListService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyDescriptionListComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n/**\n * Specifies a default description to display when no description is provided\n * for a term-description pair.\n * @default 'None found'\n */\n @Input()\n public set defaultDescription(value: string) {\n this.descriptionListService.updateDefaultDescription(value);\n }\n\n /**\n * Specifies the width of term-description pairs when `mode` is set to `horizontal`. By default,\n * the width is responsive based on the width of the container element.\n */\n @Input()\n public listItemWidth: string;\n\n /**\n * Specifies how to display term-description pairs within the description list.\n * @default SkyDescriptionListMode.vertical\n */\n @Input()\n public set mode(value: SkyDescriptionListMode) {\n this._mode = value;\n }\n\n public get mode(): SkyDescriptionListMode {\n return this._mode || SkyDescriptionListMode.vertical;\n }\n\n @ContentChildren(SkyDescriptionListContentComponent)\n public contentComponents: QueryList<SkyDescriptionListContentComponent>;\n\n private contentObserver: MutationObserver;\n\n @ViewChild('descriptionListElement', {\n read: ElementRef,\n static: true\n })\n private elementRef: ElementRef;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _mode: SkyDescriptionListMode;\n\n constructor(\n private adapterService: SkyDescriptionListAdapterService,\n private changeDetector: ChangeDetectorRef,\n private descriptionListService: SkyDescriptionListService,\n private mutationSvc: MutationObserverService\n ) { }\n\n public ngAfterContentInit(): void {\n\n // Wait for all content to render before detecting parent width.\n setTimeout(() => {\n this.updateResponsiveClass();\n });\n\n this.contentComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n\n public ngAfterViewInit(): void {\n this.contentObserver = this.mutationSvc.create(() => {\n this.changeDetector.markForCheck();\n });\n this.contentObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.contentObserver.disconnect();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.updateResponsiveClass();\n }\n\n private updateResponsiveClass(): void {\n this.adapterService.setResponsiveClass(this.elementRef);\n this.changeDetector.markForCheck();\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n MutationObserverService\n} from '@skyux/core';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport {\n SkyDescriptionListAdapterService\n} from './description-list-adapter-service';\n\nimport {\n SkyDescriptionListComponent\n} from './description-list.component';\n\nimport {\n SkyDescriptionListContentComponent\n} from './description-list-content.component';\n\nimport {\n SkyDescriptionListTermComponent\n} from './description-list-term.component';\n\nimport {\n SkyDescriptionListDescriptionComponent\n} from './description-list-description.component';\n\n@NgModule({\n declarations: [\n SkyDescriptionListComponent,\n SkyDescriptionListContentComponent,\n SkyDescriptionListTermComponent,\n SkyDescriptionListDescriptionComponent\n ],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyThemeModule\n ],\n exports: [\n SkyDescriptionListComponent,\n SkyDescriptionListContentComponent,\n SkyDescriptionListTermComponent,\n SkyDescriptionListDescriptionComponent\n ],\n providers: [\n MutationObserverService,\n SkyDescriptionListAdapterService\n ]\n})\nexport class SkyDescriptionListModule { }\n","export enum SkyFluidGridGutterSize {\n /**\n * Specifies a small gutter.\n */\n Small,\n /**\n * Specifies a medium gutter.\n */\n Medium,\n /**\n * Specifies a large gutter.\n */\n Large\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Displays a row within the `sky-fluid-grid` wrapper. Previously, you could display a row\n * without a wrapper, but we no longer officially support that option.\n */\n@Component({\n selector: 'sky-row',\n templateUrl: './row.component.html',\n styleUrls: ['./row.component.scss']\n})\nexport class SkyRowComponent {\n /**\n * Indicates whether to reverse the display order for columns in the row.\n * @default false\n */\n @Input()\n public reverseColumnOrder: boolean = false;\n}\n","import {\n Component,\n HostBinding,\n Input,\n OnInit,\n SimpleChanges,\n OnChanges,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'sky-column',\n templateUrl: './column.component.html',\n styleUrls: ['./column.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyColumnComponent implements OnInit, OnChanges {\n\n/**\n * Specifies the number of columns (1-12) to use on extra-small screens\n * (less than 768px). If you do not specify a value, the fluid grid displays\n * the column at the full width of the screen.\n * @default 12\n */\n @Input()\n public screenXSmall: number;\n\n/**\n * Specifies the number of columns (1-12) to use on small screens\n * (768-991px). If you do not specify a value, the column inherits\n * the `screenXSmall` value.\n */\n @Input()\n public screenSmall: number;\n\n/**\n * Specifies the number of columns (1-12) to use on medium screens\n * (992-1199px). If you do not specify a value, the column inherits\n * the `screenSmall` value.\n */\n @Input()\n public screenMedium: number;\n\n/**\n * Specifies the number of columns (1-12) to use on large screens\n * (more than 1200px). If you do not specify a value, the column\n * inherits the `screenMedium` value.\n */\n @Input()\n public screenLarge: number;\n\n @HostBinding('class')\n public classnames: string;\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.screenXSmall || changes.screenSmall || changes.screenMedium || changes.screenLarge) {\n this.classnames = this.getClassNames();\n }\n }\n\n public getClassNames(): string {\n let classnames = [\n 'sky-column'\n ];\n\n if (this.screenXSmall) {\n classnames.push(`sky-column-xs-${this.screenXSmall}`);\n }\n\n if (this.screenSmall) {\n classnames.push(`sky-column-sm-${this.screenSmall}`);\n }\n\n if (this.screenMedium) {\n classnames.push(`sky-column-md-${this.screenMedium}`);\n }\n\n if (this.screenLarge) {\n classnames.push(`sky-column-lg-${this.screenLarge}`);\n }\n\n return classnames.join(' ');\n }\n\n public ngOnInit(): void {\n this.classnames = this.getClassNames();\n }\n}\n","import {\n Component,\n Input\n} from '@angular/core';\n\nimport {\n SkyFluidGridGutterSize\n} from './fluid-grid-gutter-size';\n\n/**\n * Wraps the fluid grid to ensure proper spacing. Without the wrapper, the\n * alignment, padding, and margins do not behave as expected.\n */\n@Component({\n selector: 'sky-fluid-grid',\n templateUrl: './fluid-grid.component.html',\n styleUrls: [\n './fluid-grid.component.scss'\n ]\n})\nexport class SkyFluidGridComponent {\n\n /**\n * Disables the outer left and right margin of the fluid grid container.\n * @default false\n */\n @Input()\n public set disableMargin(value: boolean) {\n this._disableMargin = value;\n }\n\n public get disableMargin(): boolean {\n return this._disableMargin || false;\n }\n\n /**\n * Specifies a `SkyFluidGridGutterSize` enum to define the size of the padding\n * between columns.\n * @default SkyFluidGridGutterSize.Large\n */\n @Input()\n public set gutterSize(value: SkyFluidGridGutterSize) {\n this._gutterSize = value;\n }\n\n public get gutterSize(): SkyFluidGridGutterSize {\n return this._gutterSize === undefined ? SkyFluidGridGutterSize.Large : this._gutterSize;\n }\n\n /**\n * @internal\n * Used for resolution of enum values in the template.\n */\n public gutterSizeTypes = SkyFluidGridGutterSize;\n\n private _disableMargin: boolean;\n\n private _gutterSize: SkyFluidGridGutterSize;\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SkyRowComponent } from './row.component';\nimport { SkyColumnComponent } from './column.component';\nimport { SkyFluidGridComponent } from './fluid-grid.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n SkyRowComponent,\n SkyColumnComponent,\n SkyFluidGridComponent\n ],\n exports: [\n SkyRowComponent,\n SkyColumnComponent,\n SkyFluidGridComponent\n ]\n})\nexport class SkyFluidGridModule { }\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyFormatItem\n} from './format-item';\n\nconst tokenRegex = /(\\{\\d+\\})/;\n\n@Component({\n selector: 'sky-format',\n templateUrl: './format.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyFormatComponent {\n\n public itemsForDisplay: SkyFormatItem[];\n\n /**\n * The tokenized string that represents the template. Tokens use the `{n}` notation\n * where n is the ordinal of the item to replace the token.\n */\n @Input()\n public set text(value: string) {\n this._text = value;\n this.updateItemsForDisplay();\n }\n\n public get text(): string {\n return this._text;\n }\n\n /**\n * An array of `TemplateRef` objects to be placed in the template, where the `nth`\n * item is placed at the `{n}` location in the template.\n */\n @Input()\n public set args(value: TemplateRef<any>[]) {\n this._args = value;\n this.updateItemsForDisplay();\n }\n\n public get args(): TemplateRef<any>[] {\n return this._args;\n }\n\n private _text: string;\n\n private _args: TemplateRef<any>[];\n\n private updateItemsForDisplay(): void {\n this.itemsForDisplay = [];\n\n if (this.text && this.args) {\n const textParts = this.text.split(tokenRegex);\n\n for (const textPart of textParts) {\n // Disregard empty strings.\n if (textPart) {\n const item: SkyFormatItem = {};\n\n if (tokenRegex.test(textPart)) {\n const valueIndex = +textPart.substring(1, textPart.length - 1);\n\n item.templateRef = this.args[valueIndex];\n } else {\n item.text = textPart;\n }\n\n this.itemsForDisplay.push(item);\n }\n }\n }\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyFormatComponent\n} from './format.component';\n\n@NgModule({\n declarations: [\n SkyFormatComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SkyFormatComponent\n ]\n})\nexport class SkyFormatModule { }\n","import {\n Injectable\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageThemeAdapterService {\n\n private styleEl: HTMLStyleElement;\n\n public addTheme(): void {\n if (!this.styleEl) {\n this.styleEl = document.createElement('style');\n this.styleEl.appendChild(document.createTextNode('body { background-color: #fff; }'));\n\n document.head.appendChild(this.styleEl);\n }\n }\n\n public removeTheme(): void {\n if (this.styleEl) {\n document.head.removeChild(this.styleEl);\n this.styleEl = undefined;\n }\n }\n\n}\n","import {\n Component,\n OnDestroy,\n OnInit\n} from '@angular/core';\n\nimport {\n SkyPageThemeAdapterService\n} from './page-theme-adapter.service';\n\n/**\n * Resets the SPA's background to white and adds the `sky-theme-default` CSS class to the host\n * element to let consumers override CSS styling. Consumers can override any element by writing\n * CSS selectors like this: `:host-context(.sky-theme-default) .my-class {}`.\n */\n@Component({\n selector: 'sky-page',\n templateUrl: './page.component.html',\n providers: [SkyPageThemeAdapterService]\n})\nexport class SkyPageComponent implements OnInit, OnDestroy {\n\n constructor(private themeAdapter: SkyPageThemeAdapterService) { }\n\n public ngOnInit(): void {\n this.themeAdapter.addTheme();\n }\n\n public ngOnDestroy(): void {\n this.themeAdapter.removeTheme();\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyPageComponent\n} from './page.component';\n\n@NgModule({\n declarations: [\n SkyPageComponent\n ],\n exports: [\n SkyPageComponent\n ]\n})\nexport class SkyPageModule { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays messages that require immediate attention as [alerts](https://developer.blackbaud.com/skyux-indicators/docs/alert) within\n * the page summary.\n */\n@Component({\n selector: 'sky-page-summary-alert',\n templateUrl: './page-summary-alert.component.html',\n styleUrls: ['./page-summary-alert.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryAlertComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays content in the arbitrary section of the page summary.\n */\n@Component({\n selector: 'sky-page-summary-content',\n templateUrl: './page-summary-content.component.html',\n styleUrls: ['./page-summary-content.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryContentComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays an image in the page summary to identify a record\n * or help users complete a core task.\n */\n@Component({\n selector: 'sky-page-summary-image',\n templateUrl: './page-summary-image.component.html',\n styleUrls: ['./page-summary-image.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryImageComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Highlights important information about a page in the key information section of the\n * page summary.\n */\n@Component({\n selector: 'sky-page-summary-key-info',\n templateUrl: './page-summary-key-info.component.html',\n styleUrls: ['./page-summary-key-info.component.scss']\n})\nexport class SkyPageSummaryKeyInfoComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Displays [labels](https://developer.blackbaud.com/skyux/components/label)\n * to highlight important status information about a page's content.\n */\n@Component({\n selector: 'sky-page-summary-status',\n templateUrl: './page-summary-status.component.html',\n styleUrls: ['./page-summary-status.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryStatusComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a subtitle to identify the page content.\n */\n@Component({\n selector: 'sky-page-summary-subtitle',\n templateUrl: './page-summary-subtitle.component.html',\n styleUrls: ['./page-summary-subtitle.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummarySubtitleComponent { }\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a title to identify the page content.\n */\n@Component({\n selector: 'sky-page-summary-title',\n templateUrl: './page-summary-title.component.html',\n styleUrls: ['./page-summary-title.component.scss']\n})\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyPageSummaryTitleComponent { }\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageSummaryAdapterService {\n public updateKeyInfoLocation(elRef: ElementRef, isXS: boolean) {\n let el = elRef.nativeElement;\n let keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');\n\n if (isXS) {\n el.querySelector('.sky-page-summary-key-info-xs').appendChild(keyInfoContainerEl);\n } else {\n el.querySelector('.sky-page-summary-key-info-sm').appendChild(keyInfoContainerEl);\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n OnDestroy,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService\n} from '@skyux/core';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyPageSummaryAdapterService\n} from './page-summary-adapter.service';\n\nimport {\n SkyPageSummaryKeyInfoComponent\n} from './page-summary-key-info.component';\n\n/**\n * Specifies the components to display in the page summary.\n */\n@Component({\n selector: 'sky-page-summary',\n templateUrl: './page-summary.component.html',\n styleUrls: ['./page-summary.component.scss'],\n providers: [SkyPageSummaryAdapterService]\n})\nexport class SkyPageSummaryComponent implements OnDestroy, AfterViewInit {\n public get hasKeyInfo(): boolean {\n return (this.keyInfoComponents.length > 0);\n }\n\n @ContentChildren(SkyPageSummaryKeyInfoComponent, { read: SkyPageSummaryKeyInfoComponent })\n private keyInfoComponents: QueryList<SkyPageSummaryKeyInfoComponent>;\n\n private breakpointSubscription: Subscription;\n\n constructor(\n private elRef: ElementRef,\n private adapter: SkyPageSummaryAdapterService,\n private mediaQueryService: SkyMediaQueryService\n ) { }\n\n public ngAfterViewInit() {\n this.breakpointSubscription = this.mediaQueryService.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.adapter.updateKeyInfoLocation(this.elRef, args === SkyMediaBreakpoints.xs);\n }\n );\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyMediaQueryModule\n} from '@skyux/core';\n\nimport {\n SkyPageSummaryAlertComponent\n} from './page-summary-alert.component';\n\nimport {\n SkyPageSummaryContentComponent\n} from './page-summary-content.component';\n\nimport {\n SkyPageSummaryImageComponent\n} from './page-summary-image.component';\n\nimport {\n SkyPageSummaryKeyInfoComponent\n} from './page-summary-key-info.component';\n\nimport {\n SkyPageSummaryStatusComponent\n} from './page-summary-status.component';\n\nimport {\n SkyPageSummarySubtitleComponent\n} from './page-summary-subtitle.component';\n\nimport {\n SkyPageSummaryTitleComponent\n} from './page-summary-title.component';\n\nimport {\nSkyPageSummaryComponent\n} from './page-summary.component';\n\n@NgModule({\n declarations: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent\n ],\n imports: [\n CommonModule,\n SkyMediaQueryModule\n ],\n exports: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent\n ]\n})\nexport class SkyPageSummaryModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyTextExpandAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getContainerHeight(containerEl: ElementRef) {\n return containerEl.nativeElement.offsetHeight;\n }\n\n public setContainerHeight(containerEl: ElementRef, height: string) {\n if (height === undefined) {\n this.renderer.removeStyle(containerEl.nativeElement, 'max-height');\n } else {\n this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);\n }\n }\n\n public setText(textEl: ElementRef, text: string) {\n textEl.nativeElement.textContent = text;\n }\n}\n","/**\n * @internal\n */\nexport class SkyTextExpandModalContext {\n public header: string;\n public text: string;\n}\n","import {\n Component\n} from '@angular/core';\n\nimport {\n SkyModalInstance\n} from '@skyux/modals';\n\nimport {\n SkyTextExpandModalContext\n} from './text-expand-modal-context';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-expand-modal',\n templateUrl: './text-expand-modal.component.html',\n styleUrls: ['./text-expand.component.scss']\n})\nexport class SkyTextExpandModalComponent {\n\n constructor(\n public context: SkyTextExpandModalContext,\n public instance: SkyModalInstance\n ) { }\n\n public close(): void {\n this.instance.close();\n }\n\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n SkyModalService\n} from '@skyux/modals';\n\nimport {\n forkJoin as observableForkJoin\n} from 'rxjs';\n\nimport {\n take\n} from 'rxjs/operators';\n\nimport {\n SkyTextExpandAdapterService\n} from './text-expand-adapter.service';\n\nimport {\n SkyTextExpandModalComponent\n} from './text-expand-modal.component';\n\nimport {\n SkyTextExpandModalContext\n} from './text-expand-modal-context';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand',\n templateUrl: './text-expand.component.html',\n styleUrls: ['./text-expand.component.scss'],\n providers: [\n SkyTextExpandAdapterService\n ]\n})\nexport class SkyTextExpandComponent implements AfterContentInit {\n\n /**\n * Specifies a title to display when the component expands the full text in a modal.\n * @default 'Expanded view'\n */\n @Input()\n public expandModalTitle: string;\n\n /**\n * Specifies the maximum number of text characters to display inline when users select the link\n * to expand the full text. If the text exceeds this limit, then the component expands\n * the full text in a modal instead.\n */\n @Input()\n public maxExpandedLength: number = 600;\n\n /**\n * Specifies the maximum number of newline characters to display inline when users select\n * the link to expand the full text. If the text exceeds this limit, then\n * the component expands the full text in a modal view instead.\n */\n @Input()\n public maxExpandedNewlines: number = 2;\n\n /**\n * Specifies the number of text characters to display before truncating the text.\n * To avoid truncating text in the middle of a word, the component looks for a space\n * in the 10 characters before the last character.\n * @default 200\n */\n @Input()\n public set maxLength(value: number) {\n this._maxLength = value;\n\n /** istanbul ignore else */\n if (this.textEl) {\n this.setup(this.expandedText);\n }\n }\n\n public get maxLength(): number {\n return this._maxLength;\n }\n\n /**\n * Specifies the text to truncate.\n */\n @Input()\n public set text(value: string) {\n /** istanbul ignore else */\n if (this.textEl) {\n this.setup(value);\n }\n }\n\n /**\n * Indicates whether to replace newline characters in truncated text with spaces.\n */\n @Input()\n public truncateNewlines: boolean = true;\n\n public buttonText: string;\n\n public contentSectionId: string = `sky-text-expand-content-${++nextId}`;\n\n public expandable: boolean;\n\n public isExpanded: boolean = false;\n\n public isModal: boolean;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true\n })\n private containerEl: ElementRef;\n\n @ViewChild('text', {\n read: ElementRef,\n static: true\n })\n private textEl: ElementRef;\n\n private collapsedText: string;\n\n private expandedText: string;\n\n private newlineCount: number;\n\n private seeMoreText: string;\n\n private seeLessText: string;\n\n private textToShow: string;\n\n private _maxLength: number = 200;\n\n constructor(\n private resources: SkyLibResourcesService,\n private modalService: SkyModalService,\n private textExpandAdapter: SkyTextExpandAdapterService\n ) { }\n\n public textExpand(): void {\n if (this.isModal) {\n // Modal View\n /* istanbul ignore else */\n /* sanity check */\n if (!this.isExpanded) {\n this.modalService.open(\n SkyTextExpandModalComponent,\n [\n {\n provide: SkyTextExpandModalContext,\n useValue: {\n header: this.expandModalTitle,\n text: this.expandedText\n }\n }\n ]\n );\n }\n } else {\n // Normal View\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this\n .animateText(this.collapsedText, this.expandedText, true);\n }, 10);\n\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this\n .animateText(this.expandedText, this.collapsedText, false);\n }, 10);\n }\n }\n }\n\n public animationEnd(): void {\n // Ensure the correct text is displayed\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public ngAfterContentInit(): void {\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less')\n ])\n .pipe(take(1))\n .subscribe(resources => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n this.setup(this.expandedText);\n\n if (!this.expandModalTitle) {\n this.resources.getString('skyux_text_expand_modal_title')\n .pipe(take(1))\n .subscribe(resource => {\n this.expandModalTitle = resource;\n });\n }\n });\n }\n\n private setContainerMaxHeight(): void {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);\n this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);\n }\n\n private setup(value: string): void {\n if (value) {\n this.newlineCount = this.getNewlineCount(value);\n this.collapsedText = this.getTruncatedText(value, this.maxLength);\n this.expandedText = value;\n if (this.collapsedText !== value) {\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n this.expandable = true;\n this.isModal = this.newlineCount > this.maxExpandedNewlines\n || this.expandedText.length > this.maxExpandedLength;\n } else {\n this.expandable = false;\n }\n this.textToShow = this.collapsedText;\n } else {\n this.textToShow = '';\n this.expandable = false;\n }\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n }\n\n private getNewlineCount(value: string): number {\n let matches = value.match(/\\n/gi);\n\n if (matches) {\n return matches.length;\n }\n\n return 0;\n }\n\n private getTruncatedText(value: string, length: number): string {\n let i: number;\n if (this.truncateNewlines) {\n value = value.replace(/\\n+/gi, ' ');\n }\n // Jump ahead one character and see if it's a space, and if it isn't,\n // back up to the first space and break there so a word doesn't get cut\n // in half.\n if (length < value.length) {\n for (i = length; i > length - 10; i--) {\n if (/\\s/.test(value.charAt(i))) {\n length = i;\n break;\n }\n }\n }\n return value.substr(0, length);\n }\n\n private animateText(previousText: string, newText: string, expanding: boolean): void {\n\n let adapter = this.textExpandAdapter;\n let container = this.containerEl;\n // Reset max height\n adapter.setContainerHeight(container, undefined);\n // Measure the current height so we can animate from it.\n let currentHeight = adapter.getContainerHeight(container);\n this.textToShow = newText;\n adapter.setText(this.textEl, this.textToShow);\n this.buttonText = expanding ? this.seeLessText : this.seeMoreText;\n // Measure the new height so we can animate to it.\n let newHeight = adapter.getContainerHeight(container);\n /* istanbul ignore if */\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n adapter.setText(this.textEl, previousText);\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyModalModule\n} from '@skyux/modals';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyTextExpandComponent } from './text-expand.component';\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\n\n@NgModule({\n declarations: [\n SkyTextExpandComponent,\n SkyTextExpandModalComponent\n ],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyModalModule,\n CommonModule\n ],\n exports: [\n SkyTextExpandComponent\n ],\n entryComponents: [\n SkyTextExpandModalComponent\n ]\n})\nexport class SkyTextExpandModule { }\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyTextExpandRepeaterAdapterService {\n\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public getItems(elRef: ElementRef) {\n return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');\n }\n\n public hideItem(item: HTMLElement) {\n this.renderer.setStyle(item, 'display', 'none');\n }\n\n public showItem(item: HTMLElement) {\n this.renderer.setStyle(item, 'display', 'list-item');\n }\n\n public getContainerHeight(containerEl: ElementRef) {\n return containerEl.nativeElement.offsetHeight;\n }\n\n public setContainerHeight(containerEl: ElementRef, height: string) {\n if (height === undefined) {\n this.renderer.removeStyle(containerEl.nativeElement, 'max-height');\n } else {\n this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n forkJoin as observableForkJoin\n} from 'rxjs';\n\nimport {\n take\n} from 'rxjs/operators';\n\nimport {\n SkyTextExpandRepeaterAdapterService\n} from './text-expand-repeater-adapter.service';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand repeater components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand-repeater',\n templateUrl: './text-expand-repeater.component.html',\n styleUrls: ['./text-expand-repeater.component.scss'],\n providers: [\n SkyTextExpandRepeaterAdapterService\n ]\n})\nexport class SkyTextExpandRepeaterComponent implements AfterViewInit, OnChanges {\n\n /**\n * Specifies the data to truncate.\n */\n @Input()\n public data: any[];\n\n /**\n * Specifies a template for items in the list.\n */\n @Input()\n public itemTemplate: TemplateRef<any>;\n\n /**\n * Specifies the number of items to display before truncating the list.\n */\n @Input()\n public maxItems: number;\n\n public buttonText: string;\n public contentItems: Array<any>;\n public expandable: boolean;\n public contentSectionId: string = `sky-text-expand-repeater-content-${++nextId}`;\n\n public isExpanded: boolean = false;\n\n private seeMoreText: string;\n private seeLessText: string;\n\n @ViewChild('container', {\n read: ElementRef,\n static: false\n })\n private containerEl: ElementRef;\n\n private items: Array<HTMLElement>;\n\n constructor(\n private resources: SkyLibResourcesService,\n private elRef: ElementRef,\n private textExpandRepeaterAdapter: SkyTextExpandRepeaterAdapterService,\n private changeDetector: ChangeDetectorRef\n ) { }\n\n public ngAfterViewInit() {\n if (this.contentItems) {\n this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less')\n ])\n .pipe(take(1))\n .subscribe(resources => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n /* sanity check */\n /* istanbul ignore else */\n if (!this.isExpanded) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.maxItems || changes.data) {\n this.setup(this.data);\n }\n }\n\n public animationEnd() {\n // Ensure the correct items are displayed\n if (!this.isExpanded) {\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public repeaterExpand() {\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateRepeater(true);\n });\n\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateRepeater(false);\n });\n\n }\n }\n\n private setContainerMaxHeight() {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);\n this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);\n }\n\n private animateRepeater(expanding: boolean) {\n let adapter = this.textExpandRepeaterAdapter;\n let container = this.containerEl;\n\n adapter.setContainerHeight(container, undefined);\n let currentHeight = adapter.getContainerHeight(container);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n if (!expanding) {\n adapter.hideItem(this.items[i]);\n } else {\n adapter.showItem(this.items[i]);\n }\n }\n let newHeight = adapter.getContainerHeight(container);\n if (!expanding) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n adapter.showItem(this.items[i]);\n }\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n\n private setup(value: Array<any>) {\n if (value) {\n let length = value.length;\n if (length > this.maxItems) {\n this.expandable = true;\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n } else {\n this.expandable = false;\n }\n this.contentItems = value;\n } else {\n this.contentItems = undefined;\n this.expandable = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport {\n SkyLayoutResourcesModule\n} from '../shared/layout-resources.module';\n\nimport { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';\n\n@NgModule({\n declarations: [\n SkyTextExpandRepeaterComponent\n ],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n CommonModule\n ],\n exports: [\n SkyTextExpandRepeaterComponent\n ]\n})\nexport class SkyTextExpandRepeaterModule { }\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a section to group items within the toolbar. The section displays items in a separate horizontal row.\n */\n@Component({\n selector: 'sky-toolbar-section',\n styleUrls: ['./toolbar-section.component.scss'],\n templateUrl: './toolbar-section.component.html'\n})\nexport class SkyToolbarSectionComponent {\n\n}\n","import {\n Component,\n AfterContentInit,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport {\n SkyToolbarSectionComponent\n} from './toolbar-section.component';\n\n/**\n * Displays actions for lists, records, and tiles.\n */\n@Component({\n selector: 'sky-toolbar',\n styleUrls: ['./toolbar.component.scss'],\n templateUrl: './toolbar.component.html'\n})\nexport class SkyToolbarComponent implements AfterContentInit {\n\n public hasSections: boolean = false;\n\n @ContentChildren(SkyToolbarSectionComponent, {descendants: true})\n private sectionComponents: QueryList<SkyToolbarSectionComponent>;\n\n public ngAfterContentInit() {\n this.hasSections = this.sectionComponents.length > 0;\n }\n}\n","import {\n Component\n} from '@angular/core';\n\n/**\n * Specifies a container for an item in the toolbar.\n */\n@Component({\n selector: 'sky-toolbar-item',\n styleUrls: ['./toolbar-item.component.scss'],\n templateUrl: './toolbar-item.component.html'\n})\nexport class SkyToolbarItemComponent {\n\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from '@angular/core';\n\n/**\n * Adds a section on the right side of the toolbar for items that substantially alter\n * the view of the content container. This includes simple filters and view switchers.\n */\n@Component({\n selector: 'sky-toolbar-view-actions',\n templateUrl: './toolbar-view-actions.component.html',\n styleUrls: ['./toolbar-view-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyToolbarViewActionsComponent { }\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyToolbarComponent\n} from './toolbar.component';\n\nimport {\n SkyToolbarItemComponent\n} from './toolbar-item.component';\n\nimport {\n SkyToolbarSectionComponent\n} from './toolbar-section.component';\n\nimport {\n SkyToolbarViewActionsComponent\n} from './toolbar-view-actions.component';\n\n@NgModule({\n declarations: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent\n ]\n})\nexport class SkyToolbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {SkyActionButtonAdapterService as ɵc} from './modules/action-button/action-button-adapter-service';\nexport {SkyActionButtonContainerComponent as ɵb} from './modules/action-button/action-button-container.component';\nexport {SkyActionButtonDetailsComponent as ɵd} from './modules/action-button/action-button-details.component';\nexport {SkyActionButtonHeaderComponent as ɵe} from './modules/action-button/action-button-header.component';\nexport {SkyActionButtonIconComponent as ɵf} from './modules/action-button/action-button-icon.component';\nexport {SkyActionButtonComponent as ɵa} from './modules/action-button/action-button.component';\nexport {SkyBackToTopDomAdapterService as ɵi} from './modules/back-to-top/back-to-top-adapter.service';\nexport {SkyBackToTopComponent as ɵg} from './modules/back-to-top/back-to-top.component';\nexport {SkyBackToTopDirective as ɵh} from './modules/back-to-top/back-to-top.directive';\nexport {SkyCardActionsComponent as ɵl} from './modules/card/card-actions.component';\nexport {SkyCardContentComponent as ɵq} from './modules/card/card-content.component';\nexport {SkyCardTitleComponent as ɵp} from './modules/card/card-title.component';\nexport {SkyCardComponent as ɵm} from './modules/card/card.component';\nexport {SkyDefinitionListContentComponent as ɵt} from './modules/definition-list/definition-list-content.component';\nexport {SkyDefinitionListHeadingComponent as ɵu} from './modules/definition-list/definition-list-heading.component';\nexport {SkyDefinitionListLabelComponent as ɵv} from './modules/definition-list/definition-list-label.component';\nexport {SkyDefinitionListValueComponent as ɵw} from './modules/definition-list/definition-list-value.component';\nexport {SkyDefinitionListComponent as ɵr} from './modules/definition-list/definition-list.component';\nexport {SkyDefinitionListService as ɵs} from './modules/definition-list/definition-list.service';\nexport {SkyDescriptionListAdapterService as ɵbc} from './modules/description-list/description-list-adapter-service';\nexport {SkyDescriptionListContentComponent as ɵz} from './modules/description-list/description-list-content.component';\nexport {SkyDescriptionListDescriptionComponent as ɵbb} from './modules/description-list/description-list-description.component';\nexport {SkyDescriptionListTermComponent as ɵba} from './modules/description-list/description-list-term.component';\nexport {SkyDescriptionListComponent as ɵx} from './modules/description-list/description-list.component';\nexport {SkyDescriptionListService as ɵy} from './modules/description-list/description-list.service';\nexport {SkyColumnComponent as ɵbe} from './modules/fluid-grid/column.component';\nexport {SkyFluidGridComponent as ɵbf} from './modules/fluid-grid/fluid-grid.component';\nexport {SkyRowComponent as ɵbd} from './modules/fluid-grid/row.component';\nexport {SkyFormatComponent as ɵbg} from './modules/format/format.component';\nexport {SkyInlineDeleteAdapterService as ɵo} from './modules/inline-delete/inline-delete-adapter.service';\nexport {SkyInlineDeleteComponent as ɵn} from './modules/inline-delete/inline-delete.component';\nexport {SkyPageSummaryAdapterService as ɵbl} from './modules/page-summary/page-summary-adapter.service';\nexport {SkyPageSummaryAlertComponent as ɵbj} from './modules/page-summary/page-summary-alert.component';\nexport {SkyPageSummaryContentComponent as ɵbn} from './modules/page-summary/page-summary-content.component';\nexport {SkyPageSummaryImageComponent as ɵbo} from './modules/page-summary/page-summary-image.component';\nexport {SkyPageSummaryKeyInfoComponent as ɵbm} from './modules/page-summary/page-summary-key-info.component';\nexport {SkyPageSummaryStatusComponent as ɵbp} from './modules/page-summary/page-summary-status.component';\nexport {SkyPageSummarySubtitleComponent as ɵbq} from './modules/page-summary/page-summary-subtitle.component';\nexport {SkyPageSummaryTitleComponent as ɵbr} from './modules/page-summary/page-summary-title.component';\nexport {SkyPageSummaryComponent as ɵbk} from './modules/page-summary/page-summary.component';\nexport {SkyPageThemeAdapterService as ɵbi} from './modules/page/page-theme-adapter.service';\nexport {SkyPageComponent as ɵbh} from './modules/page/page.component';\nexport {SkyLayoutResourcesModule as ɵj} from './modules/shared/layout-resources.module';\nexport {SkyTextExpandRepeaterAdapterService as ɵbx} from './modules/text-expand-repeater/text-expand-repeater-adapter.service';\nexport {SkyTextExpandRepeaterComponent as ɵbw} from './modules/text-expand-repeater/text-expand-repeater.component';\nexport {SkyTextExpandAdapterService as ɵbt} from './modules/text-expand/text-expand-adapter.service';\nexport {SkyTextExpandModalContext as ɵbv} from './modules/text-expand/text-expand-modal-context';\nexport {SkyTextExpandModalComponent as ɵbu} from './modules/text-expand/text-expand-modal.component';\nexport {SkyTextExpandComponent as ɵbs} from './modules/text-expand/text-expand.component';\nexport {SkyToolbarItemComponent as ɵca} from './modules/toolbar/toolbar-item.component';\nexport {SkyToolbarSectionComponent as ɵbz} from './modules/toolbar/toolbar-section.component';\nexport {SkyToolbarViewActionsComponent as ɵcb} from './modules/toolbar/toolbar-view-actions.component';\nexport {SkyToolbarComponent as ɵby} from './modules/toolbar/toolbar.component';\nexport {SkyLayoutResourcesProvider as ɵk} from './plugin-resources/layout-resources-provider';"],"names":["nextId","observableForkJoin"],"mappings":"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"}
|