@skyux/tiles 13.7.2 → 13.8.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-tiles.mjs","sources":["../tmp-esm2022/lib/modules/tiles/tile/tile-summary.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title-id-token.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title.component.js","../tmp-esm2022/lib/modules/shared/sky-tiles-resources.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js","../tmp-esm2022/lib/modules/tiles/tile/tile.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile.module.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content-section.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js","../tmp-esm2022/lib/modules/tiles/tiles.module.js","../tmp-esm2022/skyux-tiles.js"],"sourcesContent":["import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's summary.\n */\nexport class SkyTileSummaryComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileSummaryComponent, isStandalone: true, selector: \"sky-tile-summary\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-summary', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlL3RpbGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDRFQ1RwQyxrQkFDQTs7MkZEUWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyBzdW1tYXJ5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICd0aWxlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const SKY_TILE_TITLE_ID = new InjectionToken('SKY_TILE_TITLE_ID');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS1pZC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXRpdGxlLWlkLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELG1CQUFtQixDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNLWV9USUxFX1RJVExFX0lEID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdTS1lfVElMRV9USVRMRV9JRCcsXG4pO1xuIl19","import { Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies content to display in the tile's title.\n */\nexport class SkyTileTitleComponent {\n constructor() {\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileTitleComponent, isStandalone: true, selector: \"sky-tile-title\", ngImport: i0, template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyTrimModule }, { kind: \"directive\", type: i1.λ4, selector: \"[skyTrim]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileTitleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-title', imports: [SkyTrimModule], template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFMUQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBT3FCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDNUQ7OEdBRlkscUJBQXFCO2tHQUFyQixxQkFBcUIsMEVDZGxDLDZPQU1BLDhGRE1ZLGFBQWE7OzJGQUVaLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxnQkFBZ0IsV0FHakIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VHJpbU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU0tZX1RJTEVfVElUTEVfSUQgfSBmcm9tICcuL3RpbGUtdGl0bGUtaWQtdG9rZW4nO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyB0aXRsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtdGl0bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1NreVRyaW1Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlVGl0bGVDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGlsZVRpdGxlSWQgPSBpbmplY3QoU0tZX1RJTEVfVElUTEVfSUQpO1xufVxuIiwiPGgyIGNsYXNzPVwic2t5LXRpbGUtdGl0bGUgc2t5LWZvbnQtaGVhZGluZy0yXCI+XG4gIDxzcGFuIHNreVRyaW0gW2lkXT1cInRpbGVUaXRsZUlkXCI+PG5nLWNvbnRlbnQgLz48L3NwYW5cbiAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgID48bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiPjwvbmctY29udGVudFxuICA+PC9zcGFuPlxuPC9oMj5cbiJdfQ==","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tiles' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\n 'EN-US': {\n skyux_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message: \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message: 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\n },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyTilesResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7UUFDeEQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDNUQsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ2hELDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUNwRCxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3hDLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUM1Qyw0QkFBNEIsRUFBRTtZQUM1QixPQUFPLEVBQ0wseUxBQXlMO1NBQzVMO1FBQ0QsK0JBQStCLEVBQUU7WUFDL0IsT0FBTyxFQUNMLCtFQUErRTtTQUNsRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7UUFDekQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDN0QsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbEQsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ3RELGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7UUFDNUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ2hELDRCQUE0QixFQUFFO1lBQzVCLE9BQU8sRUFDTCwwUUFBMFE7U0FDN1E7UUFDRCwrQkFBK0IsRUFBRTtZQUMvQixPQUFPLEVBQ0wsK0ZBQStGO1NBQ2xHO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsWUFGeEIsYUFBYTsrR0FFWix1QkFBdUIsWUFGeEIsYUFBYTs7MkZBRVosdUJBQXVCO2tCQUhuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IFJlY29yZDxzdHJpbmcsIFNreUxpYlJlc291cmNlcz4gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnRXhwYW5kIG9yIGNvbGxhcHNlIHswfScgfSxcbiAgICBza3l1eF90aWxlX2V4cGFuZF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdFeHBhbmQgb3IgY29sbGFwc2UnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwOiB7IG1lc3NhZ2U6ICd7MH0gaGVscCcgfSxcbiAgICBza3l1eF90aWxlX2hlbHBfZGVmYXVsdDogeyBtZXNzYWdlOiAnSGVscCcgfSxcbiAgICBza3l1eF90aWxlX3NldHRpbmdzOiB7IG1lc3NhZ2U6ICd7MH0gc2V0dGluZ3MnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0OiB7IG1lc3NhZ2U6ICdTZXR0aW5ncycgfSxcbiAgICBza3l1eF90aWxlX21vdmU6IHsgbWVzc2FnZTogJ01vdmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdNb3ZlJyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIFwiV2hlbiBmb2N1cyBpcyBwbGFjZWQgb24gYSB0aWxlJ3MgbW92ZSBidXR0b24sIHVzZSB0aGUgYXJyb3cga2V5cyB0byBtb3ZlIGl0LiBUaGUgdXAgYW5kIGRvd24ga2V5cyBjaGFuZ2UgaXRzIHBvc2l0aW9uIHdpdGhpbiBhIGNvbHVtbi4gVGhlIGxlZnQgYW5kIHJpZ2h0IGtleXMgbW92ZSBpdCBiZXR3ZWVuIGNvbHVtbnMuXCIsXG4gICAgfSxcbiAgICBza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0OiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnezB9IG1vdmVkLiBDdXJyZW50IGNvbHVtbjogezF9IG9mIHsyfS4gQ3VycmVudCBwb3NpdGlvbiBpbiBjb2x1bW46IHszfSBvZiB7NH0nLFxuICAgIH0sXG4gIH0sXG4gICdGUi1DQSc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnQWdyYW5kaXIgb3UgcsOpZHVpcmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FncmFuZGlyIG91IHLDqWR1aXJlJyB9LFxuICAgIHNreXV4X3RpbGVfaGVscDogeyBtZXNzYWdlOiAnezB9IGFpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nczogeyBtZXNzYWdlOiAnezB9IHBhcmFtw6h0cmVzJyB9LFxuICAgIHNreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdDogeyBtZXNzYWdlOiAnUGFyYW3DqHRyZXMnIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlOiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXIgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXInIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9uczoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0xvcnNxdWUgbGUgY3Vyc2V1ciBlc3QgcGxhY8OpIHN1ciBsZSBib3V0b24gZMOpcGxhY2VyIGTigJl1bmUgbW9zYcOvcXVlLCB1dGlsaXNleiBsZXMgdG91Y2hlcyBmbMOpY2jDqWVzIHBvdXIgbGEgZMOpcGxhY2VyLiBMZXMgZmzDqGNoZXMgdmVycyBsZSBoYXV0IGV0IHZlcnMgbGUgYmFzIG1vZGlmaWUgbGEgcG9zaXRpb24gZGFucyB1bmUgY29sb25uZS4gTGVzIGZsw6hjaGVzIGRlIGdhdWNoZSBldCBkZSBkcm9pdGUgbGEgZMOpcGxhY2UgZOKAmXVuZSBjb2xvbm5lIMOgIGzigJlhdXRyZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ3swfcKgZMOpcGxhY8OpKGUpLiBDb2xvbm5lIGFjdHVlbGxlwqA6IHsxfSBkZSB7Mn0uIFBvc2l0aW9uIGFjdHVlbGxlIGRhbnMgbGEgY29sb25uZcKgOiB7M30gZGUgezR9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==","import { DestroyRef, EventEmitter, Injectable, Output, RendererFactory2, computed, effect, inject, } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyDynamicComponentService, SkyMediaQueryService, SkyUIConfigService, } from '@skyux/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { take } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\nlet bagIdIndex = 0;\nexport class SkyTileDashboardService {\n #columns;\n #config;\n #singleColumn;\n #settingsKey;\n #tileComponents;\n #breakpoint;\n #destroyRef;\n #dragulaService;\n #dynamicComponentService;\n #renderer;\n #uiConfigService;\n #mode;\n constructor() {\n /**\n * @internal\n */\n this.configChange = new EventEmitter();\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n this.dashboardInitialized = new EventEmitter();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#destroyRef = inject(DestroyRef);\n this.#dragulaService = inject(DragulaService);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#renderer = inject(RendererFactory2).createRenderer(undefined, null);\n this.#uiConfigService = inject(SkyUIConfigService);\n this.#mode = computed(() => {\n const breakpoint = this.#breakpoint();\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n }, ...(ngDevMode ? [{ debugName: \"#mode\" }] : []));\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n this.#initDragula();\n }\n /**\n * @internal\n */\n init(config, columns, singleColumn, settingsKey) {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config);\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) => column.tiles.map(({ id }) => id)),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n }\n else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n addTileComponent(tile, component) {\n this.#tileComponents = this.#tileComponents || [];\n this.#tileComponents.push(component);\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n tileIsCollapsed(tile) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n return false;\n }\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n setAllTilesCollapsed(isCollapsed) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n setTileCollapsed(tile, isCollapsed) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n }\n /**\n * @internal\n */\n getTileComponentType(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n return undefined;\n }\n /**\n * @internal\n */\n changeColumnMode(mode) {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n }\n else {\n this.#moveTilesToMultiColumn();\n }\n }\n }\n /**\n * @internal\n */\n getTileComponent(tileId) {\n return this.#tileComponents?.find((tileComponent) => tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId);\n }\n /**\n * @internal\n */\n moveTileOnKeyDown(tileCmp, direction, tileDescription) {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n let column;\n let colIndex = 0;\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n }\n else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(this.#config.layout.multiColumn, tileId);\n column = this.#config.layout.multiColumn[colIndex];\n }\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, this.#config.layout.multiColumn);\n }\n }\n else {\n // Get the column element\n let columnEl;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n }\n else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl);\n }\n }\n }\n }\n #moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, multiColumn) {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + operator + 1, newColumn.tiles.length);\n }\n }\n #moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl) {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n else {\n this.#renderer.insertBefore(columnEl, tileComponentInstance.location.nativeElement, this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement);\n }\n }\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + 1, curIndex + operator + 1);\n }\n }\n #emitTileMove(tileDescription, tile, newColumnIndex, newRowIndex) {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n #getTileDescription(tileDescription, tile) {\n return tileDescription || tile.id;\n }\n #getTileId(tile) {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId;\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n if (tileId) {\n return tileId;\n }\n el = el.parentElement;\n }\n }\n return undefined;\n }\n #getTileOrRemoveFromLayout(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter((elem) => elem.id !== layoutTile.id);\n }\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n return undefined;\n }\n #checkReadyAndLoadTiles(columns, singleColumn) {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.dashboardInitialized.emit();\n }\n }\n #loadTiles(config, columns) {\n const layout = config.layout;\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n }\n else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n #loadTileIntoColumn(column, layoutTile) {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n const componentRef = this.#dynamicComponentService.createComponent(componentType, {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n });\n this.addTileComponent(layoutTile, componentRef);\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n #moveTilesToSingleColumn() {\n this.#moveTilesToColumn(this.#singleColumn, this.#config?.layout.singleColumn.tiles);\n }\n #moveTilesToMultiColumn() {\n let layoutColumns = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns = this.#columns?.toArray() ?? [];\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n #moveTilesToColumn(column, layoutTiles) {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n }\n }\n }\n #getConfigForUIState() {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n return this.#config;\n }\n #getSingleColumnLayoutForUIState(config) {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n return config.layout.singleColumn;\n }\n #getMultiColumnLayoutForUIState(config) {\n if (this.#mode() === 'multi') {\n const layoutColumns = [];\n let columns = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n layoutColumns.push(layoutColumn);\n }\n }\n return layoutColumns;\n }\n return config.layout.multiColumn;\n }\n #getTilesInEl(el) {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles = [];\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n return layoutTiles;\n }\n #initDragula() {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle);\n },\n });\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n const config = this.#getConfigForUIState();\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n this.configChange.emit(config);\n }\n });\n }\n #getColumnEl(column) {\n return column?.content?.element.nativeElement.parentNode;\n }\n #findTile(tileId) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n return undefined;\n }\n #findTileColumnIndex(multiColumn, tileId) {\n return multiColumn.findIndex((col) => !!col.tiles?.find((tile) => tile.id === tileId));\n }\n #setUserConfig(config) {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n #checkForNewTiles(config, oldTileIds) {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n const multiColumn = config.layout.multiColumn;\n const singleColumn = config.layout.singleColumn;\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) => column.tiles.map((tile) => tile.id));\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !multiColumnTileIds.includes(tile.id)),\n ]),\n ];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(...multiColumn.map((col) => col.tiles.length));\n const locationToAdd = multiColumn.findIndex((col) => col.tiles.length === smallest);\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !singleColumnTileIds.includes(tile.id)),\n ]),\n ];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n return hasChange;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [], propDecorators: { dashboardInitialized: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVd0QyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQztBQUVuRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFHbkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsUUFBUSxDQUF5RDtJQUNqRSxPQUFPLENBQXFDO0lBQzVDLGFBQWEsQ0FBOEM7SUFDM0QsWUFBWSxDQUFxQjtJQUNqQyxlQUFlLENBQWtDO0lBRXhDLFdBQVcsQ0FFbEI7SUFFTyxXQUFXLENBQXNCO0lBQ2pDLGVBQWUsQ0FBMEI7SUFDekMsd0JBQXdCLENBQXNDO0lBQzlELFNBQVMsQ0FBNEQ7SUFDckUsZ0JBQWdCLENBQThCO0lBRTlDLEtBQUssQ0FJWDtJQUVIO1FBakNBOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVqRTs7V0FFRztRQUVJ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TyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDNUIsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQTF0QlUsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7d0RBZ0JGLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RhYmxlLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVVJQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy1sYXlvdXQtY29sdW1uJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy1sYXlvdXQtdGlsZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnVGlsZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWctdGlsZSc7XG5pbXBvcnQgeyBTa3lUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS90aWxlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Nb2RlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1jb2x1bW4tbW9kZSc7XG5cbmNvbnN0IEFUVFJfVElMRV9JRCA9ICdfc2t5LXRpbGUtZGFzaGJvYXJkLXRpbGUtaWQnO1xuXG5sZXQgYmFnSWRJbmRleCA9IDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBjb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRpbGVEYXNoYm9hcmRDb25maWc+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUgZGFzaGJvYXJkJ3MgaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGRhc2hib2FyZEluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICNjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gICNjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQ7XG4gICNzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICNzZXR0aW5nc0tleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjdGlsZUNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxhbnk+W10gfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2JyZWFrcG9pbnQgPSB0b1NpZ25hbChcbiAgICBpbmplY3QoU2t5TWVkaWFRdWVyeVNlcnZpY2UpLmJyZWFrcG9pbnRDaGFuZ2UsXG4gICk7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNkcmFndWxhU2VydmljZSA9IGluamVjdChEcmFndWxhU2VydmljZSk7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICByZWFkb25seSAjdWlDb25maWdTZXJ2aWNlID0gaW5qZWN0KFNreVVJQ29uZmlnU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgI21vZGUgPSBjb21wdXRlZDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kZT4oKCkgPT4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICByZXR1cm4gYnJlYWtwb2ludCA9PT0gJ3hzJyB8fCBicmVha3BvaW50ID09PSAnc20nID8gJ3NpbmdsZScgOiAnbXVsdGknO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuI21vZGUoKTtcbiAgICAgIHRoaXMuY2hhbmdlQ29sdW1uTW9kZShtb2RlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYmFnSWQgPSBgc2t5LXRpbGUtZGFzaGJvYXJkLWJhZy0keysrYmFnSWRJbmRleH1gO1xuXG4gICAgdGhpcy4jaW5pdERyYWd1bGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBpbml0KFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBjb2x1bW5zPzogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+LFxuICAgIHNpbmdsZUNvbHVtbj86IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc2V0dGluZ3NLZXk/OiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIC8vIENsb25lIHRoaXMgc28gY2hhbmdlcyB0byB0aGUgY29uZmlnIG9iamVjdCBvdXRzaWRlIG9mIHRoaXMgY2xhc3MgZG9uJ3QgbW9kaWZ5XG4gICAgLy8gdGhlIGNvbmZpZyB1c2VkIGluc2lkZSBhbmQgdmljZSB2ZXJzYS5cbiAgICB0aGlzLiNjb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBjb25maWcpIGFzIFNreVRpbGVEYXNoYm9hcmRDb25maWc7XG5cbiAgICAvLyBWZXJpZnkgdGhhdCBhbGwgdGlsZXMgYXJlIGFjY291bnRlZCBmb3IgaW4gdGhlIGxheW91dC5cbiAgICBjb25zdCB0aWxlSWRzID0gW1xuICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgIC4uLnRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4uZmxhdE1hcCgoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi50aWxlcy5tYXAoKHsgaWQgfSkgPT4gaWQpLFxuICAgICAgICApLFxuICAgICAgICAuLi50aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcy5tYXAoKHsgaWQgfSkgPT4gaWQpLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLiNjaGVja0Zvck5ld1RpbGVzKHRoaXMuI2NvbmZpZywgdGlsZUlkcyk7XG5cbiAgICBpZiAoc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuI3NldHRpbmdzS2V5ID0gc2V0dGluZ3NLZXk7XG5cbiAgICAgIHRoaXMuI3VpQ29uZmlnU2VydmljZVxuICAgICAgICAuZ2V0Q29uZmlnKHNldHRpbmdzS2V5LCB0aGlzLiNjb25maWcpXG4gICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNjb25maWcgJiYgdmFsdWUucGVyc2lzdGVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2NvbmZpZy5sYXlvdXQgPSB2YWx1ZS5sYXlvdXQ7XG4gICAgICAgICAgICAgIHRoaXMuI2NoZWNrRm9yTmV3VGlsZXModGhpcy4jY29uZmlnLCB2YWx1ZS50aWxlSWRzKTtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdCh0aGlzLiNjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy4jY2hlY2tSZWFkeUFuZExvYWRUaWxlcyhjb2x1bW5zLCBzaW5nbGVDb2x1bW4pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIC8vIENvbmZpZyBzZXR0aW5nIGtleSBkb2Vzbid0IGV4aXN0IG9yIG90aGVyIGNvbmZpZyBzZXJ2aWNlIGVycm9yXG4gICAgICAgICAgICB0aGlzLiNjaGVja1JlYWR5QW5kTG9hZFRpbGVzKGNvbHVtbnMsIHNpbmdsZUNvbHVtbik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2NoZWNrUmVhZHlBbmRMb2FkVGlsZXMoY29sdW1ucywgc2luZ2xlQ29sdW1uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyB0aWxlIHRvIHRoZSB0aWxlIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIHRpbGUgU3BlY2lmaWVzIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBjb21wb25lbnQgU3BlY2lmaWVzIHRoZSB0aWxlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkVGlsZUNvbXBvbmVudChcbiAgICB0aWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiN0aWxlQ29tcG9uZW50cyA9IHRoaXMuI3RpbGVDb21wb25lbnRzIHx8IFtdO1xuXG4gICAgdGhpcy4jdGlsZUNvbXBvbmVudHMucHVzaChjb21wb25lbnQpO1xuXG4gICAgY29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCwgdGlsZS5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBzcGVjaWZpZWQgdGlsZSBpcyBjb2xsYXBzZWQuXG4gICAqIEBwYXJhbSB0aWxlIFNwZWNpZmllcyB0aGUgdGlsZSBjb21wb25lbnQgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgdGlsZUlzQ29sbGFwc2VkKHRpbGU6IFNreVRpbGVDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0aWxlQ29uZmlnID0gdGhpcy4jZmluZFRpbGUodGhpcy4jZ2V0VGlsZUlkKHRpbGUpKTtcblxuICAgIGlmICh0aWxlQ29uZmlnKSB7XG4gICAgICByZXR1cm4gdGlsZUNvbmZpZy5pc0NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGFwc2VkIHN0YXRlIG9mIGFsbCB0aWxlcy5cbiAgICogQHBhcmFtIGlzQ29sbGFwc2VkIEluZGljYXRlcyB3aGV0aGVyIHRpbGVzIGFyZSBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0QWxsVGlsZXNDb2xsYXBzZWQoaXNDb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jY29uZmlnICYmIHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4pIHtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4pIHtcbiAgICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGNvbHVtbi50aWxlcykge1xuICAgICAgICAgIHRpbGUuaXNDb2xsYXBzZWQgPSBpc0NvbGxhcHNlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIHRoaXMuI2NvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzKSB7XG4gICAgICAgIHRpbGUuaXNDb2xsYXBzZWQgPSBpc0NvbGxhcHNlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuI3NldFVzZXJDb25maWcodGhpcy4jY29uZmlnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuI2NvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGFwc2VkIHN0YXRlIG9mIGEgc3BlY2lmaWVkIHRpbGUuXG4gICAqIEBwYXJhbSB0aWxlIFNwZWNpZmllcyB0aGUgdGlsZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBpc0NvbGxhcHNlZCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGlsZSBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGlsZUNvbGxhcHNlZChcbiAgICB0aWxlOiBTa3lUaWxlQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICAgIGlzQ29sbGFwc2VkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB0aWxlQ29uZmlnID0gdGhpcy4jZmluZFRpbGUodGhpcy4jZ2V0VGlsZUlkKHRpbGUpKTtcblxuICAgIGlmICh0aWxlQ29uZmlnKSB7XG4gICAgICB0aWxlQ29uZmlnLmlzQ29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XG5cbiAgICAgIGlmICh0aGlzLiNzZXR0aW5nc0tleSkge1xuICAgICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKHRoaXMuI2NvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQodGhpcy4jY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0VGlsZUNvbXBvbmVudFR5cGUoXG4gICAgbGF5b3V0VGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUgfCB1bmRlZmluZWQsXG4gICk6IGFueSB7XG4gICAgaWYgKGxheW91dFRpbGUgJiYgdGhpcy4jY29uZmlnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgdGhpcy4jY29uZmlnLnRpbGVzKSB7XG4gICAgICAgIGlmICh0aWxlLmlkID09PSBsYXlvdXRUaWxlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHRpbGUuY29tcG9uZW50VHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlQ29sdW1uTW9kZShtb2RlOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjb25maWcpIHtcbiAgICAgIGlmIChtb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICB0aGlzLiNtb3ZlVGlsZXNUb1NpbmdsZUNvbHVtbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jbW92ZVRpbGVzVG9NdWx0aUNvbHVtbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXRUaWxlQ29tcG9uZW50KHRpbGVJZDogc3RyaW5nKTogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiN0aWxlQ29tcG9uZW50cz8uZmluZChcbiAgICAgICh0aWxlQ29tcG9uZW50KSA9PlxuICAgICAgICB0aWxlQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCkgPT09XG4gICAgICAgIHRpbGVJZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG1vdmVUaWxlT25LZXlEb3duKFxuICAgIHRpbGVDbXA6IFNreVRpbGVDb21wb25lbnQsXG4gICAgZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyxcbiAgICB0aWxlRGVzY3JpcHRpb246IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2NvbmZpZykge1xuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuI21vZGUoKTtcbiAgICAgIGNvbnN0IHRpbGVJZCA9IHRoaXMuI2dldFRpbGVJZCh0aWxlQ21wKTtcbiAgICAgIGNvbnN0IHRpbGUgPSB0aGlzLiNmaW5kVGlsZSh0aWxlSWQpO1xuXG4gICAgICBsZXQgY29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIHwgdW5kZWZpbmVkO1xuICAgICAgbGV0IGNvbEluZGV4ID0gMDtcblxuICAgICAgaWYgKG1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgIGNvbHVtbiA9IHRoaXMuI2NvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICAgIGNvbEluZGV4ID0gdGhpcy4jZmluZFRpbGVDb2x1bW5JbmRleChcbiAgICAgICAgICB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLFxuICAgICAgICAgIHRpbGVJZCxcbiAgICAgICAgKTtcbiAgICAgICAgY29sdW1uID0gdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbltjb2xJbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2x1bW4gJiYgdGlsZSAmJiB0aWxlSWQpIHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8IGRpcmVjdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgIGlmIChtb2RlID09PSAnbXVsdGknKSB7XG4gICAgICAgICAgICB0aGlzLiNtb3ZlVGlsZUFycm93TGVmdFJpZ2h0KFxuICAgICAgICAgICAgICB0aWxlLFxuICAgICAgICAgICAgICB0aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgY29sSW5kZXgsXG4gICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEdldCB0aGUgY29sdW1uIGVsZW1lbnRcbiAgICAgICAgICBsZXQgY29sdW1uRWw6IEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKG1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjb2x1bW5FbCA9IHRoaXMuI2dldENvbHVtbkVsKHRoaXMuI3NpbmdsZUNvbHVtbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbHVtbkVsID0gdGhpcy4jZ2V0Q29sdW1uRWwodGhpcy4jY29sdW1ucz8udG9BcnJheSgpW2NvbEluZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI21vdmVUaWxlQXJyb3dVcERvd24oXG4gICAgICAgICAgICB0aWxlLFxuICAgICAgICAgICAgdGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgY29sSW5kZXgsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI21vdmVUaWxlQXJyb3dMZWZ0UmlnaHQoXG4gICAgdGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUsXG4gICAgdGlsZURlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGNvbEluZGV4OiBudW1iZXIsXG4gICAgY29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uLFxuICAgIG11bHRpQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyAtMSA6IDE7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gbXVsdGlDb2x1bW5bY29sSW5kZXggKyBvcGVyYXRvcl07XG5cbiAgICBpZiAobmV3Q29sdW1uKSB7XG4gICAgICAvLyBNb3ZlIHRoZSB0aWxlIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICAgIG5ld0NvbHVtbi50aWxlcy5wdXNoKHRpbGUpO1xuICAgICAgY29sdW1uLnRpbGVzID0gY29sdW1uLnRpbGVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gdGlsZSk7XG4gICAgICB0aGlzLiNtb3ZlVGlsZXNUb0NvbHVtbih0aGlzLiNjb2x1bW5zPy50b0FycmF5KClbY29sSW5kZXggKyBvcGVyYXRvcl0sIFtcbiAgICAgICAgdGlsZSxcbiAgICAgIF0pO1xuXG4gICAgICAvLyBSZXBvcnQgdGhlIGNoYW5nZSBpbiBjb25maWd1cmF0aW9uXG4gICAgICB0aGlzLiNlbWl0VGlsZU1vdmUoXG4gICAgICAgIHRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgdGlsZSxcbiAgICAgICAgY29sSW5kZXggKyBvcGVyYXRvciArIDEsXG4gICAgICAgIG5ld0NvbHVtbi50aWxlcy5sZW5ndGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlVGlsZUFycm93VXBEb3duKFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyxcbiAgICBjb2xJbmRleDogbnVtYmVyLFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbixcbiAgICBjb2x1bW5FbDogRWxlbWVudCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBkaXJlY3Rpb24gPT09ICd1cCcgPyAtMSA6IDE7XG4gICAgY29uc3QgY3VySW5kZXggPSBjb2x1bW4udGlsZXMuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUuaWQgPT09IHRpbGUuaWQpO1xuICAgIGNvbnN0IHRpbGVDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuZ2V0VGlsZUNvbXBvbmVudCh0aWxlLmlkKTtcblxuICAgIGlmICh0aWxlQ29tcG9uZW50SW5zdGFuY2UgJiYgY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdKSB7XG4gICAgICBjb25zdCB0ZW1wID0gY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdO1xuICAgICAgY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdID0gdGlsZTtcbiAgICAgIGNvbHVtbi50aWxlc1tjdXJJbmRleF0gPSB0ZW1wO1xuXG4gICAgICBpZiAoY29sdW1uRWwpIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgdGlsZSBlbGVtZW50IGluIHRoZSBkb2N1bWVudFxuICAgICAgICBpZiAoY3VySW5kZXggKyBvcGVyYXRvciA9PT0gY29sdW1uLnRpbGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgICAgICAgIGNvbHVtbkVsLFxuICAgICAgICAgICAgdGlsZUNvbXBvbmVudEluc3RhbmNlLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICAgIHRpbGVDb21wb25lbnRJbnN0YW5jZS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy5nZXRUaWxlQ29tcG9uZW50KGNvbHVtbi50aWxlc1tjdXJJbmRleCArIG9wZXJhdG9yICsgMV0uaWQpXG4gICAgICAgICAgICAgID8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9ydCB0aGUgY2hhbmdlIGluIGNvbmZpZ3VyYXRpb25cbiAgICAgIHRoaXMuI2VtaXRUaWxlTW92ZShcbiAgICAgICAgdGlsZURlc2NyaXB0aW9uLFxuICAgICAgICB0aWxlLFxuICAgICAgICBjb2xJbmRleCArIDEsXG4gICAgICAgIGN1ckluZGV4ICsgb3BlcmF0b3IgKyAxLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFRpbGVNb3ZlKFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICAgIG5ld0NvbHVtbkluZGV4OiBudW1iZXIsXG4gICAgbmV3Um93SW5kZXg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcmVwb3J0Q29uZmlnID0gdGhpcy4jZ2V0Q29uZmlnRm9yVUlTdGF0ZSgpO1xuICAgIGlmIChyZXBvcnRDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLiNzZXR0aW5nc0tleSkge1xuICAgICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKHsgLi4ucmVwb3J0Q29uZmlnIH0pO1xuICAgICAgfVxuICAgICAgcmVwb3J0Q29uZmlnLm1vdmVkVGlsZSA9IHtcbiAgICAgICAgdGlsZURlc2NyaXB0aW9uOiB0aGlzLiNnZXRUaWxlRGVzY3JpcHRpb24odGlsZURlc2NyaXB0aW9uLCB0aWxlKSxcbiAgICAgICAgY29sdW1uOiBuZXdDb2x1bW5JbmRleCxcbiAgICAgICAgcG9zaXRpb246IG5ld1Jvd0luZGV4LFxuICAgICAgfTtcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQocmVwb3J0Q29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAjZ2V0VGlsZURlc2NyaXB0aW9uKFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aWxlRGVzY3JpcHRpb24gfHwgdGlsZS5pZDtcbiAgfVxuXG4gICNnZXRUaWxlSWQodGlsZTogU2t5VGlsZUNvbXBvbmVudCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRpbGUpIHtcbiAgICAgIGxldCBlbCA9IHRpbGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgbGV0IHRpbGVJZDogc3RyaW5nO1xuXG4gICAgICB3aGlsZSAoZWwpIHtcbiAgICAgICAgdGlsZUlkID0gZWwuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCk7XG5cbiAgICAgICAgaWYgKHRpbGVJZCkge1xuICAgICAgICAgIHJldHVybiB0aWxlSWQ7XG4gICAgICAgIH1cblxuICAgICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gICNnZXRUaWxlT3JSZW1vdmVGcm9tTGF5b3V0KFxuICAgIGxheW91dFRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnVGlsZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGxheW91dFRpbGUgJiYgdGhpcy4jY29uZmlnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgdGhpcy4jY29uZmlnLnRpbGVzKSB7XG4gICAgICAgIGlmICh0aWxlLmlkID09PSBsYXlvdXRUaWxlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHRpbGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIGxheW91dCB0aWxlIHdhcyBub3QgZm91bmQgaW4gdGhlIGxpc3Qgb2YgdGlsZXMsIGl0IHdhcyByZW1vdmVkIHNpbmNlIGxhc3QgdGhlIHVzZXIgdXBkYXRlZCBzZXR0aW5nc1xuICAgICAgaWYgKHRoaXMuI2NvbmZpZz8ubGF5b3V0LnNpbmdsZUNvbHVtbikge1xuICAgICAgICB0aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcyA9XG4gICAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW0pID0+IGVsZW0uaWQgIT09IGxheW91dFRpbGUuaWQsXG4gICAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jY29uZmlnPy5sYXlvdXQubXVsdGlDb2x1bW4uZm9yRWFjaCgoZWxlbSkgPT4ge1xuICAgICAgICBlbGVtLnRpbGVzID0gZWxlbS50aWxlcy5maWx0ZXIoKHJlcykgPT4gcmVzLmlkICE9PSBsYXlvdXRUaWxlLmlkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjY2hlY2tSZWFkeUFuZExvYWRUaWxlcyhcbiAgICBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQsXG4gICAgc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiNjb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLiNzaW5nbGVDb2x1bW4gPSBzaW5nbGVDb2x1bW47XG4gICAgaWYgKHRoaXMuI2NvbmZpZyAmJiB0aGlzLiNjb2x1bW5zKSB7XG4gICAgICB0aGlzLiNsb2FkVGlsZXModGhpcy4jY29uZmlnLCB0aGlzLiNjb2x1bW5zLnRvQXJyYXkoKSk7XG4gICAgICB0aGlzLmRhc2hib2FyZEluaXRpYWxpemVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICAjbG9hZFRpbGVzKFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBjb2x1bW5zOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGxheW91dCA9IGNvbmZpZy5sYXlvdXQ7XG5cbiAgICBpZiAodGhpcy4jbW9kZSgpID09PSAnc2luZ2xlJykge1xuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMpIHtcbiAgICAgICAgdGhpcy4jbG9hZFRpbGVJbnRvQ29sdW1uKHRoaXMuI3NpbmdsZUNvbHVtbiwgdGlsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gbGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2ldO1xuICAgICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgbGF5b3V0Lm11bHRpQ29sdW1uW2ldLnRpbGVzKSB7XG4gICAgICAgICAgdGhpcy4jbG9hZFRpbGVJbnRvQ29sdW1uKGNvbHVtbiwgdGlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbG9hZFRpbGVJbnRvQ29sdW1uKFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgICBsYXlvdXRUaWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgY29uc3QgdGlsZSA9IHRoaXMuI2dldFRpbGVPclJlbW92ZUZyb21MYXlvdXQobGF5b3V0VGlsZSk7XG5cbiAgICAgIGlmICh0aWxlICYmIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aWxlLmNvbXBvbmVudFR5cGU7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVycyA9IHRpbGUucHJvdmlkZXJzID8/IFtdO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICBjb21wb25lbnRUeXBlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogY29sdW1uLmNvbnRlbnQsXG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBjb2x1bW4uaW5qZWN0b3IsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdza3ktdGlsZS1wYXJlbnQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZGRUaWxlQ29tcG9uZW50KGxheW91dFRpbGUsIGNvbXBvbmVudFJlZik7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBjb21wb25lbnQgaXMgbWFya2VkIGZvciBjaGFuZ2VzIGluIGNhc2UgdGhlIHBhcmVudCBjb21wb25lbnQgdXNlc1xuICAgICAgICAvLyB0aGUgT25QdXNoIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kuXG4gICAgICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbW92ZVRpbGVzVG9TaW5nbGVDb2x1bW4oKTogdm9pZCB7XG4gICAgdGhpcy4jbW92ZVRpbGVzVG9Db2x1bW4oXG4gICAgICB0aGlzLiNzaW5nbGVDb2x1bW4sXG4gICAgICB0aGlzLiNjb25maWc/LmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMsXG4gICAgKTtcbiAgfVxuXG4gICNtb3ZlVGlsZXNUb011bHRpQ29sdW1uKCk6IHZvaWQge1xuICAgIGxldCBsYXlvdXRDb2x1bW5zOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10gPSBbXTtcbiAgICBpZiAodGhpcy4jY29uZmlnKSB7XG4gICAgICBsYXlvdXRDb2x1bW5zID0gdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbjtcbiAgICB9XG4gICAgY29uc3QgY29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudFtdID1cbiAgICAgIHRoaXMuI2NvbHVtbnM/LnRvQXJyYXkoKSA/PyBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBuID0gbGF5b3V0Q29sdW1ucy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgIHRoaXMuI21vdmVUaWxlc1RvQ29sdW1uKGNvbHVtbnNbaV0sIGxheW91dENvbHVtbnNbaV0udGlsZXMpO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlVGlsZXNUb0NvbHVtbihcbiAgICBjb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQsXG4gICAgbGF5b3V0VGlsZXM6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlW10gfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbkVsID0gdGhpcy4jZ2V0Q29sdW1uRWwoY29sdW1uKTtcbiAgICBpZiAoY29sdW1uRWwgJiYgbGF5b3V0VGlsZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbGF5b3V0VGlsZSBvZiBsYXlvdXRUaWxlcykge1xuICAgICAgICBjb25zdCB0aWxlQ29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLmdldFRpbGVDb21wb25lbnQobGF5b3V0VGlsZS5pZCk7XG4gICAgICAgIGlmICh0aWxlQ29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgICAgICAgIGNvbHVtbkVsLFxuICAgICAgICAgICAgdGlsZUNvbXBvbmVudEluc3RhbmNlLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb25maWdGb3JVSVN0YXRlKCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLiNjb25maWcpIHtcbiAgICAgIHRoaXMuI2NvbmZpZyA9IHtcbiAgICAgICAgdGlsZXM6IHRoaXMuI2NvbmZpZy50aWxlcyxcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgc2luZ2xlQ29sdW1uOiB0aGlzLiNnZXRTaW5nbGVDb2x1bW5MYXlvdXRGb3JVSVN0YXRlKHRoaXMuI2NvbmZpZyksXG4gICAgICAgICAgbXVsdGlDb2x1bW46IHRoaXMuI2dldE11bHRpQ29sdW1uTGF5b3V0Rm9yVUlTdGF0ZSh0aGlzLiNjb25maWcpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jY29uZmlnO1xuICB9XG5cbiAgI2dldFNpbmdsZUNvbHVtbkxheW91dEZvclVJU3RhdGUoXG4gICAgY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIHtcbiAgICBpZiAodGhpcy4jbW9kZSgpID09PSAnc2luZ2xlJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGlsZXM6IHRoaXMuI2dldFRpbGVzSW5FbCh0aGlzLiNnZXRDb2x1bW5FbCh0aGlzLiNzaW5nbGVDb2x1bW4pKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uO1xuICB9XG5cbiAgI2dldE11bHRpQ29sdW1uTGF5b3V0Rm9yVUlTdGF0ZShcbiAgICBjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcsXG4gICk6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSB7XG4gICAgaWYgKHRoaXMuI21vZGUoKSA9PT0gJ211bHRpJykge1xuICAgICAgY29uc3QgbGF5b3V0Q29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdID0gW107XG4gICAgICBsZXQgY29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudFtdID0gW107XG4gICAgICBpZiAodGhpcy4jY29sdW1ucykge1xuICAgICAgICBjb2x1bW5zID0gdGhpcy4jY29sdW1ucz8udG9BcnJheSgpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmIChjb2x1bW4gIT09IHRoaXMuI3NpbmdsZUNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IGxheW91dENvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiA9IHtcbiAgICAgICAgICAgIHRpbGVzOiB0aGlzLiNnZXRUaWxlc0luRWwodGhpcy4jZ2V0Q29sdW1uRWwoY29sdW1uKSksXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGxheW91dENvbHVtbnMucHVzaChsYXlvdXRDb2x1bW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsYXlvdXRDb2x1bW5zO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICB9XG5cbiAgI2dldFRpbGVzSW5FbChlbDogRWxlbWVudCB8IHVuZGVmaW5lZCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlW10ge1xuICAgIGNvbnN0IHRpbGVFbHMgPSBlbD8ucXVlcnlTZWxlY3RvckFsbCgnWycgKyBBVFRSX1RJTEVfSUQgKyAnXScpO1xuICAgIGNvbnN0IGxheW91dFRpbGVzOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZVtdID0gW107XG5cbiAgICBpZiAodGlsZUVscykge1xuICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSB0aWxlRWxzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBjb25zdCB0aWxlRWwgPSB0aWxlRWxzW2ldO1xuICAgICAgICBjb25zdCB0aWxlSWQgPSB0aWxlRWwuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCk7XG4gICAgICAgIGNvbnN0IHRpbGUgPSB0aGlzLiNmaW5kVGlsZSh0aWxlSWQpO1xuXG4gICAgICAgIGlmICh0aWxlKSB7XG4gICAgICAgICAgbGF5b3V0VGlsZXMucHVzaCh0aWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYXlvdXRUaWxlcztcbiAgfVxuXG4gICNpbml0RHJhZ3VsYSgpOiB2b2lkIHtcbiAgICB0aGlzLiNkcmFndWxhU2VydmljZS5jcmVhdGVHcm91cCh0aGlzLmJhZ0lkLCB7XG4gICAgICBtb3ZlczogKGVsLCBjb250YWluZXIsIGhhbmRsZSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlbD8ucXVlcnlTZWxlY3RvcignLnNreS10aWxlLWdyYWItaGFuZGxlJyk7XG4gICAgICAgIHJldHVybiAhIXRhcmdldCAmJiB0YXJnZXQuY29udGFpbnMoaGFuZGxlISk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcm9wKHRoaXMuYmFnSWQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy4jZ2V0Q29uZmlnRm9yVUlTdGF0ZSgpO1xuXG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuI3NldFVzZXJDb25maWcoY29uZmlnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2dldENvbHVtbkVsKFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgKTogRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNvbHVtbj8uY29udGVudD8uZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gIH1cblxuICAjZmluZFRpbGUoXG4gICAgdGlsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuI2NvbmZpZyAmJiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICAgIGlmIChjb2x1bW4udGlsZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgY29sdW1uLnRpbGVzKSB7XG4gICAgICAgICAgICBpZiAodGlsZS5pZCA9PT0gdGlsZUlkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZmluZFRpbGVDb2x1bW5JbmRleChcbiAgICBtdWx0aUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdLFxuICAgIHRpbGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBudW1iZXIge1xuICAgIHJldHVybiBtdWx0aUNvbHVtbi5maW5kSW5kZXgoXG4gICAgICAoY29sKSA9PiAhIWNvbC50aWxlcz8uZmluZCgodGlsZSkgPT4gdGlsZS5pZCA9PT0gdGlsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgI3NldFVzZXJDb25maWcoY29uZmlnPzogU2t5VGlsZURhc2hib2FyZENvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWcgJiYgdGhpcy4jc2V0dGluZ3NLZXkpXG4gICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLnNldENvbmZpZyh0aGlzLiNzZXR0aW5nc0tleSwge1xuICAgICAgICAgIGxheW91dDogY29uZmlnLmxheW91dCxcbiAgICAgICAgICBwZXJzaXN0ZWQ6IHRydWUsXG4gICAgICAgICAgdGlsZUlkczogY29uZmlnLnRpbGVzLm1hcCgoZWxlbSkgPT4gZWxlbS5pZCksXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgdGlsZSBkYXNoYm9hcmQgc2V0dGluZ3MuJyk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgfVxuXG4gICNjaGVja0Zvck5ld1RpbGVzKFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBvbGRUaWxlSWRzOiBzdHJpbmdbXSxcbiAgKTogYm9vbGVhbiB7XG4gICAgLy8gR2V0IGEgbGlzdCBvZiB0aWxlcyB0aGF0IGFyZSBpbiB0aGUgY29uZmlnJ3MgZGVmYXVsdCBsaXN0IGJ1dCBub3QgaW4gdGhlIHVzZXIncyBzZXR0aW5nc1xuICAgIGNvbnN0IG5ld1RpbGVzID0gY29uZmlnLnRpbGVzLmZpbHRlcigoeyBpZCB9KSA9PiAhb2xkVGlsZUlkcy5pbmNsdWRlcyhpZCkpO1xuICAgIGxldCBoYXNDaGFuZ2UgPSBuZXdUaWxlcy5sZW5ndGggPiAwO1xuXG4gICAgY29uc3QgbXVsdGlDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSB8IHVuZGVmaW5lZCA9XG4gICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICAgIGNvbnN0IHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiB8IHVuZGVmaW5lZCA9XG4gICAgICBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbjtcblxuICAgIC8vIEFwcGVuZCBuZXcgdGlsZXMgdG8gdGhlIGVuZCBvZiB0aGUgbGF5b3V0c1xuICAgIGlmIChtdWx0aUNvbHVtbikge1xuICAgICAgY29uc3QgbXVsdGlDb2x1bW5UaWxlSWRzID0gbXVsdGlDb2x1bW4uZmxhdE1hcCgoY29sdW1uKSA9PlxuICAgICAgICBjb2x1bW4udGlsZXMubWFwKCh0aWxlKSA9PiB0aWxlLmlkKSxcbiAgICAgICk7XG4gICAgICBjb25zdCBuZXdNdWx0aUNvbHVtblRpbGVzID0gW1xuICAgICAgICAuLi5uZXcgU2V0KFtcbiAgICAgICAgICAuLi5uZXdUaWxlcyxcbiAgICAgICAgICAuLi5jb25maWcudGlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHRpbGUpID0+ICFtdWx0aUNvbHVtblRpbGVJZHMuaW5jbHVkZXModGlsZS5pZCksXG4gICAgICAgICAgKSxcbiAgICAgICAgXSksXG4gICAgICBdIGFzIFNreVRpbGVEYXNoYm9hcmRDb25maWdUaWxlW107XG4gICAgICBuZXdNdWx0aUNvbHVtblRpbGVzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgICAgY29uc3Qgc21hbGxlc3QgPSBNYXRoLm1pbihcbiAgICAgICAgICAuLi5tdWx0aUNvbHVtbi5tYXAoKGNvbCkgPT4gY29sLnRpbGVzLmxlbmd0aCksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uVG9BZGQgPSBtdWx0aUNvbHVtbi5maW5kSW5kZXgoXG4gICAgICAgICAgKGNvbCkgPT4gY29sLnRpbGVzLmxlbmd0aCA9PT0gc21hbGxlc3QsXG4gICAgICAgICk7XG4gICAgICAgIG11bHRpQ29sdW1uW2xvY2F0aW9uVG9BZGRdLnRpbGVzLnB1c2goe1xuICAgICAgICAgIGlkOiBlbGVtLmlkLFxuICAgICAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc2luZ2xlQ29sdW1uKSB7XG4gICAgICBjb25zdCBzaW5nbGVDb2x1bW5UaWxlSWRzID0gc2luZ2xlQ29sdW1uLnRpbGVzLm1hcCgodGlsZSkgPT4gdGlsZS5pZCk7XG4gICAgICBjb25zdCBuZXdTaW5nbGVDb2x1bW5UaWxlcyA9IFtcbiAgICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgICAgLi4ubmV3VGlsZXMsXG4gICAgICAgICAgLi4uY29uZmlnLnRpbGVzLmZpbHRlcihcbiAgICAgICAgICAgICh0aWxlKSA9PiAhc2luZ2xlQ29sdW1uVGlsZUlkcy5pbmNsdWRlcyh0aWxlLmlkKSxcbiAgICAgICAgICApLFxuICAgICAgICBdKSxcbiAgICAgIF0gYXMgU2t5VGlsZURhc2hib2FyZENvbmZpZ1RpbGVbXTtcbiAgICAgIG5ld1NpbmdsZUNvbHVtblRpbGVzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgICAgc2luZ2xlQ29sdW1uLnRpbGVzLnB1c2goeyBpZDogZWxlbS5pZCwgaXNDb2xsYXBzZWQ6IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2luZ2xlQ29sdW1uPy50aWxlcy5mb3JFYWNoKCh0aWxlKSA9PiB7XG4gICAgICBoYXNDaGFuZ2UgfHw9ICF0aGlzLiNnZXRUaWxlT3JSZW1vdmVGcm9tTGF5b3V0KHRpbGUpO1xuICAgIH0pO1xuXG4gICAgbXVsdGlDb2x1bW4/LmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29sdW1uLnRpbGVzLmZvckVhY2goKHRpbGUpID0+IHtcbiAgICAgICAgaGFzQ2hhbmdlIHx8PSAhdGhpcy4jZ2V0VGlsZU9yUmVtb3ZlRnJvbUxheW91dCh0aWxlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhhc0NoYW5nZTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Optional, Output, ViewChild, inject, } from '@angular/core';\nimport { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@skyux/indicators\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/icon\";\nimport * as i6 from \"@skyux/core\";\nimport * as i7 from \"@skyux/theme\";\nimport * as i8 from \"@skyux/i18n\";\n/**\n * Provides a common look-and-feel for tab content.\n */\nexport class SkyTileComponent {\n get isCollapsed() {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n return this.#_isCollapsed;\n }\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n set isCollapsed(value) {\n this.#_isCollapsed = !!value;\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n #changeDetector;\n #dashboardService;\n #ngUnsubscribe;\n #_isCollapsed;\n #logSvc;\n constructor(elementRef, changeDetector, dashboardService) {\n this.elementRef = elementRef;\n /**\n * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n this.showSettings = true;\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.showHelp = true;\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n this.settingsClick = new EventEmitter();\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n this.isCollapsedChange = new EventEmitter();\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.helpClick = new EventEmitter();\n this.isInDashboardColumn = false;\n this.#ngUnsubscribe = new Subject();\n this.#_isCollapsed = false;\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n this.#logSvc = inject(SkyLogService);\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n ngOnChanges(changes) {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n settingsButtonClicked() {\n this.settingsClick.emit(undefined);\n }\n /**\n * @deprecated\n */\n helpButtonClicked() {\n this.helpClick.emit(undefined);\n }\n get hasSettings() {\n return this.settingsClick.observed && this.showSettings;\n }\n /**\n * @deprecated\n */\n get hasHelp() {\n return this.helpClick.observed && this.showHelp;\n }\n titleClick(evt) {\n const targetEl = evt.target;\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n chevronDirectionChange(direction) {\n this.isCollapsed = direction === 'down';\n }\n moveTile(event) {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService) {\n const direction = event.key.toLowerCase().replace('arrow', '');\n this.#dashboardService.moveTileOnKeyDown(this, direction, this.title?.nativeElement.innerText);\n this.#focusHandle();\n }\n }\n #focusHandle() {\n this.grabHandle?.nativeElement.focus();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyTileComponent, isStandalone: true, selector: \"sky-tile\", inputs: { helpKey: \"helpKey\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", showSettings: \"showSettings\", showHelp: \"showHelp\", tileName: \"tileName\", isCollapsed: \"isCollapsed\" }, outputs: { settingsClick: \"settingsClick\", isCollapsedChange: \"isCollapsedChange\", helpClick: \"helpClick\" }, providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], queries: [{ propertyName: \"titleRef\", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: \"grabHandle\", first: true, predicate: [\"grabHandle\"], descendants: true, read: ElementRef }, { propertyName: \"title\", first: true, predicate: [\"titleContainer\"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-display-3\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyChevronModule }, { kind: \"component\", type: i3.λ2, selector: \"sky-chevron\", inputs: [\"ariaControls\", \"ariaLabel\", \"direction\", \"disabled\"], outputs: [\"directionChange\"] }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i7.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"directive\", type: i7.λ3, selector: \"[skyThemeIf]\", inputs: [\"skyThemeIf\"] }, { kind: \"ngmodule\", type: SkyTilesResourcesModule }, { kind: \"pipe\", type: i8.SkyLibResourcesPipe, name: \"skyLibResources\" }], animations: [skyAnimationSlide] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile', animations: [skyAnimationSlide], imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ], providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-display-3\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyTileDashboardService, decorators: [{\n type: Optional\n }] }], propDecorators: { helpKey: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], showSettings: [{\n type: Input\n }], showHelp: [{\n type: Input\n }], tileName: [{\n type: Input\n }], settingsClick: [{\n type: Output\n }], isCollapsedChange: [{\n type: Output\n }], helpClick: [{\n type: Output\n }], isCollapsed: [{\n type: Input\n }], grabHandle: [{\n type: ViewChild,\n args: ['grabHandle', {\n read: ElementRef,\n static: false,\n }]\n }], title: [{\n type: ViewChild,\n args: ['titleContainer', {\n read: ElementRef,\n static: false,\n }]\n }], titleRef: [{\n type: ContentChild,\n args: [SkyTileTitleComponent, { read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7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LENBQUMsQ0FBQztnQ0FDdkMsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ2hDLENBQUM7eUJBQ0Y7cUJBQ0Y7OzBCQStIRSxRQUFRO3lDQXRISixPQUFPO3NCQURiLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixLQUFLO2dCQVVDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFRQSxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBU0EsU0FBUztzQkFEZixNQUFNO2dCQWlCSSxXQUFXO3NCQURyQixLQUFLO2dCQW1CQyxVQUFVO3NCQUpoQixTQUFTO3VCQUFDLFlBQVksRUFBRTt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkO2dCQU9NLEtBQUs7c0JBSlgsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkO2dCQUlTLFFBQVE7c0JBRGpCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBza3lBbmltYXRpb25TbGlkZSB9IGZyb20gJ0Bza3l1eC9hbmltYXRpb25zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lJZFNlcnZpY2UsIFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lDaGV2cm9uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS10aWxlcy1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNLWV9USUxFX1RJVExFX0lEIH0gZnJvbSAnLi90aWxlLXRpdGxlLWlkLXRva2VuJztcbmltcG9ydCB7IFNreVRpbGVUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS10aXRsZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgY29tbW9uIGxvb2stYW5kLWZlZWwgZm9yIHRhYiBjb250ZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZScsXG4gIHN0eWxlVXJsczogWycuL3RpbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUNoZXZyb25Nb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICAgIFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfVElMRV9USVRMRV9JRCxcbiAgICAgIHVzZUZhY3RvcnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaWRTZXJ2aWNlID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gICAgICAgIHJldHVybiBpZFNlcnZpY2UuZ2VuZXJhdGVJZCgpO1xuICAgICAgfSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgdGlsZU5hbWVgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSBidXR0b24gaXNcbiAgICogYWRkZWQgdG8gdGhlIHRpbGUgaGVhZGVyLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYHRpbGVOYW1lYCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYHRpbGVOYW1lYCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYHRpbGVOYW1lYCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgc2V0dGluZ3NDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2V0dGluZ3MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgaGVscENsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAZGVwcmVjYXRlZCBTZXQgdGhlIGBoZWxwS2V5YCBvciBgaGVscFBvcG92ZXJDb250ZW50YCBpbnB1dHMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGVscCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgdGlsZSB0aGF0IGlzIGF2YWlsYWJsZSB0byB0aGUgdGlsZSBjb250cm9scyBmb3IgbXVsdGlwbGUgcHVycG9zZXMsIHN1Y2ggYXMgYWNjZXNzaWJpbGl0eSBhbmQgaW5zdHJ1bWVudGF0aW9uLiBUaGUgY29tcG9uZW50IHVzZXMgdGhlIG5hbWUgdG8gY29uc3RydWN0IEFSSUEgbGFiZWxzIGZvciB0aGUgaGVscCwgZXhwYW5kL2NvbGxhcHNlLCBzZXR0aW5ncywgYW5kIGRyYWcgaGFuZGxlIGJ1dHRvbnMgdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSB0aWxlIG5hbWUgaXMgXCJDb25zdGl0dWVudHMsXCIgdGhlIGhlbHAgaW5wdXQncyBgYXJpYS1sYWJlbGAgaXMgXCJDb25zdGl0dWVudHMgaGVscFwiIGFuZCB0aGUgZHJhZyBoYW5kbGUncyBgYXJpYS1sYWJlbGAgaXMgXCJNb3ZlIENvbnN0aXR1ZW50cy5cIiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgc2V0dGluZ3MgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIHNldHRpbmdzXG4gICAqIGJ1dHRvbiBvbmx5IGFwcGVhcnMgd2hlbiB0aGUgYHNob3dTZXR0aW5nc2AgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSdzIGNvbGxhcHNlZCBzdGF0ZSBjaGFuZ2VzLiBSZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB0aWxlXG4gICAqIGNvbGxhcHNlcyBhbmQgYGZhbHNlYCB3aGVuIGl0IGV4cGFuZHMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGlzQ29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUaGUgaGVscFxuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93SGVscGAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICogQGRlcHJlY2F0ZWQgU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhlbHBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBjb25maWdDb2xsYXBzZWRTdGF0ZSA9IHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UudGlsZUlzQ29sbGFwc2VkKHRoaXMpO1xuICAgICAgdGhpcy4jX2lzQ29sbGFwc2VkID0gY29uZmlnQ29sbGFwc2VkU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI19pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0aWxlIGlzIGluIGEgY29sbGFwc2VkIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0NvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRUaWxlQ29sbGFwc2VkKHRoaXMsIHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gIH1cblxuICBwdWJsaWMgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzSW5EYXNoYm9hcmRDb2x1bW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdncmFiSGFuZGxlJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgdGl0bGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChTa3lUaWxlVGl0bGVDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgdGl0bGVSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfaXNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdGlsZVRpdGxlSWQgPSBpbmplY3QoU0tZX1RJTEVfVElUTEVfSUQpO1xuXG4gIHJlYWRvbmx5ICNsb2dTdmMgPSBpbmplY3QoU2t5TG9nU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIGRhc2hib2FyZFNlcnZpY2U/OiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLmlzSW5EYXNoYm9hcmRDb2x1bW4gPSAhIXRoaXMuI2Rhc2hib2FyZFNlcnZpY2U7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkgPSBgJHt0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkfS1tb3ZlLWluc3RydWN0aW9uc2A7XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBzdWJzY3JpcHRpb24gZW5zdXJlcyB0aGF0IGlmIGFueSB2YWx1ZXMgd2hpY2ggY29tZSBpbiBmcm9tIHRoZSBkYXNoYm9hcmQgc2VydmljZSBhcmVcbiAgICAgICAqIHVwZGF0ZWQgdGhhdCB0aGUgY29tcG9uZW50IHdpbGwgdXBkYXRlIGlmIHRoZSB0aWxlJ3MgcGFyZW50IGNvbXBvbmVudCB1dGlsaXplcyBPblB1c2hcbiAgICAgICAqIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuY29uZmlnQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Nob3dIZWxwJ10/LmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLiNsb2dTdmMuZGVwcmVjYXRlZCgnU2t5VGlsZUNvbXBvbmVudC5zaG93SGVscCcsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDEwLFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAgICdTZXQgdGhlIGBoZWxwS2V5YCBvciBgaGVscFBvcG92ZXJDb250ZW50YCBpbnB1dHMgaW5zdGVhZC4nLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGhlbHBCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaGVscENsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NDbGljay5vYnNlcnZlZCAmJiB0aGlzLnNob3dTZXR0aW5ncztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGdldCBoYXNIZWxwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlbHBDbGljay5vYnNlcnZlZCAmJiB0aGlzLnNob3dIZWxwO1xuICB9XG5cbiAgcHVibGljIHRpdGxlQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8vIERvbid0IGV4cGFuZC9jb2xsYXBzZSBpZiB0aGUgaGVscCBpbmxpbmUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgaWYgKHRhcmdldEVsPy5jbG9zZXN0KCdza3ktaGVscC1pbmxpbmUnKSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddLmluY2x1ZGVzKGV2ZW50LmtleSkgJiZcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2VcbiAgICApIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ2Fycm93JywgJycpIGFzXG4gICAgICAgIHwgJ3VwJ1xuICAgICAgICB8ICdkb3duJ1xuICAgICAgICB8ICdsZWZ0J1xuICAgICAgICB8ICdyaWdodCc7XG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLm1vdmVUaWxlT25LZXlEb3duKFxuICAgICAgICB0aGlzLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHRoaXMudGl0bGU/Lm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0LFxuICAgICAgKTtcbiAgICAgIHRoaXMuI2ZvY3VzSGFuZGxlKCk7XG4gICAgfVxuICB9XG5cbiAgI2ZvY3VzSGFuZGxlKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYkhhbmRsZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNreS10aWxlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktdGlsZS1jb2xsYXBzZWQnOiBpc0NvbGxhcHNlZFxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktYm94IHNreS1lbGV2YXRpb24tMS1ib3JkZXJlZCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgPGRpdiAjdGl0bGVDb250YWluZXIgY2xhc3M9XCJza3ktdGlsZS1oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIiAvPlxuICAgICAgICBAaWYgKHRpbGVOYW1lICYmIChoZWxwS2V5IHx8IGhlbHBQb3BvdmVyQ29udGVudCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxUZXh0XT1cInRpbGVOYW1lXCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtc3VtbWFyeSBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtc3VtbWFyeVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbHVtbi10b29sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXRvb2xzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICBAaWYgKGhhc0hlbHApIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXRpbGUtaGVscFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9oZWxwJyB8IHNreUxpYlJlc291cmNlczogdGlsZU5hbWUpXG4gICAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGVscEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cInF1ZXN0aW9uLWNpcmNsZVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8c2t5LWNoZXZyb25cbiAgICAgICAgICBjbGFzcz1cInNreS10aWxlLXRvb2xzLWNvbnRyb2xcIlxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChoYXNTZXR0aW5ncykge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1zZXR0aW5ncyBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktdGlsZS10b29scy1jb250cm9sXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9zZXR0aW5ncycgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX3NldHRpbmdzX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwic2V0dGluZ3NcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaXNJbkRhc2hib2FyZENvbHVtbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNncmFiSGFuZGxlXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LXRpbGUtdG9vbHMtY29udHJvbCBza3ktdGlsZS1ncmFiLWhhbmRsZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX21vdmVfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJtb3ZlVGlsZSgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJyZS1vcmRlci1kb3RzLXZlcnRpY2FsXCIgaWNvblNpemU9XCJzXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgI3RpbGVDb250ZW50PVwic2t5SWRcIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpbGVOYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXRpbGVOYW1lICYmIHRpdGxlUmVmID8gdGlsZVRpdGxlSWQgOiB1bmRlZmluZWRcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLWNvbnRlbnRcIiAvPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLFlBSGQsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLGFBQ2hFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQjsrR0FFL0QsYUFBYSxZQUhkLGdCQUFnQixFQUEyQixxQkFBcUI7OzJGQUcvRCxhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreVRpbGVDb21wb25lbnQsIFNreVRpbGVTdW1tYXJ5Q29tcG9uZW50LCBTa3lUaWxlVGl0bGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5VGlsZUNvbXBvbmVudCwgU2t5VGlsZVN1bW1hcnlDb21wb25lbnQsIFNreVRpbGVUaXRsZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVNb2R1bGUge31cbiJdfQ==","import { Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\nexport class SkyTileContentSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileContentSectionComponent, isStandalone: true, selector: \"sky-tile-content-section\", ngImport: i0, template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyThemeModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content-section', imports: [SkyThemeModule], template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU5Qzs7R0FFRztBQU9ILE1BQU0sT0FBTyw4QkFBOEI7OEdBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCLG9GQ1ozQyw0RkFHQSxvb0NET1ksY0FBYzs7MkZBRWIsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixXQUczQixDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW5zaWRlIGEgcGFkZGVkIHNlY3Rpb24gb2YgYSBTa3lUaWxlQ29udGVudENvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudC1zZWN0aW9uJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1NreVRoZW1lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRpbGUtY29udGVudC1zZWN0aW9uIHNreS1ib3JkZXItYm90dG9tLXJvd1wiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's body.\n */\nexport class SkyTileContentComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileContentComponent, isStandalone: true, selector: \"sky-tile-content\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC90aWxlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7O0dBRUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0RUNUcEMsa0JBQ0E7OzJGRFFhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSB0aWxlJ3MgYm9keS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAndGlsZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileContentModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNbkUsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIckIsdUJBQXVCLEVBQUUsOEJBQThCLGFBQ3ZELHVCQUF1QixFQUFFLDhCQUE4QjsrR0FFdEQsb0JBQW9CLFlBSEksOEJBQThCOzsyRkFHdEQsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDhCQUE4QixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlQ29udGVudENvbXBvbmVudCwgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVDb250ZW50Q29tcG9uZW50LCBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29udGVudE1vZHVsZSB7fVxuIl19","/**\n * The type of message to send to the tile dashboard component.\n */\nexport var SkyTileDashboardMessageType;\n(function (SkyTileDashboardMessageType) {\n /**\n * Expands all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"ExpandAll\"] = 0] = \"ExpandAll\";\n /**\n * Collapses all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"CollapseAll\"] = 1] = \"CollapseAll\";\n})(SkyTileDashboardMessageType || (SkyTileDashboardMessageType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFVWDtBQVZELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdUZBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkZBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQVV0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHR5cGUgb2YgbWVzc2FnZSB0byBzZW5kIHRvIHRoZSB0aWxlIGRhc2hib2FyZCBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBFeHBhbmRzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgRXhwYW5kQWxsID0gMCxcblxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgQ29sbGFwc2VBbGwgPSAxLFxufVxuIl19","import { Component, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { DragulaModule } from 'ng2-dragula';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"ng2-dragula\";\nlet columnIdIndex = 0;\n/**\n * @internal\n */\nexport class SkyTileDashboardColumnComponent {\n #dashboardService;\n constructor(injector, dashboardService) {\n this.injector = injector;\n this.#dashboardService = dashboardService;\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n this.bagId = this.#dashboardService.bagId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [{ token: i0.EnvironmentInjector }, { token: i1.SkyTileDashboardService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileDashboardColumnComponent, isStandalone: true, selector: \"sky-tile-dashboard-column\", viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"content\"], descendants: true, read: ViewContainerRef }], hostDirectives: [{ directive: i2.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: DragulaModule }, { kind: \"directive\", type: i3.DragulaDirective, selector: \"[dragula]\", inputs: [\"dragula\", \"dragulaModel\"], outputs: [\"dragulaModelChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard-column', imports: [DragulaModule], hostDirectives: [SkyThemeComponentClassDirective], template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: i1.SkyTileDashboardService }], propDecorators: { content: [{\n type: ViewChild,\n args: ['content', {\n read: ViewContainerRef,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUk1QyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFFdEI7O0dBRUc7QUFRSCxNQUFNLE9BQU8sK0JBQStCO0lBVzFDLGlCQUFpQixDQUEwQjtJQUUzQyxZQUNTLFFBQTZCLEVBQ3BDLGdCQUF5QztRQURsQyxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUdwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQzs4R0F0QlUsK0JBQStCO2tHQUEvQiwrQkFBK0Isb0tBTWxDLGdCQUFnQixrR0M5QjFCLGlHQUdBLDBtRkRrQlksYUFBYTs7MkZBR1osK0JBQStCO2tCQVAzQyxTQUFTOytCQUNFLDJCQUEyQixXQUc1QixDQUFDLGFBQWEsQ0FBQyxrQkFDUixDQUFDLCtCQUErQixDQUFDOzhIQVcxQyxPQUFPO3NCQUpiLFNBQVM7dUJBQUMsU0FBUyxFQUFFO3dCQUNwQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5sZXQgY29sdW1uSWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZC1jb2x1bW4nLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtEcmFndWxhTW9kdWxlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB7XG4gIHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb2x1bW5JZDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7XG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgY29udGVudDogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZDtcblxuICAjZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcblxuICAgIHRoaXMuY29sdW1uSWQgPSBgdGlsZS1kYXNoYm9hcmQtY29sdW1uLSR7Kytjb2x1bW5JZEluZGV4fWA7XG5cbiAgICB0aGlzLmJhZ0lkID0gdGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cIiBbZHJhZ3VsYV09XCJiYWdJZFwiPlxuICA8ZGl2ICNjb250ZW50PjwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, computed, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tile-dashboard.service\";\nimport * as i2 from \"@skyux/i18n\";\nimport * as i3 from \"@skyux/theme\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"../tile-dashboard-column/tile-dashboard-column.component\";\n/**\n * Specifies a container to group multiple tiles.\n */\nexport class SkyTileDashboardComponent {\n #breakpoint;\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n set config(value) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n get config() {\n return this.#_config;\n }\n #configSet;\n #dashboardService;\n #ngUnsubscribe;\n #resourcesService;\n #viewReady;\n #viewReadyTimer;\n #_config;\n constructor(dashboardService, resourcesService) {\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n this.messageStream = new Subject();\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n this.configChange = new EventEmitter();\n this.tileMovedReport = '';\n this.layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n let layoutClassName = '';\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n }\n else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n }\n else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n return layoutClassName;\n }, ...(ngDevMode ? [{ debugName: \"layoutClassName\" }] : []));\n this.#configSet = false;\n this.#ngUnsubscribe = new Subject();\n this.#viewReady = false;\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n this.#dashboardService.configChange.subscribe((config) => {\n this.configChange.emit(config);\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable;\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, '1', '1', config.movedTile.position.toString(), config.layout.singleColumn.tiles.length.toString());\n }\n else {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, config.movedTile.column.toString(), config.layout.multiColumn.length.toString(), config.movedTile.position.toString(), config.layout.multiColumn[config.movedTile.column - 1].tiles.length.toString());\n }\n messageObservable.pipe(take(1)).subscribe((message) => {\n this.tileMovedReport = message;\n });\n }\n });\n }\n ngAfterViewInit() {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message) => {\n this.#handleIncomingMessages(message);\n });\n this.#viewReady = true;\n this.#checkReady();\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkReady() {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(this.config, this.columns, this.singleColumn, this.settingsKey);\n }\n }, 0);\n }\n }\n #handleIncomingMessages(message) {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyTileDashboardComponent, isStandalone: false, selector: \"sky-tile-dashboard\", inputs: { config: \"config\", messageStream: \"messageStream\", settingsKey: \"settingsKey\" }, outputs: { configChange: \"configChange\" }, host: { properties: { \"class\": \"layoutClassName()\" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: \"singleColumn\", first: true, predicate: [\"singleColumn\"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: \"columns\", predicate: SkyTileDashboardColumnComponent, descendants: true }], hostDirectives: [{ directive: i3.SkyThemeComponentClassDirective }], ngImport: i0, template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: i5.SkyTileDashboardColumnComponent, selector: \"sky-tile-dashboard-column\" }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], host: {\n '[class]': 'layoutClassName()',\n }, standalone: false, hostDirectives: [SkyThemeComponentClassDirective], template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.SkyTileDashboardService }, { type: i2.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }], propDecorators: { config: [{\n type: Input\n }], messageStream: [{\n type: Input\n }], settingsKey: [{\n type: Input\n }], configChange: [{\n type: Output\n }], columns: [{\n type: ViewChildren,\n args: [SkyTileDashboardColumnComponent]\n }], singleColumn: [{\n type: ViewChild,\n args: ['singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFJM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFbkU7O0dBRUc7QUFZSCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLFdBQVcsQ0FFbEI7SUFFRjs7O09BR0c7SUFDSCxJQUNXLE1BQU0sQ0FB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QixDQUFDLFFBQzlCO3dCQUNKLFNBQVMsRUFBRSxtQkFBbUI7cUJBQy9CLGNBQ1csS0FBSyxrQkFDRCxDQUFDLCtCQUErQixDQUFDOzswQkE0RjlDLFFBQVE7eUNBaEZBLE1BQU07c0JBRGhCLEtBQUs7Z0JBa0JDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBV0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLE9BQU87c0JBRGIsWUFBWTt1QkFBQywrQkFBK0I7Z0JBT3RDLFlBQVk7c0JBSmxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsK0JBQStCO3dCQUNyQyxNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb25maWcvdGlsZS1kYXNoYm9hcmQtY29uZmlnJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNvbnRhaW5lciB0byBncm91cCBtdWx0aXBsZSB0aWxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtZGFzaGJvYXJkJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5VGlsZURhc2hib2FyZFNlcnZpY2VdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnbGF5b3V0Q2xhc3NOYW1lKCknLFxuICB9LFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHRpbGUgZGFzaGJvYXJkIGJhc2VkIG9uIHRoZSBgU2t5VGlsZURhc2hib2FyZENvbmZpZ2Agb2JqZWN0LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmICF0aGlzLiNjb25maWdTZXQpIHtcbiAgICAgIHRoaXMuI19jb25maWcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NvbmZpZ1NldCA9IHRydWU7XG4gICAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgdGlsZSBkYXNoYm9hcmQuIFRoZSBjb21tYW5kcyBtdXN0IHJlc3BlY3QgdGhlXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5VGlsZURhc2hib2FyZE1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgVUkgQ29uZmlnIFNlcnZpY2UgdG8gcmV0cmlldmUgc3RvcmVkIHNldHRpbmdzXG4gICAqIGZyb20gYSBkYXRhYmFzZS4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHNhdmVzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHVzZXJzXG4gICAqIHRvIHByZXNlcnZlIHRoZSBsYXlvdXQgYW5kIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aWxlIGRhc2hib2FyZHMuIFRoZSBVSSBDb25maWcgU2VydmljZSByZWxpZXMgb24gYGlkYCB2YWx1ZXMgZnJvbSB0aGUgYGNvbmZpZ2AgcHJvcGVydHkgdG8gbWFpbnRhaW4gdXNlciBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIFVJIENvbmZpZyBTZXJ2aWNlLCBzZWUgdGhlXG4gICAqIFtzdGlja3kgc2V0dGluZ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL3N0aWNreS1zZXR0aW5ncykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSBkYXNoYm9hcmQgY2hhbmdlcyBzdGF0ZSBhbmQgZW1pdHMgYSBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnXG4gICAqIG9iamVjdC4gVGhpcyBvY2N1cnMgd2hlbiB0aWxlcyBjb2xsYXBzZSBvciBleHBhbmQgYW5kIHdoZW4gdXNlcnMgZHJhZyBhbmQgZHJvcFxuICAgKiB0aWxlcyB0byByZWFycmFuZ2UgdGhlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUaWxlRGFzaGJvYXJkQ29uZmlnPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudClcbiAgcHVibGljIGNvbHVtbnM6IFF1ZXJ5TGlzdDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzaW5nbGVDb2x1bW4nLCB7XG4gICAgcmVhZDogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCxcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB0aWxlTW92ZWRSZXBvcnQgPSAnJztcblxuICBwdWJsaWMgbW92ZUluc3RydWN0aW9uc0lkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGxheW91dENsYXNzTmFtZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgbGV0IGxheW91dENsYXNzTmFtZSA9ICcnO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQgPT09ICd4cycgfHwgYnJlYWtwb2ludCA9PT0gJ3NtJykge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lID0gJ3NreS10aWxlLWRhc2hib2FyZC1zaW5nbGUtY29sdW1uJztcbiAgICB9IGVsc2Uge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lID0gJ3NreS10aWxlLWRhc2hib2FyZC1tdWx0aS1jb2x1bW4nO1xuICAgIH1cblxuICAgIGlmIChicmVha3BvaW50ID09PSAneHMnKSB7XG4gICAgICBsYXlvdXRDbGFzc05hbWUgKz0gJyBza3ktdGlsZS1kYXNoYm9hcmQteHMnO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXlvdXRDbGFzc05hbWUgKz0gJyBza3ktdGlsZS1kYXNoYm9hcmQtZ3QteHMnO1xuICAgIH1cblxuICAgIHJldHVybiBsYXlvdXRDbGFzc05hbWU7XG4gIH0pO1xuXG4gICNjb25maWdTZXQgPSBmYWxzZTtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjdmlld1JlYWR5ID0gZmFsc2U7XG4gICN2aWV3UmVhZHlUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gICNfY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJlc291cmNlc1NlcnZpY2U/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgICB0aGlzLm1vdmVJbnN0cnVjdGlvbnNJZCA9XG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkICsgJy1tb3ZlLWluc3RydWN0aW9ucyc7XG5cbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAoY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnKSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQoY29uZmlnKTtcblxuICAgICAgICAvLyBVcGRhdGUgYXJpYSBsaXZlIHJlZ2lvbiB3aXRoIHRpbGUgZHJhZyBpbmZvXG4gICAgICAgIGlmIChjb25maWcubW92ZWRUaWxlICYmIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UpIHtcbiAgICAgICAgICBsZXQgbWVzc2FnZU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgICAgICAgIGlmICh0aGlzLiNicmVha3BvaW50KCkgPT09ICd4cycgfHwgdGhpcy4jYnJlYWtwb2ludCgpID09PSAnc20nKSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgICcxJyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5wb3NpdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcy5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICAgICAgICdza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0JyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS50aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUuY29sdW1uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4ubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbltcbiAgICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbiAtIDFcbiAgICAgICAgICAgICAgXS50aWxlcy5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGlsZU1vdmVkUmVwb3J0ID0gbWVzc2FnZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI3ZpZXdSZWFkeSA9IHRydWU7XG4gICAgdGhpcy4jY2hlY2tSZWFkeSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICNjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3UmVhZHkgJiYgdGhpcy5jb25maWcgJiYgIXRoaXMuI3ZpZXdSZWFkeVRpbWVyKSB7XG4gICAgICB0aGlzLiN2aWV3UmVhZHlUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLiN2aWV3UmVhZHlUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29sdW1ucyAmJiB0aGlzLnNpbmdsZUNvbHVtbikge1xuICAgICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuaW5pdChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgdGhpcy5zaW5nbGVDb2x1bW4sXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzS2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGNvbmZpZykge1xuICA8c3BhbiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBjbGFzcz1cInNreS1hc3Npc3RpdmUtdGV4dFwiPlxuICAgIHt7IHRpbGVNb3ZlZFJlcG9ydCB9fVxuICA8L3NwYW4+XG4gIEBmb3IgKFxuICAgIGNvbHVtbiBvZiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICAgIHRyYWNrIGNvbHVtbjtcbiAgICBsZXQgZmlyc3QgPSAkZmlyc3QsIGxhc3QgPSAkbGFzdFxuICApIHtcbiAgICA8c2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtblxuICAgICAgY2xhc3M9XCJza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LW11bHRpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGktZmlyc3QnOiBmaXJzdCxcbiAgICAgICAgJ3NreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGktbGFzdCc6IGxhc3RcbiAgICAgIH1cIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnZmxleC1iYXNpcyc6IDEwMCAvIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4ubGVuZ3RoICsgJyUnXG4gICAgICB9XCJcbiAgICAvPlxuICB9XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgI3NpbmdsZUNvbHVtblxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1zaW5nbGVcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50IC8+XG59XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule], exports: [SkyTileDashboardComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, providers: [DragulaService], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFZdkUsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBVGxCLHlCQUF5QixhQUd0QyxZQUFZO1lBQ1osK0JBQStCO1lBQy9CLHVCQUF1QixhQUVmLHlCQUF5QjsrR0FFeEIsc0JBQXNCLGFBUnRCLENBQUMsY0FBYyxDQUFDLFlBRXpCLFlBQVk7WUFDWiwrQkFBK0I7WUFDL0IsdUJBQXVCOzsyRkFJZCxzQkFBc0I7a0JBVmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDM0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osK0JBQStCO3dCQUMvQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcblxuaW1wb3J0IHsgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0RyYWd1bGFTZXJ2aWNlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUge31cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardColumnModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFNcEYsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOytHQUE1Qiw0QkFBNEIsWUFIN0IsK0JBQStCLGFBQy9CLCtCQUErQjsrR0FFOUIsNEJBQTRCLFlBSDdCLCtCQUErQjs7MkZBRzlCLDRCQUE0QjtrQkFKeEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlIHt9XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\nimport * as i0 from \"@angular/core\";\nexport class SkyTilesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVW5ELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7K0dBR2IsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7OzJGQUdiLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYiw0QkFBNEI7d0JBQzVCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudE1vZHVsZSB9IGZyb20gJy4vdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbk1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQubW9kdWxlJztcbmltcG9ydCB7IFNreVRpbGVNb2R1bGUgfSBmcm9tICcuL3RpbGUvdGlsZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgU2t5VGlsZUNvbnRlbnRNb2R1bGUsXG4gICAgU2t5VGlsZU1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlLFxuICAgIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVzTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL3NreXV4LXRpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyTileDashboardService","i2","i4","i6","i8","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-tiles.mjs","sources":["../tmp-esm2022/lib/modules/tiles/tile/tile-summary.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title-id-token.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title.component.js","../tmp-esm2022/lib/modules/shared/sky-tiles-resources.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js","../tmp-esm2022/lib/modules/tiles/tile/tile.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile.module.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content-section.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js","../tmp-esm2022/lib/modules/tiles/tiles.module.js","../tmp-esm2022/skyux-tiles.js"],"sourcesContent":["import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's summary.\n */\nexport class SkyTileSummaryComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileSummaryComponent, isStandalone: true, selector: \"sky-tile-summary\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-summary', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlL3RpbGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDRFQ1RwQyxrQkFDQTs7MkZEUWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyBzdW1tYXJ5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICd0aWxlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const SKY_TILE_TITLE_ID = new InjectionToken('SKY_TILE_TITLE_ID');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS1pZC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXRpdGxlLWlkLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELG1CQUFtQixDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNLWV9USUxFX1RJVExFX0lEID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdTS1lfVElMRV9USVRMRV9JRCcsXG4pO1xuIl19","import { Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies content to display in the tile's title.\n */\nexport class SkyTileTitleComponent {\n constructor() {\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileTitleComponent, isStandalone: true, selector: \"sky-tile-title\", ngImport: i0, template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyTrimModule }, { kind: \"directive\", type: i1.λ4, selector: \"[skyTrim]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileTitleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-title', imports: [SkyTrimModule], template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFMUQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBT3FCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDNUQ7OEdBRlkscUJBQXFCO2tHQUFyQixxQkFBcUIsMEVDZGxDLDZPQU1BLDhGRE1ZLGFBQWE7OzJGQUVaLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxnQkFBZ0IsV0FHakIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VHJpbU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU0tZX1RJTEVfVElUTEVfSUQgfSBmcm9tICcuL3RpbGUtdGl0bGUtaWQtdG9rZW4nO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyB0aXRsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtdGl0bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1NreVRyaW1Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlVGl0bGVDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGlsZVRpdGxlSWQgPSBpbmplY3QoU0tZX1RJTEVfVElUTEVfSUQpO1xufVxuIiwiPGgyIGNsYXNzPVwic2t5LXRpbGUtdGl0bGUgc2t5LWZvbnQtaGVhZGluZy0yXCI+XG4gIDxzcGFuIHNreVRyaW0gW2lkXT1cInRpbGVUaXRsZUlkXCI+PG5nLWNvbnRlbnQgLz48L3NwYW5cbiAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgID48bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiPjwvbmctY29udGVudFxuICA+PC9zcGFuPlxuPC9oMj5cbiJdfQ==","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tiles' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\n 'EN-US': {\n skyux_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message: \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message: 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\n },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyTilesResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7UUFDeEQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDNUQsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ2hELDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUNwRCxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3hDLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUM1Qyw0QkFBNEIsRUFBRTtZQUM1QixPQUFPLEVBQ0wseUxBQXlMO1NBQzVMO1FBQ0QsK0JBQStCLEVBQUU7WUFDL0IsT0FBTyxFQUNMLCtFQUErRTtTQUNsRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7UUFDekQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDN0QsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbEQsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ3RELGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7UUFDNUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ2hELDRCQUE0QixFQUFFO1lBQzVCLE9BQU8sRUFDTCwwUUFBMFE7U0FDN1E7UUFDRCwrQkFBK0IsRUFBRTtZQUMvQixPQUFPLEVBQ0wsK0ZBQStGO1NBQ2xHO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsWUFGeEIsYUFBYTsrR0FFWix1QkFBdUIsWUFGeEIsYUFBYTs7MkZBRVosdUJBQXVCO2tCQUhuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IFJlY29yZDxzdHJpbmcsIFNreUxpYlJlc291cmNlcz4gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnRXhwYW5kIG9yIGNvbGxhcHNlIHswfScgfSxcbiAgICBza3l1eF90aWxlX2V4cGFuZF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdFeHBhbmQgb3IgY29sbGFwc2UnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwOiB7IG1lc3NhZ2U6ICd7MH0gaGVscCcgfSxcbiAgICBza3l1eF90aWxlX2hlbHBfZGVmYXVsdDogeyBtZXNzYWdlOiAnSGVscCcgfSxcbiAgICBza3l1eF90aWxlX3NldHRpbmdzOiB7IG1lc3NhZ2U6ICd7MH0gc2V0dGluZ3MnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0OiB7IG1lc3NhZ2U6ICdTZXR0aW5ncycgfSxcbiAgICBza3l1eF90aWxlX21vdmU6IHsgbWVzc2FnZTogJ01vdmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdNb3ZlJyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIFwiV2hlbiBmb2N1cyBpcyBwbGFjZWQgb24gYSB0aWxlJ3MgbW92ZSBidXR0b24sIHVzZSB0aGUgYXJyb3cga2V5cyB0byBtb3ZlIGl0LiBUaGUgdXAgYW5kIGRvd24ga2V5cyBjaGFuZ2UgaXRzIHBvc2l0aW9uIHdpdGhpbiBhIGNvbHVtbi4gVGhlIGxlZnQgYW5kIHJpZ2h0IGtleXMgbW92ZSBpdCBiZXR3ZWVuIGNvbHVtbnMuXCIsXG4gICAgfSxcbiAgICBza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0OiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnezB9IG1vdmVkLiBDdXJyZW50IGNvbHVtbjogezF9IG9mIHsyfS4gQ3VycmVudCBwb3NpdGlvbiBpbiBjb2x1bW46IHszfSBvZiB7NH0nLFxuICAgIH0sXG4gIH0sXG4gICdGUi1DQSc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnQWdyYW5kaXIgb3UgcsOpZHVpcmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FncmFuZGlyIG91IHLDqWR1aXJlJyB9LFxuICAgIHNreXV4X3RpbGVfaGVscDogeyBtZXNzYWdlOiAnezB9IGFpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nczogeyBtZXNzYWdlOiAnezB9IHBhcmFtw6h0cmVzJyB9LFxuICAgIHNreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdDogeyBtZXNzYWdlOiAnUGFyYW3DqHRyZXMnIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlOiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXIgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXInIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9uczoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0xvcnNxdWUgbGUgY3Vyc2V1ciBlc3QgcGxhY8OpIHN1ciBsZSBib3V0b24gZMOpcGxhY2VyIGTigJl1bmUgbW9zYcOvcXVlLCB1dGlsaXNleiBsZXMgdG91Y2hlcyBmbMOpY2jDqWVzIHBvdXIgbGEgZMOpcGxhY2VyLiBMZXMgZmzDqGNoZXMgdmVycyBsZSBoYXV0IGV0IHZlcnMgbGUgYmFzIG1vZGlmaWUgbGEgcG9zaXRpb24gZGFucyB1bmUgY29sb25uZS4gTGVzIGZsw6hjaGVzIGRlIGdhdWNoZSBldCBkZSBkcm9pdGUgbGEgZMOpcGxhY2UgZOKAmXVuZSBjb2xvbm5lIMOgIGzigJlhdXRyZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ3swfcKgZMOpcGxhY8OpKGUpLiBDb2xvbm5lIGFjdHVlbGxlwqA6IHsxfSBkZSB7Mn0uIFBvc2l0aW9uIGFjdHVlbGxlIGRhbnMgbGEgY29sb25uZcKgOiB7M30gZGUgezR9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==","import { DestroyRef, EventEmitter, Injectable, Output, RendererFactory2, computed, effect, inject, } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyDynamicComponentService, SkyMediaQueryService, SkyUIConfigService, } from '@skyux/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { take } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\nlet bagIdIndex = 0;\nexport class SkyTileDashboardService {\n #columns;\n #config;\n #singleColumn;\n #settingsKey;\n #tileComponents;\n #breakpoint;\n #destroyRef;\n #dragulaService;\n #dynamicComponentService;\n #renderer;\n #uiConfigService;\n #mode;\n constructor() {\n /**\n * @internal\n */\n this.configChange = new EventEmitter();\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n this.dashboardInitialized = new EventEmitter();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#destroyRef = inject(DestroyRef);\n this.#dragulaService = inject(DragulaService);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#renderer = inject(RendererFactory2).createRenderer(undefined, null);\n this.#uiConfigService = inject(SkyUIConfigService);\n this.#mode = computed(() => {\n const breakpoint = this.#breakpoint();\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n }, ...(ngDevMode ? [{ debugName: \"#mode\" }] : []));\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n this.#initDragula();\n }\n /**\n * @internal\n */\n init(config, columns, singleColumn, settingsKey) {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config);\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) => column.tiles.map(({ id }) => id)),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n }\n else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n addTileComponent(tile, component) {\n this.#tileComponents = this.#tileComponents || [];\n this.#tileComponents.push(component);\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n tileIsCollapsed(tile) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n return false;\n }\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n setAllTilesCollapsed(isCollapsed) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n setTileCollapsed(tile, isCollapsed) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n }\n /**\n * @internal\n */\n getTileComponentType(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n return undefined;\n }\n /**\n * @internal\n */\n changeColumnMode(mode) {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n }\n else {\n this.#moveTilesToMultiColumn();\n }\n }\n }\n /**\n * @internal\n */\n getTileComponent(tileId) {\n return this.#tileComponents?.find((tileComponent) => tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId);\n }\n /**\n * @internal\n */\n moveTileOnKeyDown(tileCmp, direction, tileDescription) {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n let column;\n let colIndex = 0;\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n }\n else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(this.#config.layout.multiColumn, tileId);\n column = this.#config.layout.multiColumn[colIndex];\n }\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, this.#config.layout.multiColumn);\n }\n }\n else {\n // Get the column element\n let columnEl;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n }\n else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl);\n }\n }\n }\n }\n #moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, multiColumn) {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + operator + 1, newColumn.tiles.length);\n }\n }\n #moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl) {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n else {\n this.#renderer.insertBefore(columnEl, tileComponentInstance.location.nativeElement, this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement);\n }\n }\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + 1, curIndex + operator + 1);\n }\n }\n #emitTileMove(tileDescription, tile, newColumnIndex, newRowIndex) {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n #getTileDescription(tileDescription, tile) {\n return tileDescription || tile.id;\n }\n #getTileId(tile) {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId;\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n if (tileId) {\n return tileId;\n }\n el = el.parentElement;\n }\n }\n return undefined;\n }\n #getTileOrRemoveFromLayout(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter((elem) => elem.id !== layoutTile.id);\n }\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n return undefined;\n }\n #checkReadyAndLoadTiles(columns, singleColumn) {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.dashboardInitialized.emit();\n }\n }\n #loadTiles(config, columns) {\n const layout = config.layout;\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n }\n else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n #loadTileIntoColumn(column, layoutTile) {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n const componentRef = this.#dynamicComponentService.createComponent(componentType, {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n });\n this.addTileComponent(layoutTile, componentRef);\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n #moveTilesToSingleColumn() {\n this.#moveTilesToColumn(this.#singleColumn, this.#config?.layout.singleColumn.tiles);\n }\n #moveTilesToMultiColumn() {\n let layoutColumns = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns = this.#columns?.toArray() ?? [];\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n #moveTilesToColumn(column, layoutTiles) {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n }\n }\n }\n #getConfigForUIState() {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n return this.#config;\n }\n #getSingleColumnLayoutForUIState(config) {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n return config.layout.singleColumn;\n }\n #getMultiColumnLayoutForUIState(config) {\n if (this.#mode() === 'multi') {\n const layoutColumns = [];\n let columns = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n layoutColumns.push(layoutColumn);\n }\n }\n return layoutColumns;\n }\n return config.layout.multiColumn;\n }\n #getTilesInEl(el) {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles = [];\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n return layoutTiles;\n }\n #initDragula() {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle);\n },\n });\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n const config = this.#getConfigForUIState();\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n this.configChange.emit(config);\n }\n });\n }\n #getColumnEl(column) {\n return column?.content?.element.nativeElement.parentNode;\n }\n #findTile(tileId) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n return undefined;\n }\n #findTileColumnIndex(multiColumn, tileId) {\n return multiColumn.findIndex((col) => !!col.tiles?.find((tile) => tile.id === tileId));\n }\n #setUserConfig(config) {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n #checkForNewTiles(config, oldTileIds) {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n const multiColumn = config.layout.multiColumn;\n const singleColumn = config.layout.singleColumn;\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) => column.tiles.map((tile) => tile.id));\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !multiColumnTileIds.includes(tile.id)),\n ]),\n ];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(...multiColumn.map((col) => col.tiles.length));\n const locationToAdd = multiColumn.findIndex((col) => col.tiles.length === smallest);\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !singleColumnTileIds.includes(tile.id)),\n ]),\n ];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n return hasChange;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [], propDecorators: { dashboardInitialized: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVd0QyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQztBQUVuRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFHbkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsUUFBUSxDQUF5RDtJQUNqRSxPQUFPLENBQXFDO0lBQzVDLGFBQWEsQ0FBOEM7SUFDM0QsWUFBWSxDQUFxQjtJQUNqQyxlQUFlLENBQWtDO0lBRXhDLFdBQVcsQ0FFbEI7SUFFTyxXQUFXLENBQXNCO0lBQ2pDLGVBQWUsQ0FBMEI7SUFDekMsd0JBQXdCLENBQXNDO0lBQzlELFNBQVMsQ0FBNEQ7SUFDckUsZ0JBQWdCLENBQThCO0lBRTlDLEtBQUssQ0FJWDtJQUVIO1FBakNBOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVqRTs7V0FFRztRQUVJ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TyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDNUIsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQTF0QlUsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7d0RBZ0JGLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RhYmxlLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVVJQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy1sYXlvdXQtY29sdW1uJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy1sYXlvdXQtdGlsZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnVGlsZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWctdGlsZSc7XG5pbXBvcnQgeyBTa3lUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS90aWxlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Nb2RlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1jb2x1bW4tbW9kZSc7XG5cbmNvbnN0IEFUVFJfVElMRV9JRCA9ICdfc2t5LXRpbGUtZGFzaGJvYXJkLXRpbGUtaWQnO1xuXG5sZXQgYmFnSWRJbmRleCA9IDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBjb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRpbGVEYXNoYm9hcmRDb25maWc+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUgZGFzaGJvYXJkJ3MgaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGRhc2hib2FyZEluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICNjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gICNjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQ7XG4gICNzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICNzZXR0aW5nc0tleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjdGlsZUNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxhbnk+W10gfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2JyZWFrcG9pbnQgPSB0b1NpZ25hbChcbiAgICBpbmplY3QoU2t5TWVkaWFRdWVyeVNlcnZpY2UpLmJyZWFrcG9pbnRDaGFuZ2UsXG4gICk7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNkcmFndWxhU2VydmljZSA9IGluamVjdChEcmFndWxhU2VydmljZSk7XG4gIHJlYWRvbmx5ICNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGluamVjdChTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICByZWFkb25seSAjdWlDb25maWdTZXJ2aWNlID0gaW5qZWN0KFNreVVJQ29uZmlnU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgI21vZGUgPSBjb21wdXRlZDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kZT4oKCkgPT4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNicmVha3BvaW50KCk7XG5cbiAgICByZXR1cm4gYnJlYWtwb2ludCA9PT0gJ3hzJyB8fCBicmVha3BvaW50ID09PSAnc20nID8gJ3NpbmdsZScgOiAnbXVsdGknO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuI21vZGUoKTtcbiAgICAgIHRoaXMuY2hhbmdlQ29sdW1uTW9kZShtb2RlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYmFnSWQgPSBgc2t5LXRpbGUtZGFzaGJvYXJkLWJhZy0keysrYmFnSWRJbmRleH1gO1xuXG4gICAgdGhpcy4jaW5pdERyYWd1bGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBpbml0KFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBjb2x1bW5zPzogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+LFxuICAgIHNpbmdsZUNvbHVtbj86IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc2V0dGluZ3NLZXk/OiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIC8vIENsb25lIHRoaXMgc28gY2hhbmdlcyB0byB0aGUgY29uZmlnIG9iamVjdCBvdXRzaWRlIG9mIHRoaXMgY2xhc3MgZG9uJ3QgbW9kaWZ5XG4gICAgLy8gdGhlIGNvbmZpZyB1c2VkIGluc2lkZSBhbmQgdmljZSB2ZXJzYS5cbiAgICB0aGlzLiNjb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBjb25maWcpIGFzIFNreVRpbGVEYXNoYm9hcmRDb25maWc7XG5cbiAgICAvLyBWZXJpZnkgdGhhdCBhbGwgdGlsZXMgYXJlIGFjY291bnRlZCBmb3IgaW4gdGhlIGxheW91dC5cbiAgICBjb25zdCB0aWxlSWRzID0gW1xuICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgIC4uLnRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4uZmxhdE1hcCgoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi50aWxlcy5tYXAoKHsgaWQgfSkgPT4gaWQpLFxuICAgICAgICApLFxuICAgICAgICAuLi50aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcy5tYXAoKHsgaWQgfSkgPT4gaWQpLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLiNjaGVja0Zvck5ld1RpbGVzKHRoaXMuI2NvbmZpZywgdGlsZUlkcyk7XG5cbiAgICBpZiAoc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuI3NldHRpbmdzS2V5ID0gc2V0dGluZ3NLZXk7XG5cbiAgICAgIHRoaXMuI3VpQ29uZmlnU2VydmljZVxuICAgICAgICAuZ2V0Q29uZmlnKHNldHRpbmdzS2V5LCB0aGlzLiNjb25maWcpXG4gICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNjb25maWcgJiYgdmFsdWUucGVyc2lzdGVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2NvbmZpZy5sYXlvdXQgPSB2YWx1ZS5sYXlvdXQ7XG4gICAgICAgICAgICAgIHRoaXMuI2NoZWNrRm9yTmV3VGlsZXModGhpcy4jY29uZmlnLCB2YWx1ZS50aWxlSWRzKTtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdCh0aGlzLiNjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy4jY2hlY2tSZWFkeUFuZExvYWRUaWxlcyhjb2x1bW5zLCBzaW5nbGVDb2x1bW4pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIC8vIENvbmZpZyBzZXR0aW5nIGtleSBkb2Vzbid0IGV4aXN0IG9yIG90aGVyIGNvbmZpZyBzZXJ2aWNlIGVycm9yXG4gICAgICAgICAgICB0aGlzLiNjaGVja1JlYWR5QW5kTG9hZFRpbGVzKGNvbHVtbnMsIHNpbmdsZUNvbHVtbik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2NoZWNrUmVhZHlBbmRMb2FkVGlsZXMoY29sdW1ucywgc2luZ2xlQ29sdW1uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyB0aWxlIHRvIHRoZSB0aWxlIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIHRpbGUgU3BlY2lmaWVzIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBjb21wb25lbnQgU3BlY2lmaWVzIHRoZSB0aWxlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkVGlsZUNvbXBvbmVudChcbiAgICB0aWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiN0aWxlQ29tcG9uZW50cyA9IHRoaXMuI3RpbGVDb21wb25lbnRzIHx8IFtdO1xuXG4gICAgdGhpcy4jdGlsZUNvbXBvbmVudHMucHVzaChjb21wb25lbnQpO1xuXG4gICAgY29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCwgdGlsZS5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBzcGVjaWZpZWQgdGlsZSBpcyBjb2xsYXBzZWQuXG4gICAqIEBwYXJhbSB0aWxlIFNwZWNpZmllcyB0aGUgdGlsZSBjb21wb25lbnQgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgdGlsZUlzQ29sbGFwc2VkKHRpbGU6IFNreVRpbGVDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0aWxlQ29uZmlnID0gdGhpcy4jZmluZFRpbGUodGhpcy4jZ2V0VGlsZUlkKHRpbGUpKTtcblxuICAgIGlmICh0aWxlQ29uZmlnKSB7XG4gICAgICByZXR1cm4gdGlsZUNvbmZpZy5pc0NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGFwc2VkIHN0YXRlIG9mIGFsbCB0aWxlcy5cbiAgICogQHBhcmFtIGlzQ29sbGFwc2VkIEluZGljYXRlcyB3aGV0aGVyIHRpbGVzIGFyZSBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0QWxsVGlsZXNDb2xsYXBzZWQoaXNDb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jY29uZmlnICYmIHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4pIHtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4pIHtcbiAgICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGNvbHVtbi50aWxlcykge1xuICAgICAgICAgIHRpbGUuaXNDb2xsYXBzZWQgPSBpc0NvbGxhcHNlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIHRoaXMuI2NvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzKSB7XG4gICAgICAgIHRpbGUuaXNDb2xsYXBzZWQgPSBpc0NvbGxhcHNlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuI3NldFVzZXJDb25maWcodGhpcy4jY29uZmlnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuI2NvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGFwc2VkIHN0YXRlIG9mIGEgc3BlY2lmaWVkIHRpbGUuXG4gICAqIEBwYXJhbSB0aWxlIFNwZWNpZmllcyB0aGUgdGlsZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBpc0NvbGxhcHNlZCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGlsZSBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGlsZUNvbGxhcHNlZChcbiAgICB0aWxlOiBTa3lUaWxlQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICAgIGlzQ29sbGFwc2VkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB0aWxlQ29uZmlnID0gdGhpcy4jZmluZFRpbGUodGhpcy4jZ2V0VGlsZUlkKHRpbGUpKTtcblxuICAgIGlmICh0aWxlQ29uZmlnKSB7XG4gICAgICB0aWxlQ29uZmlnLmlzQ29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XG5cbiAgICAgIGlmICh0aGlzLiNzZXR0aW5nc0tleSkge1xuICAgICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKHRoaXMuI2NvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQodGhpcy4jY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0VGlsZUNvbXBvbmVudFR5cGUoXG4gICAgbGF5b3V0VGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUgfCB1bmRlZmluZWQsXG4gICk6IGFueSB7XG4gICAgaWYgKGxheW91dFRpbGUgJiYgdGhpcy4jY29uZmlnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgdGhpcy4jY29uZmlnLnRpbGVzKSB7XG4gICAgICAgIGlmICh0aWxlLmlkID09PSBsYXlvdXRUaWxlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHRpbGUuY29tcG9uZW50VHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlQ29sdW1uTW9kZShtb2RlOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjb25maWcpIHtcbiAgICAgIGlmIChtb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICB0aGlzLiNtb3ZlVGlsZXNUb1NpbmdsZUNvbHVtbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jbW92ZVRpbGVzVG9NdWx0aUNvbHVtbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXRUaWxlQ29tcG9uZW50KHRpbGVJZDogc3RyaW5nKTogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiN0aWxlQ29tcG9uZW50cz8uZmluZChcbiAgICAgICh0aWxlQ29tcG9uZW50KSA9PlxuICAgICAgICB0aWxlQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCkgPT09XG4gICAgICAgIHRpbGVJZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG1vdmVUaWxlT25LZXlEb3duKFxuICAgIHRpbGVDbXA6IFNreVRpbGVDb21wb25lbnQsXG4gICAgZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyxcbiAgICB0aWxlRGVzY3JpcHRpb246IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2NvbmZpZykge1xuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuI21vZGUoKTtcbiAgICAgIGNvbnN0IHRpbGVJZCA9IHRoaXMuI2dldFRpbGVJZCh0aWxlQ21wKTtcbiAgICAgIGNvbnN0IHRpbGUgPSB0aGlzLiNmaW5kVGlsZSh0aWxlSWQpO1xuXG4gICAgICBsZXQgY29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIHwgdW5kZWZpbmVkO1xuICAgICAgbGV0IGNvbEluZGV4ID0gMDtcblxuICAgICAgaWYgKG1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgIGNvbHVtbiA9IHRoaXMuI2NvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICAgIGNvbEluZGV4ID0gdGhpcy4jZmluZFRpbGVDb2x1bW5JbmRleChcbiAgICAgICAgICB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLFxuICAgICAgICAgIHRpbGVJZCxcbiAgICAgICAgKTtcbiAgICAgICAgY29sdW1uID0gdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbltjb2xJbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2x1bW4gJiYgdGlsZSAmJiB0aWxlSWQpIHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8IGRpcmVjdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgIGlmIChtb2RlID09PSAnbXVsdGknKSB7XG4gICAgICAgICAgICB0aGlzLiNtb3ZlVGlsZUFycm93TGVmdFJpZ2h0KFxuICAgICAgICAgICAgICB0aWxlLFxuICAgICAgICAgICAgICB0aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgY29sSW5kZXgsXG4gICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEdldCB0aGUgY29sdW1uIGVsZW1lbnRcbiAgICAgICAgICBsZXQgY29sdW1uRWw6IEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKG1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjb2x1bW5FbCA9IHRoaXMuI2dldENvbHVtbkVsKHRoaXMuI3NpbmdsZUNvbHVtbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbHVtbkVsID0gdGhpcy4jZ2V0Q29sdW1uRWwodGhpcy4jY29sdW1ucz8udG9BcnJheSgpW2NvbEluZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI21vdmVUaWxlQXJyb3dVcERvd24oXG4gICAgICAgICAgICB0aWxlLFxuICAgICAgICAgICAgdGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgY29sSW5kZXgsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI21vdmVUaWxlQXJyb3dMZWZ0UmlnaHQoXG4gICAgdGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUsXG4gICAgdGlsZURlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGNvbEluZGV4OiBudW1iZXIsXG4gICAgY29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uLFxuICAgIG11bHRpQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyAtMSA6IDE7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gbXVsdGlDb2x1bW5bY29sSW5kZXggKyBvcGVyYXRvcl07XG5cbiAgICBpZiAobmV3Q29sdW1uKSB7XG4gICAgICAvLyBNb3ZlIHRoZSB0aWxlIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICAgIG5ld0NvbHVtbi50aWxlcy5wdXNoKHRpbGUpO1xuICAgICAgY29sdW1uLnRpbGVzID0gY29sdW1uLnRpbGVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gdGlsZSk7XG4gICAgICB0aGlzLiNtb3ZlVGlsZXNUb0NvbHVtbih0aGlzLiNjb2x1bW5zPy50b0FycmF5KClbY29sSW5kZXggKyBvcGVyYXRvcl0sIFtcbiAgICAgICAgdGlsZSxcbiAgICAgIF0pO1xuXG4gICAgICAvLyBSZXBvcnQgdGhlIGNoYW5nZSBpbiBjb25maWd1cmF0aW9uXG4gICAgICB0aGlzLiNlbWl0VGlsZU1vdmUoXG4gICAgICAgIHRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgdGlsZSxcbiAgICAgICAgY29sSW5kZXggKyBvcGVyYXRvciArIDEsXG4gICAgICAgIG5ld0NvbHVtbi50aWxlcy5sZW5ndGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlVGlsZUFycm93VXBEb3duKFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyxcbiAgICBjb2xJbmRleDogbnVtYmVyLFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbixcbiAgICBjb2x1bW5FbDogRWxlbWVudCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBkaXJlY3Rpb24gPT09ICd1cCcgPyAtMSA6IDE7XG4gICAgY29uc3QgY3VySW5kZXggPSBjb2x1bW4udGlsZXMuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUuaWQgPT09IHRpbGUuaWQpO1xuICAgIGNvbnN0IHRpbGVDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuZ2V0VGlsZUNvbXBvbmVudCh0aWxlLmlkKTtcblxuICAgIGlmICh0aWxlQ29tcG9uZW50SW5zdGFuY2UgJiYgY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdKSB7XG4gICAgICBjb25zdCB0ZW1wID0gY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdO1xuICAgICAgY29sdW1uLnRpbGVzW2N1ckluZGV4ICsgb3BlcmF0b3JdID0gdGlsZTtcbiAgICAgIGNvbHVtbi50aWxlc1tjdXJJbmRleF0gPSB0ZW1wO1xuXG4gICAgICBpZiAoY29sdW1uRWwpIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgdGlsZSBlbGVtZW50IGluIHRoZSBkb2N1bWVudFxuICAgICAgICBpZiAoY3VySW5kZXggKyBvcGVyYXRvciA9PT0gY29sdW1uLnRpbGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgICAgICAgIGNvbHVtbkVsLFxuICAgICAgICAgICAgdGlsZUNvbXBvbmVudEluc3RhbmNlLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICAgIHRpbGVDb21wb25lbnRJbnN0YW5jZS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy5nZXRUaWxlQ29tcG9uZW50KGNvbHVtbi50aWxlc1tjdXJJbmRleCArIG9wZXJhdG9yICsgMV0uaWQpXG4gICAgICAgICAgICAgID8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9ydCB0aGUgY2hhbmdlIGluIGNvbmZpZ3VyYXRpb25cbiAgICAgIHRoaXMuI2VtaXRUaWxlTW92ZShcbiAgICAgICAgdGlsZURlc2NyaXB0aW9uLFxuICAgICAgICB0aWxlLFxuICAgICAgICBjb2xJbmRleCArIDEsXG4gICAgICAgIGN1ckluZGV4ICsgb3BlcmF0b3IgKyAxLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFRpbGVNb3ZlKFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICAgIG5ld0NvbHVtbkluZGV4OiBudW1iZXIsXG4gICAgbmV3Um93SW5kZXg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcmVwb3J0Q29uZmlnID0gdGhpcy4jZ2V0Q29uZmlnRm9yVUlTdGF0ZSgpO1xuICAgIGlmIChyZXBvcnRDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLiNzZXR0aW5nc0tleSkge1xuICAgICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKHsgLi4ucmVwb3J0Q29uZmlnIH0pO1xuICAgICAgfVxuICAgICAgcmVwb3J0Q29uZmlnLm1vdmVkVGlsZSA9IHtcbiAgICAgICAgdGlsZURlc2NyaXB0aW9uOiB0aGlzLiNnZXRUaWxlRGVzY3JpcHRpb24odGlsZURlc2NyaXB0aW9uLCB0aWxlKSxcbiAgICAgICAgY29sdW1uOiBuZXdDb2x1bW5JbmRleCxcbiAgICAgICAgcG9zaXRpb246IG5ld1Jvd0luZGV4LFxuICAgICAgfTtcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQocmVwb3J0Q29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAjZ2V0VGlsZURlc2NyaXB0aW9uKFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aWxlRGVzY3JpcHRpb24gfHwgdGlsZS5pZDtcbiAgfVxuXG4gICNnZXRUaWxlSWQodGlsZTogU2t5VGlsZUNvbXBvbmVudCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRpbGUpIHtcbiAgICAgIGxldCBlbCA9IHRpbGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgbGV0IHRpbGVJZDogc3RyaW5nO1xuXG4gICAgICB3aGlsZSAoZWwpIHtcbiAgICAgICAgdGlsZUlkID0gZWwuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCk7XG5cbiAgICAgICAgaWYgKHRpbGVJZCkge1xuICAgICAgICAgIHJldHVybiB0aWxlSWQ7XG4gICAgICAgIH1cblxuICAgICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gICNnZXRUaWxlT3JSZW1vdmVGcm9tTGF5b3V0KFxuICAgIGxheW91dFRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnVGlsZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGxheW91dFRpbGUgJiYgdGhpcy4jY29uZmlnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgdGhpcy4jY29uZmlnLnRpbGVzKSB7XG4gICAgICAgIGlmICh0aWxlLmlkID09PSBsYXlvdXRUaWxlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHRpbGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIGxheW91dCB0aWxlIHdhcyBub3QgZm91bmQgaW4gdGhlIGxpc3Qgb2YgdGlsZXMsIGl0IHdhcyByZW1vdmVkIHNpbmNlIGxhc3QgdGhlIHVzZXIgdXBkYXRlZCBzZXR0aW5nc1xuICAgICAgaWYgKHRoaXMuI2NvbmZpZz8ubGF5b3V0LnNpbmdsZUNvbHVtbikge1xuICAgICAgICB0aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcyA9XG4gICAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW0pID0+IGVsZW0uaWQgIT09IGxheW91dFRpbGUuaWQsXG4gICAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jY29uZmlnPy5sYXlvdXQubXVsdGlDb2x1bW4uZm9yRWFjaCgoZWxlbSkgPT4ge1xuICAgICAgICBlbGVtLnRpbGVzID0gZWxlbS50aWxlcy5maWx0ZXIoKHJlcykgPT4gcmVzLmlkICE9PSBsYXlvdXRUaWxlLmlkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjY2hlY2tSZWFkeUFuZExvYWRUaWxlcyhcbiAgICBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQsXG4gICAgc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiNjb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLiNzaW5nbGVDb2x1bW4gPSBzaW5nbGVDb2x1bW47XG4gICAgaWYgKHRoaXMuI2NvbmZpZyAmJiB0aGlzLiNjb2x1bW5zKSB7XG4gICAgICB0aGlzLiNsb2FkVGlsZXModGhpcy4jY29uZmlnLCB0aGlzLiNjb2x1bW5zLnRvQXJyYXkoKSk7XG4gICAgICB0aGlzLmRhc2hib2FyZEluaXRpYWxpemVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICAjbG9hZFRpbGVzKFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBjb2x1bW5zOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50W10sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGxheW91dCA9IGNvbmZpZy5sYXlvdXQ7XG5cbiAgICBpZiAodGhpcy4jbW9kZSgpID09PSAnc2luZ2xlJykge1xuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMpIHtcbiAgICAgICAgdGhpcy4jbG9hZFRpbGVJbnRvQ29sdW1uKHRoaXMuI3NpbmdsZUNvbHVtbiwgdGlsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gbGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2ldO1xuICAgICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgbGF5b3V0Lm11bHRpQ29sdW1uW2ldLnRpbGVzKSB7XG4gICAgICAgICAgdGhpcy4jbG9hZFRpbGVJbnRvQ29sdW1uKGNvbHVtbiwgdGlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbG9hZFRpbGVJbnRvQ29sdW1uKFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgICBsYXlvdXRUaWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgY29uc3QgdGlsZSA9IHRoaXMuI2dldFRpbGVPclJlbW92ZUZyb21MYXlvdXQobGF5b3V0VGlsZSk7XG5cbiAgICAgIGlmICh0aWxlICYmIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aWxlLmNvbXBvbmVudFR5cGU7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVycyA9IHRpbGUucHJvdmlkZXJzID8/IFtdO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICBjb21wb25lbnRUeXBlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogY29sdW1uLmNvbnRlbnQsXG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBjb2x1bW4uaW5qZWN0b3IsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdza3ktdGlsZS1wYXJlbnQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZGRUaWxlQ29tcG9uZW50KGxheW91dFRpbGUsIGNvbXBvbmVudFJlZik7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBjb21wb25lbnQgaXMgbWFya2VkIGZvciBjaGFuZ2VzIGluIGNhc2UgdGhlIHBhcmVudCBjb21wb25lbnQgdXNlc1xuICAgICAgICAvLyB0aGUgT25QdXNoIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kuXG4gICAgICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbW92ZVRpbGVzVG9TaW5nbGVDb2x1bW4oKTogdm9pZCB7XG4gICAgdGhpcy4jbW92ZVRpbGVzVG9Db2x1bW4oXG4gICAgICB0aGlzLiNzaW5nbGVDb2x1bW4sXG4gICAgICB0aGlzLiNjb25maWc/LmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMsXG4gICAgKTtcbiAgfVxuXG4gICNtb3ZlVGlsZXNUb011bHRpQ29sdW1uKCk6IHZvaWQge1xuICAgIGxldCBsYXlvdXRDb2x1bW5zOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10gPSBbXTtcbiAgICBpZiAodGhpcy4jY29uZmlnKSB7XG4gICAgICBsYXlvdXRDb2x1bW5zID0gdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbjtcbiAgICB9XG4gICAgY29uc3QgY29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudFtdID1cbiAgICAgIHRoaXMuI2NvbHVtbnM/LnRvQXJyYXkoKSA/PyBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBuID0gbGF5b3V0Q29sdW1ucy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgIHRoaXMuI21vdmVUaWxlc1RvQ29sdW1uKGNvbHVtbnNbaV0sIGxheW91dENvbHVtbnNbaV0udGlsZXMpO1xuICAgIH1cbiAgfVxuXG4gICNtb3ZlVGlsZXNUb0NvbHVtbihcbiAgICBjb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQsXG4gICAgbGF5b3V0VGlsZXM6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlW10gfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbkVsID0gdGhpcy4jZ2V0Q29sdW1uRWwoY29sdW1uKTtcbiAgICBpZiAoY29sdW1uRWwgJiYgbGF5b3V0VGlsZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbGF5b3V0VGlsZSBvZiBsYXlvdXRUaWxlcykge1xuICAgICAgICBjb25zdCB0aWxlQ29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLmdldFRpbGVDb21wb25lbnQobGF5b3V0VGlsZS5pZCk7XG4gICAgICAgIGlmICh0aWxlQ29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgICAgICAgIGNvbHVtbkVsLFxuICAgICAgICAgICAgdGlsZUNvbXBvbmVudEluc3RhbmNlLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDb25maWdGb3JVSVN0YXRlKCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLiNjb25maWcpIHtcbiAgICAgIHRoaXMuI2NvbmZpZyA9IHtcbiAgICAgICAgdGlsZXM6IHRoaXMuI2NvbmZpZy50aWxlcyxcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgc2luZ2xlQ29sdW1uOiB0aGlzLiNnZXRTaW5nbGVDb2x1bW5MYXlvdXRGb3JVSVN0YXRlKHRoaXMuI2NvbmZpZyksXG4gICAgICAgICAgbXVsdGlDb2x1bW46IHRoaXMuI2dldE11bHRpQ29sdW1uTGF5b3V0Rm9yVUlTdGF0ZSh0aGlzLiNjb25maWcpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jY29uZmlnO1xuICB9XG5cbiAgI2dldFNpbmdsZUNvbHVtbkxheW91dEZvclVJU3RhdGUoXG4gICAgY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uIHtcbiAgICBpZiAodGhpcy4jbW9kZSgpID09PSAnc2luZ2xlJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGlsZXM6IHRoaXMuI2dldFRpbGVzSW5FbCh0aGlzLiNnZXRDb2x1bW5FbCh0aGlzLiNzaW5nbGVDb2x1bW4pKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uO1xuICB9XG5cbiAgI2dldE11bHRpQ29sdW1uTGF5b3V0Rm9yVUlTdGF0ZShcbiAgICBjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcsXG4gICk6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSB7XG4gICAgaWYgKHRoaXMuI21vZGUoKSA9PT0gJ211bHRpJykge1xuICAgICAgY29uc3QgbGF5b3V0Q29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdID0gW107XG4gICAgICBsZXQgY29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudFtdID0gW107XG4gICAgICBpZiAodGhpcy4jY29sdW1ucykge1xuICAgICAgICBjb2x1bW5zID0gdGhpcy4jY29sdW1ucz8udG9BcnJheSgpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmIChjb2x1bW4gIT09IHRoaXMuI3NpbmdsZUNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IGxheW91dENvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiA9IHtcbiAgICAgICAgICAgIHRpbGVzOiB0aGlzLiNnZXRUaWxlc0luRWwodGhpcy4jZ2V0Q29sdW1uRWwoY29sdW1uKSksXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGxheW91dENvbHVtbnMucHVzaChsYXlvdXRDb2x1bW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsYXlvdXRDb2x1bW5zO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICB9XG5cbiAgI2dldFRpbGVzSW5FbChlbDogRWxlbWVudCB8IHVuZGVmaW5lZCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlW10ge1xuICAgIGNvbnN0IHRpbGVFbHMgPSBlbD8ucXVlcnlTZWxlY3RvckFsbCgnWycgKyBBVFRSX1RJTEVfSUQgKyAnXScpO1xuICAgIGNvbnN0IGxheW91dFRpbGVzOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZVtdID0gW107XG5cbiAgICBpZiAodGlsZUVscykge1xuICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSB0aWxlRWxzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBjb25zdCB0aWxlRWwgPSB0aWxlRWxzW2ldO1xuICAgICAgICBjb25zdCB0aWxlSWQgPSB0aWxlRWwuZ2V0QXR0cmlidXRlKEFUVFJfVElMRV9JRCk7XG4gICAgICAgIGNvbnN0IHRpbGUgPSB0aGlzLiNmaW5kVGlsZSh0aWxlSWQpO1xuXG4gICAgICAgIGlmICh0aWxlKSB7XG4gICAgICAgICAgbGF5b3V0VGlsZXMucHVzaCh0aWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYXlvdXRUaWxlcztcbiAgfVxuXG4gICNpbml0RHJhZ3VsYSgpOiB2b2lkIHtcbiAgICB0aGlzLiNkcmFndWxhU2VydmljZS5jcmVhdGVHcm91cCh0aGlzLmJhZ0lkLCB7XG4gICAgICBtb3ZlczogKGVsLCBjb250YWluZXIsIGhhbmRsZSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlbD8ucXVlcnlTZWxlY3RvcignLnNreS10aWxlLWdyYWItaGFuZGxlJyk7XG4gICAgICAgIHJldHVybiAhIXRhcmdldCAmJiB0YXJnZXQuY29udGFpbnMoaGFuZGxlISk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcm9wKHRoaXMuYmFnSWQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy4jZ2V0Q29uZmlnRm9yVUlTdGF0ZSgpO1xuXG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuI3NldFVzZXJDb25maWcoY29uZmlnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2dldENvbHVtbkVsKFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgKTogRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNvbHVtbj8uY29udGVudD8uZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gIH1cblxuICAjZmluZFRpbGUoXG4gICAgdGlsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuI2NvbmZpZyAmJiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICAgIGlmIChjb2x1bW4udGlsZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRpbGUgb2YgY29sdW1uLnRpbGVzKSB7XG4gICAgICAgICAgICBpZiAodGlsZS5pZCA9PT0gdGlsZUlkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZmluZFRpbGVDb2x1bW5JbmRleChcbiAgICBtdWx0aUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdLFxuICAgIHRpbGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBudW1iZXIge1xuICAgIHJldHVybiBtdWx0aUNvbHVtbi5maW5kSW5kZXgoXG4gICAgICAoY29sKSA9PiAhIWNvbC50aWxlcz8uZmluZCgodGlsZSkgPT4gdGlsZS5pZCA9PT0gdGlsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgI3NldFVzZXJDb25maWcoY29uZmlnPzogU2t5VGlsZURhc2hib2FyZENvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWcgJiYgdGhpcy4jc2V0dGluZ3NLZXkpXG4gICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLnNldENvbmZpZyh0aGlzLiNzZXR0aW5nc0tleSwge1xuICAgICAgICAgIGxheW91dDogY29uZmlnLmxheW91dCxcbiAgICAgICAgICBwZXJzaXN0ZWQ6IHRydWUsXG4gICAgICAgICAgdGlsZUlkczogY29uZmlnLnRpbGVzLm1hcCgoZWxlbSkgPT4gZWxlbS5pZCksXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgdGlsZSBkYXNoYm9hcmQgc2V0dGluZ3MuJyk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgfVxuXG4gICNjaGVja0Zvck5ld1RpbGVzKFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgICBvbGRUaWxlSWRzOiBzdHJpbmdbXSxcbiAgKTogYm9vbGVhbiB7XG4gICAgLy8gR2V0IGEgbGlzdCBvZiB0aWxlcyB0aGF0IGFyZSBpbiB0aGUgY29uZmlnJ3MgZGVmYXVsdCBsaXN0IGJ1dCBub3QgaW4gdGhlIHVzZXIncyBzZXR0aW5nc1xuICAgIGNvbnN0IG5ld1RpbGVzID0gY29uZmlnLnRpbGVzLmZpbHRlcigoeyBpZCB9KSA9PiAhb2xkVGlsZUlkcy5pbmNsdWRlcyhpZCkpO1xuICAgIGxldCBoYXNDaGFuZ2UgPSBuZXdUaWxlcy5sZW5ndGggPiAwO1xuXG4gICAgY29uc3QgbXVsdGlDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSB8IHVuZGVmaW5lZCA9XG4gICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICAgIGNvbnN0IHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiB8IHVuZGVmaW5lZCA9XG4gICAgICBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbjtcblxuICAgIC8vIEFwcGVuZCBuZXcgdGlsZXMgdG8gdGhlIGVuZCBvZiB0aGUgbGF5b3V0c1xuICAgIGlmIChtdWx0aUNvbHVtbikge1xuICAgICAgY29uc3QgbXVsdGlDb2x1bW5UaWxlSWRzID0gbXVsdGlDb2x1bW4uZmxhdE1hcCgoY29sdW1uKSA9PlxuICAgICAgICBjb2x1bW4udGlsZXMubWFwKCh0aWxlKSA9PiB0aWxlLmlkKSxcbiAgICAgICk7XG4gICAgICBjb25zdCBuZXdNdWx0aUNvbHVtblRpbGVzID0gW1xuICAgICAgICAuLi5uZXcgU2V0KFtcbiAgICAgICAgICAuLi5uZXdUaWxlcyxcbiAgICAgICAgICAuLi5jb25maWcudGlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHRpbGUpID0+ICFtdWx0aUNvbHVtblRpbGVJZHMuaW5jbHVkZXModGlsZS5pZCksXG4gICAgICAgICAgKSxcbiAgICAgICAgXSksXG4gICAgICBdIGFzIFNreVRpbGVEYXNoYm9hcmRDb25maWdUaWxlW107XG4gICAgICBuZXdNdWx0aUNvbHVtblRpbGVzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgICAgY29uc3Qgc21hbGxlc3QgPSBNYXRoLm1pbihcbiAgICAgICAgICAuLi5tdWx0aUNvbHVtbi5tYXAoKGNvbCkgPT4gY29sLnRpbGVzLmxlbmd0aCksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uVG9BZGQgPSBtdWx0aUNvbHVtbi5maW5kSW5kZXgoXG4gICAgICAgICAgKGNvbCkgPT4gY29sLnRpbGVzLmxlbmd0aCA9PT0gc21hbGxlc3QsXG4gICAgICAgICk7XG4gICAgICAgIG11bHRpQ29sdW1uW2xvY2F0aW9uVG9BZGRdLnRpbGVzLnB1c2goe1xuICAgICAgICAgIGlkOiBlbGVtLmlkLFxuICAgICAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc2luZ2xlQ29sdW1uKSB7XG4gICAgICBjb25zdCBzaW5nbGVDb2x1bW5UaWxlSWRzID0gc2luZ2xlQ29sdW1uLnRpbGVzLm1hcCgodGlsZSkgPT4gdGlsZS5pZCk7XG4gICAgICBjb25zdCBuZXdTaW5nbGVDb2x1bW5UaWxlcyA9IFtcbiAgICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgICAgLi4ubmV3VGlsZXMsXG4gICAgICAgICAgLi4uY29uZmlnLnRpbGVzLmZpbHRlcihcbiAgICAgICAgICAgICh0aWxlKSA9PiAhc2luZ2xlQ29sdW1uVGlsZUlkcy5pbmNsdWRlcyh0aWxlLmlkKSxcbiAgICAgICAgICApLFxuICAgICAgICBdKSxcbiAgICAgIF0gYXMgU2t5VGlsZURhc2hib2FyZENvbmZpZ1RpbGVbXTtcbiAgICAgIG5ld1NpbmdsZUNvbHVtblRpbGVzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgICAgc2luZ2xlQ29sdW1uLnRpbGVzLnB1c2goeyBpZDogZWxlbS5pZCwgaXNDb2xsYXBzZWQ6IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2luZ2xlQ29sdW1uPy50aWxlcy5mb3JFYWNoKCh0aWxlKSA9PiB7XG4gICAgICBoYXNDaGFuZ2UgfHw9ICF0aGlzLiNnZXRUaWxlT3JSZW1vdmVGcm9tTGF5b3V0KHRpbGUpO1xuICAgIH0pO1xuXG4gICAgbXVsdGlDb2x1bW4/LmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29sdW1uLnRpbGVzLmZvckVhY2goKHRpbGUpID0+IHtcbiAgICAgICAgaGFzQ2hhbmdlIHx8PSAhdGhpcy4jZ2V0VGlsZU9yUmVtb3ZlRnJvbUxheW91dCh0aWxlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhhc0NoYW5nZTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Optional, Output, ViewChild, inject, } from '@angular/core';\nimport { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@skyux/indicators\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/icon\";\nimport * as i6 from \"@skyux/core\";\nimport * as i7 from \"@skyux/theme\";\nimport * as i8 from \"@skyux/i18n\";\n/**\n * Provides a common look-and-feel for tab content.\n */\nexport class SkyTileComponent {\n get isCollapsed() {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n return this.#_isCollapsed;\n }\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n set isCollapsed(value) {\n this.#_isCollapsed = !!value;\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n #changeDetector;\n #dashboardService;\n #ngUnsubscribe;\n #_isCollapsed;\n #logSvc;\n constructor(elementRef, changeDetector, dashboardService) {\n this.elementRef = elementRef;\n /**\n * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n this.showSettings = true;\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.showHelp = true;\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n this.settingsClick = new EventEmitter();\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n this.isCollapsedChange = new EventEmitter();\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.helpClick = new EventEmitter();\n this.isInDashboardColumn = false;\n this.#ngUnsubscribe = new Subject();\n this.#_isCollapsed = false;\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n this.#logSvc = inject(SkyLogService);\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n ngOnChanges(changes) {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n settingsButtonClicked() {\n this.settingsClick.emit(undefined);\n }\n /**\n * @deprecated\n */\n helpButtonClicked() {\n this.helpClick.emit(undefined);\n }\n get hasSettings() {\n return this.settingsClick.observed && this.showSettings;\n }\n /**\n * @deprecated\n */\n get hasHelp() {\n return this.helpClick.observed && this.showHelp;\n }\n titleClick(evt) {\n const targetEl = evt.target;\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n chevronDirectionChange(direction) {\n this.isCollapsed = direction === 'down';\n }\n moveTile(event) {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService) {\n const direction = event.key.toLowerCase().replace('arrow', '');\n this.#dashboardService.moveTileOnKeyDown(this, direction, this.title?.nativeElement.innerText);\n this.#focusHandle();\n }\n }\n #focusHandle() {\n this.grabHandle?.nativeElement.focus();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyTileComponent, isStandalone: true, selector: \"sky-tile\", inputs: { helpKey: \"helpKey\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", showSettings: \"showSettings\", showHelp: \"showHelp\", tileName: \"tileName\", isCollapsed: \"isCollapsed\" }, outputs: { settingsClick: \"settingsClick\", isCollapsedChange: \"isCollapsedChange\", helpClick: \"helpClick\" }, providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], queries: [{ propertyName: \"titleRef\", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: \"grabHandle\", first: true, predicate: [\"grabHandle\"], descendants: true, read: ElementRef }, { propertyName: \"title\", first: true, predicate: [\"titleContainer\"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-display-3\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyChevronModule }, { kind: \"component\", type: i3.λ2, selector: \"sky-chevron\", inputs: [\"ariaControls\", \"ariaLabel\", \"direction\", \"disabled\"], outputs: [\"directionChange\"] }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i7.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"directive\", type: i7.λ3, selector: \"[skyThemeIf]\", inputs: [\"skyThemeIf\"] }, { kind: \"ngmodule\", type: SkyTilesResourcesModule }, { kind: \"pipe\", type: i8.SkyLibResourcesPipe, name: \"skyLibResources\" }], animations: [skyAnimationSlide] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile', animations: [skyAnimationSlide], imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ], providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-display-3\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyTileDashboardService, decorators: [{\n type: Optional\n }] }], propDecorators: { helpKey: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], showSettings: [{\n type: Input\n }], showHelp: [{\n type: Input\n }], tileName: [{\n type: Input\n }], settingsClick: [{\n type: Output\n }], isCollapsedChange: [{\n type: Output\n }], helpClick: [{\n type: Output\n }], isCollapsed: [{\n type: Input\n }], grabHandle: [{\n type: ViewChild,\n args: ['grabHandle', {\n read: ElementRef,\n static: false,\n }]\n }], title: [{\n type: ViewChild,\n args: ['titleContainer', {\n read: ElementRef,\n static: false,\n }]\n }], titleRef: [{\n type: ContentChild,\n args: [SkyTileTitleComponent, { read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7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LENBQUMsQ0FBQztnQ0FDdkMsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ2hDLENBQUM7eUJBQ0Y7cUJBQ0Y7OzBCQStIRSxRQUFRO3lDQXRISixPQUFPO3NCQURiLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixLQUFLO2dCQVVDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFRQSxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBU0EsU0FBUztzQkFEZixNQUFNO2dCQWlCSSxXQUFXO3NCQURyQixLQUFLO2dCQW1CQyxVQUFVO3NCQUpoQixTQUFTO3VCQUFDLFlBQVksRUFBRTt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkO2dCQU9NLEtBQUs7c0JBSlgsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkO2dCQUlTLFFBQVE7c0JBRGpCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBza3lBbmltYXRpb25TbGlkZSB9IGZyb20gJ0Bza3l1eC9hbmltYXRpb25zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lJZFNlcnZpY2UsIFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lDaGV2cm9uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS10aWxlcy1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNLWV9USUxFX1RJVExFX0lEIH0gZnJvbSAnLi90aWxlLXRpdGxlLWlkLXRva2VuJztcbmltcG9ydCB7IFNreVRpbGVUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS10aXRsZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgY29tbW9uIGxvb2stYW5kLWZlZWwgZm9yIHRhYiBjb250ZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZScsXG4gIHN0eWxlVXJsczogWycuL3RpbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUNoZXZyb25Nb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICAgIFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfVElMRV9USVRMRV9JRCxcbiAgICAgIHVzZUZhY3RvcnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaWRTZXJ2aWNlID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gICAgICAgIHJldHVybiBpZFNlcnZpY2UuZ2VuZXJhdGVJZCgpO1xuICAgICAgfSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgdGlsZU5hbWVgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSBidXR0b24gaXNcbiAgICogYWRkZWQgdG8gdGhlIHRpbGUgaGVhZGVyLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGB0aWxlTmFtZWAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGB0aWxlTmFtZWAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgdGlsZSBoZWFkZXIuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGB0aWxlTmFtZWAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBzZXR0aW5ncyBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYHNldHRpbmdzQ2xpY2tgIGV2ZW50LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NldHRpbmdzID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYGhlbHBDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGRlcHJlY2F0ZWQgU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0hlbHAgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHRpbGUgdGhhdCBpcyBhdmFpbGFibGUgdG8gdGhlIHRpbGUgY29udHJvbHMgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBzdWNoIGFzIGFjY2Vzc2liaWxpdHkgYW5kIGluc3RydW1lbnRhdGlvbi4gVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGhlIGhlbHAsIGV4cGFuZC9jb2xsYXBzZSwgc2V0dGluZ3MsIGFuZCBkcmFnIGhhbmRsZSBidXR0b25zIHRvIFtzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGUgdGlsZSBuYW1lIGlzIFwiQ29uc3RpdHVlbnRzLFwiIHRoZSBoZWxwIGlucHV0J3MgYGFyaWEtbGFiZWxgIGlzIFwiQ29uc3RpdHVlbnRzIGhlbHBcIiBhbmQgdGhlIGRyYWcgaGFuZGxlJ3MgYGFyaWEtbGFiZWxgIGlzIFwiTW92ZSBDb25zdGl0dWVudHMuXCIgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqIEBkZXByZWNhdGVkIFNldCB0aGUgYGhlbHBLZXlgIG9yIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlucHV0cyBpbnN0ZWFkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBoZWxwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgY29uZmlnQ29sbGFwc2VkU3RhdGUgPSB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLnRpbGVJc0NvbGxhcHNlZCh0aGlzKTtcbiAgICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9IGNvbmZpZ0NvbGxhcHNlZFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNfaXNDb2xsYXBzZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGlsZSBpcyBpbiBhIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0VGlsZUNvbGxhcHNlZCh0aGlzLCB0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHRoaXMuaXNDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0luRGFzaGJvYXJkQ29sdW1uID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZ3JhYkhhbmRsZScsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHRpdGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5VGlsZVRpdGxlQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJvdGVjdGVkIHRpdGxlUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjX2lzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRpbGVUaXRsZUlkID0gaW5qZWN0KFNLWV9USUxFX1RJVExFX0lEKTtcblxuICByZWFkb25seSAjbG9nU3ZjID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBkYXNoYm9hcmRTZXJ2aWNlPzogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy5pc0luRGFzaGJvYXJkQ29sdW1uID0gISF0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gYCR7dGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzaG93SGVscCddPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy4jbG9nU3ZjLmRlcHJlY2F0ZWQoJ1NreVRpbGVDb21wb25lbnQuc2hvd0hlbHAnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjpcbiAgICAgICAgICAnU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0dGluZ3NCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ3NDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZWQgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzSGVscCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwQ2xpY2sub2JzZXJ2ZWQgJiYgdGhpcy5zaG93SGVscDtcbiAgfVxuXG4gIHB1YmxpYyB0aXRsZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsID0gZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAvLyBEb24ndCBleHBhbmQvY29sbGFwc2UgaWYgdGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgIGlmICh0YXJnZXRFbD8uY2xvc2VzdCgnc2t5LWhlbHAtaW5saW5lJykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hldnJvbkRpcmVjdGlvbkNoYW5nZShkaXJlY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBkaXJlY3Rpb24gPT09ICdkb3duJztcbiAgfVxuXG4gIHByb3RlY3RlZCBtb3ZlVGlsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXS5pbmNsdWRlcyhldmVudC5rZXkpICYmXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdhcnJvdycsICcnKSBhc1xuICAgICAgICB8ICd1cCdcbiAgICAgICAgfCAnZG93bidcbiAgICAgICAgfCAnbGVmdCdcbiAgICAgICAgfCAncmlnaHQnO1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5tb3ZlVGlsZU9uS2V5RG93bihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICB0aGlzLnRpdGxlPy5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCxcbiAgICAgICk7XG4gICAgICB0aGlzLiNmb2N1c0hhbmRsZSgpO1xuICAgIH1cbiAgfVxuXG4gICNmb2N1c0hhbmRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYWJIYW5kbGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQnOiAnbW9kZXJuJ1xuICB9XCJcbj5cbiAgPGhlYWRlciBjbGFzcz1cInNreS10aWxlLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS1oZWFkZXItY29udGVudFwiIChjbGljayk9XCJ0aXRsZUNsaWNrKCRldmVudClcIj5cbiAgICAgIDxkaXYgI3RpdGxlQ29udGFpbmVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXRpdGxlXCIgLz5cbiAgICAgICAgQGlmICh0aWxlTmFtZSAmJiAoaGVscEtleSB8fCBoZWxwUG9wb3ZlckNvbnRlbnQpKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICAgICAgW2xhYmVsVGV4dF09XCJ0aWxlTmFtZVwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXN1bW1hcnkgc2t5LWZvbnQtZGlzcGxheS0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXN1bW1hcnlcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgQGlmIChoYXNIZWxwKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfaGVscCcgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfaGVscF9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJxdWVzdGlvbi1jaXJjbGVcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNreS1jaGV2cm9uXG4gICAgICAgICAgY2xhc3M9XCJza3ktdGlsZS10b29scy1jb250cm9sXCJcbiAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cInRpbGVDb250ZW50LmlkXCJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfZXhwYW5kJyB8IHNreUxpYlJlc291cmNlczogdGlsZU5hbWUpXG4gICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX2V4cGFuZF9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiaXNDb2xsYXBzZWQgPyAnZG93bicgOiAndXAnXCJcbiAgICAgICAgICAoZGlyZWN0aW9uQ2hhbmdlKT1cImNoZXZyb25EaXJlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAoaGFzU2V0dGluZ3MpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LXRpbGUtc2V0dGluZ3Mgc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LXRpbGUtdG9vbHMtY29udHJvbFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cInNldHRpbmdzXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlzSW5EYXNoYm9hcmRDb2x1bW4pIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAjZ3JhYkhhbmRsZVxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXRpbGUtZ3JhYi1oYW5kbGVcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX21vdmUnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9tb3ZlX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwibW92ZVRpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwicmUtb3JkZXItZG90cy12ZXJ0aWNhbFwiIGljb25TaXplPVwic1wiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPGRpdlxuICAgICN0aWxlQ29udGVudD1cInNreUlkXCJcbiAgICBjbGFzcz1cInNreS10aWxlLWNvbnRlbnRcIlxuICAgIHJvbGU9XCJyZWdpb25cIlxuICAgIHNreUlkXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aWxlTmFtZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIiF0aWxlTmFtZSAmJiB0aXRsZVJlZiA/IHRpbGVUaXRsZUlkIDogdW5kZWZpbmVkXCJcbiAgICBbQHNreUFuaW1hdGlvblNsaWRlXT1cImlzQ29sbGFwc2VkID8gJ3VwJyA6ICdkb3duJ1wiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCIgLz5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLFlBSGQsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLGFBQ2hFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQjsrR0FFL0QsYUFBYSxZQUhkLGdCQUFnQixFQUEyQixxQkFBcUI7OzJGQUcvRCxhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreVRpbGVDb21wb25lbnQsIFNreVRpbGVTdW1tYXJ5Q29tcG9uZW50LCBTa3lUaWxlVGl0bGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5VGlsZUNvbXBvbmVudCwgU2t5VGlsZVN1bW1hcnlDb21wb25lbnQsIFNreVRpbGVUaXRsZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVNb2R1bGUge31cbiJdfQ==","import { Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\nexport class SkyTileContentSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileContentSectionComponent, isStandalone: true, selector: \"sky-tile-content-section\", ngImport: i0, template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyThemeModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content-section', imports: [SkyThemeModule], template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU5Qzs7R0FFRztBQU9ILE1BQU0sT0FBTyw4QkFBOEI7OEdBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCLG9GQ1ozQyw0RkFHQSxvb0NET1ksY0FBYzs7MkZBRWIsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixXQUczQixDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW5zaWRlIGEgcGFkZGVkIHNlY3Rpb24gb2YgYSBTa3lUaWxlQ29udGVudENvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudC1zZWN0aW9uJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1NreVRoZW1lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRpbGUtY29udGVudC1zZWN0aW9uIHNreS1ib3JkZXItYm90dG9tLXJvd1wiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's body.\n */\nexport class SkyTileContentComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileContentComponent, isStandalone: true, selector: \"sky-tile-content\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC90aWxlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7O0dBRUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0RUNUcEMsa0JBQ0E7OzJGRFFhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSB0aWxlJ3MgYm9keS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAndGlsZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileContentModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileContentModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNbkUsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIckIsdUJBQXVCLEVBQUUsOEJBQThCLGFBQ3ZELHVCQUF1QixFQUFFLDhCQUE4QjsrR0FFdEQsb0JBQW9CLFlBSEksOEJBQThCOzsyRkFHdEQsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDhCQUE4QixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlQ29udGVudENvbXBvbmVudCwgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVDb250ZW50Q29tcG9uZW50LCBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29udGVudE1vZHVsZSB7fVxuIl19","/**\n * The type of message to send to the tile dashboard component.\n */\nexport var SkyTileDashboardMessageType;\n(function (SkyTileDashboardMessageType) {\n /**\n * Expands all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"ExpandAll\"] = 0] = \"ExpandAll\";\n /**\n * Collapses all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"CollapseAll\"] = 1] = \"CollapseAll\";\n})(SkyTileDashboardMessageType || (SkyTileDashboardMessageType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFVWDtBQVZELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdUZBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkZBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQVV0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHR5cGUgb2YgbWVzc2FnZSB0byBzZW5kIHRvIHRoZSB0aWxlIGRhc2hib2FyZCBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBFeHBhbmRzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgRXhwYW5kQWxsID0gMCxcblxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgQ29sbGFwc2VBbGwgPSAxLFxufVxuIl19","import { Component, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { DragulaModule } from 'ng2-dragula';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"ng2-dragula\";\nlet columnIdIndex = 0;\n/**\n * @internal\n */\nexport class SkyTileDashboardColumnComponent {\n #dashboardService;\n constructor(injector, dashboardService) {\n this.injector = injector;\n this.#dashboardService = dashboardService;\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n this.bagId = this.#dashboardService.bagId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [{ token: i0.EnvironmentInjector }, { token: i1.SkyTileDashboardService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyTileDashboardColumnComponent, isStandalone: true, selector: \"sky-tile-dashboard-column\", viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"content\"], descendants: true, read: ViewContainerRef }], hostDirectives: [{ directive: i2.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: DragulaModule }, { kind: \"directive\", type: i3.DragulaDirective, selector: \"[dragula]\", inputs: [\"dragula\", \"dragulaModel\"], outputs: [\"dragulaModelChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard-column', imports: [DragulaModule], hostDirectives: [SkyThemeComponentClassDirective], template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: i1.SkyTileDashboardService }], propDecorators: { content: [{\n type: ViewChild,\n args: ['content', {\n read: ViewContainerRef,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUk1QyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFFdEI7O0dBRUc7QUFRSCxNQUFNLE9BQU8sK0JBQStCO0lBVzFDLGlCQUFpQixDQUEwQjtJQUUzQyxZQUNTLFFBQTZCLEVBQ3BDLGdCQUF5QztRQURsQyxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUdwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQzs4R0F0QlUsK0JBQStCO2tHQUEvQiwrQkFBK0Isb0tBTWxDLGdCQUFnQixrR0M5QjFCLGlHQUdBLDBtRkRrQlksYUFBYTs7MkZBR1osK0JBQStCO2tCQVAzQyxTQUFTOytCQUNFLDJCQUEyQixXQUc1QixDQUFDLGFBQWEsQ0FBQyxrQkFDUixDQUFDLCtCQUErQixDQUFDOzhIQVcxQyxPQUFPO3NCQUpiLFNBQVM7dUJBQUMsU0FBUyxFQUFFO3dCQUNwQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5sZXQgY29sdW1uSWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZC1jb2x1bW4nLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtEcmFndWxhTW9kdWxlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB7XG4gIHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb2x1bW5JZDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7XG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgY29udGVudDogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZDtcblxuICAjZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcblxuICAgIHRoaXMuY29sdW1uSWQgPSBgdGlsZS1kYXNoYm9hcmQtY29sdW1uLSR7Kytjb2x1bW5JZEluZGV4fWA7XG5cbiAgICB0aGlzLmJhZ0lkID0gdGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cIiBbZHJhZ3VsYV09XCJiYWdJZFwiPlxuICA8ZGl2ICNjb250ZW50PjwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, computed, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tile-dashboard.service\";\nimport * as i2 from \"@skyux/i18n\";\nimport * as i3 from \"@skyux/theme\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"../tile-dashboard-column/tile-dashboard-column.component\";\n/**\n * Specifies a container to group multiple tiles.\n */\nexport class SkyTileDashboardComponent {\n #breakpoint;\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n set config(value) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n get config() {\n return this.#_config;\n }\n #configSet;\n #dashboardService;\n #ngUnsubscribe;\n #resourcesService;\n #viewReady;\n #viewReadyTimer;\n #_config;\n constructor(dashboardService, resourcesService) {\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n this.messageStream = new Subject();\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n this.configChange = new EventEmitter();\n this.tileMovedReport = '';\n this.layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n let layoutClassName = '';\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n }\n else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n }\n else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n return layoutClassName;\n }, ...(ngDevMode ? [{ debugName: \"layoutClassName\" }] : []));\n this.#configSet = false;\n this.#ngUnsubscribe = new Subject();\n this.#viewReady = false;\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n this.#dashboardService.configChange.subscribe((config) => {\n this.configChange.emit(config);\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable;\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, '1', '1', config.movedTile.position.toString(), config.layout.singleColumn.tiles.length.toString());\n }\n else {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, config.movedTile.column.toString(), config.layout.multiColumn.length.toString(), config.movedTile.position.toString(), config.layout.multiColumn[config.movedTile.column - 1].tiles.length.toString());\n }\n messageObservable.pipe(take(1)).subscribe((message) => {\n this.tileMovedReport = message;\n });\n }\n });\n }\n ngAfterViewInit() {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message) => {\n this.#handleIncomingMessages(message);\n });\n this.#viewReady = true;\n this.#checkReady();\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkReady() {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(this.config, this.columns, this.singleColumn, this.settingsKey);\n }\n }, 0);\n }\n }\n #handleIncomingMessages(message) {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyTileDashboardComponent, isStandalone: false, selector: \"sky-tile-dashboard\", inputs: { config: \"config\", messageStream: \"messageStream\", settingsKey: \"settingsKey\" }, outputs: { configChange: \"configChange\" }, host: { properties: { \"class\": \"layoutClassName()\" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: \"singleColumn\", first: true, predicate: [\"singleColumn\"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: \"columns\", predicate: SkyTileDashboardColumnComponent, descendants: true }], hostDirectives: [{ directive: i3.SkyThemeComponentClassDirective }], ngImport: i0, template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: i5.SkyTileDashboardColumnComponent, selector: \"sky-tile-dashboard-column\" }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], host: {\n '[class]': 'layoutClassName()',\n }, standalone: false, hostDirectives: [SkyThemeComponentClassDirective], template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.SkyTileDashboardService }, { type: i2.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }], propDecorators: { config: [{\n type: Input\n }], messageStream: [{\n type: Input\n }], settingsKey: [{\n type: Input\n }], configChange: [{\n type: Output\n }], columns: [{\n type: ViewChildren,\n args: [SkyTileDashboardColumnComponent]\n }], singleColumn: [{\n type: ViewChild,\n args: ['singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFJM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFbkU7O0dBRUc7QUFZSCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLFdBQVcsQ0FFbEI7SUFFRjs7O09BR0c7SUFDSCxJQUNXLE1BQU0sQ0FB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QixDQUFDLFFBQzlCO3dCQUNKLFNBQVMsRUFBRSxtQkFBbUI7cUJBQy9CLGNBQ1csS0FBSyxrQkFDRCxDQUFDLCtCQUErQixDQUFDOzswQkE0RjlDLFFBQVE7eUNBaEZBLE1BQU07c0JBRGhCLEtBQUs7Z0JBa0JDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBV0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLE9BQU87c0JBRGIsWUFBWTt1QkFBQywrQkFBK0I7Z0JBT3RDLFlBQVk7c0JBSmxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsK0JBQStCO3dCQUNyQyxNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb25maWcvdGlsZS1kYXNoYm9hcmQtY29uZmlnJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNvbnRhaW5lciB0byBncm91cCBtdWx0aXBsZSB0aWxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtZGFzaGJvYXJkJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5VGlsZURhc2hib2FyZFNlcnZpY2VdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnbGF5b3V0Q2xhc3NOYW1lKCknLFxuICB9LFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHRpbGUgZGFzaGJvYXJkIGJhc2VkIG9uIHRoZSBgU2t5VGlsZURhc2hib2FyZENvbmZpZ2Agb2JqZWN0LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmICF0aGlzLiNjb25maWdTZXQpIHtcbiAgICAgIHRoaXMuI19jb25maWcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NvbmZpZ1NldCA9IHRydWU7XG4gICAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgdGlsZSBkYXNoYm9hcmQuIFRoZSBjb21tYW5kcyBtdXN0IHJlc3BlY3QgdGhlXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5VGlsZURhc2hib2FyZE1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgVUkgQ29uZmlnIFNlcnZpY2UgdG8gcmV0cmlldmUgc3RvcmVkIHNldHRpbmdzXG4gICAqIGZyb20gYSBkYXRhYmFzZS4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHNhdmVzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHVzZXJzXG4gICAqIHRvIHByZXNlcnZlIHRoZSBsYXlvdXQgYW5kIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aWxlIGRhc2hib2FyZHMuIFRoZSBVSSBDb25maWcgU2VydmljZSByZWxpZXMgb24gYGlkYCB2YWx1ZXMgZnJvbSB0aGUgYGNvbmZpZ2AgcHJvcGVydHkgdG8gbWFpbnRhaW4gdXNlciBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIFVJIENvbmZpZyBTZXJ2aWNlLCBzZWUgdGhlXG4gICAqIFtzdGlja3kgc2V0dGluZ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL3N0aWNreS1zZXR0aW5ncykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSBkYXNoYm9hcmQgY2hhbmdlcyBzdGF0ZSBhbmQgZW1pdHMgYSBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnXG4gICAqIG9iamVjdC4gVGhpcyBvY2N1cnMgd2hlbiB0aWxlcyBjb2xsYXBzZSBvciBleHBhbmQgYW5kIHdoZW4gdXNlcnMgZHJhZyBhbmQgZHJvcFxuICAgKiB0aWxlcyB0byByZWFycmFuZ2UgdGhlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUaWxlRGFzaGJvYXJkQ29uZmlnPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudClcbiAgcHVibGljIGNvbHVtbnM6IFF1ZXJ5TGlzdDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzaW5nbGVDb2x1bW4nLCB7XG4gICAgcmVhZDogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCxcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB0aWxlTW92ZWRSZXBvcnQgPSAnJztcblxuICBwdWJsaWMgbW92ZUluc3RydWN0aW9uc0lkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGxheW91dENsYXNzTmFtZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgbGV0IGxheW91dENsYXNzTmFtZSA9ICcnO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQgPT09ICd4cycgfHwgYnJlYWtwb2ludCA9PT0gJ3NtJykge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lID0gJ3NreS10aWxlLWRhc2hib2FyZC1zaW5nbGUtY29sdW1uJztcbiAgICB9IGVsc2Uge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lID0gJ3NreS10aWxlLWRhc2hib2FyZC1tdWx0aS1jb2x1bW4nO1xuICAgIH1cblxuICAgIGlmIChicmVha3BvaW50ID09PSAneHMnKSB7XG4gICAgICBsYXlvdXRDbGFzc05hbWUgKz0gJyBza3ktdGlsZS1kYXNoYm9hcmQteHMnO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXlvdXRDbGFzc05hbWUgKz0gJyBza3ktdGlsZS1kYXNoYm9hcmQtZ3QteHMnO1xuICAgIH1cblxuICAgIHJldHVybiBsYXlvdXRDbGFzc05hbWU7XG4gIH0pO1xuXG4gICNjb25maWdTZXQgPSBmYWxzZTtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjdmlld1JlYWR5ID0gZmFsc2U7XG4gICN2aWV3UmVhZHlUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gICNfY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJlc291cmNlc1NlcnZpY2U/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgICB0aGlzLm1vdmVJbnN0cnVjdGlvbnNJZCA9XG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkICsgJy1tb3ZlLWluc3RydWN0aW9ucyc7XG5cbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAoY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnKSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQoY29uZmlnKTtcblxuICAgICAgICAvLyBVcGRhdGUgYXJpYSBsaXZlIHJlZ2lvbiB3aXRoIHRpbGUgZHJhZyBpbmZvXG4gICAgICAgIGlmIChjb25maWcubW92ZWRUaWxlICYmIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UpIHtcbiAgICAgICAgICBsZXQgbWVzc2FnZU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgICAgICAgIGlmICh0aGlzLiNicmVha3BvaW50KCkgPT09ICd4cycgfHwgdGhpcy4jYnJlYWtwb2ludCgpID09PSAnc20nKSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgICcxJyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5wb3NpdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcy5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICAgICAgICdza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0JyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS50aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUuY29sdW1uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4ubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbltcbiAgICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbiAtIDFcbiAgICAgICAgICAgICAgXS50aWxlcy5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGlsZU1vdmVkUmVwb3J0ID0gbWVzc2FnZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI3ZpZXdSZWFkeSA9IHRydWU7XG4gICAgdGhpcy4jY2hlY2tSZWFkeSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICNjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3UmVhZHkgJiYgdGhpcy5jb25maWcgJiYgIXRoaXMuI3ZpZXdSZWFkeVRpbWVyKSB7XG4gICAgICB0aGlzLiN2aWV3UmVhZHlUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLiN2aWV3UmVhZHlUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29sdW1ucyAmJiB0aGlzLnNpbmdsZUNvbHVtbikge1xuICAgICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuaW5pdChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgdGhpcy5zaW5nbGVDb2x1bW4sXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzS2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGNvbmZpZykge1xuICA8c3BhbiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBjbGFzcz1cInNreS1hc3Npc3RpdmUtdGV4dFwiPlxuICAgIHt7IHRpbGVNb3ZlZFJlcG9ydCB9fVxuICA8L3NwYW4+XG4gIEBmb3IgKFxuICAgIGNvbHVtbiBvZiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uO1xuICAgIHRyYWNrIGNvbHVtbjtcbiAgICBsZXQgZmlyc3QgPSAkZmlyc3QsIGxhc3QgPSAkbGFzdFxuICApIHtcbiAgICA8c2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtblxuICAgICAgY2xhc3M9XCJza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LW11bHRpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGktZmlyc3QnOiBmaXJzdCxcbiAgICAgICAgJ3NreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGktbGFzdCc6IGxhc3RcbiAgICAgIH1cIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnZmxleC1iYXNpcyc6IDEwMCAvIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4ubGVuZ3RoICsgJyUnXG4gICAgICB9XCJcbiAgICAvPlxuICB9XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgI3NpbmdsZUNvbHVtblxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1zaW5nbGVcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50IC8+XG59XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule], exports: [SkyTileDashboardComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, providers: [DragulaService], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFZdkUsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBVGxCLHlCQUF5QixhQUd0QyxZQUFZO1lBQ1osK0JBQStCO1lBQy9CLHVCQUF1QixhQUVmLHlCQUF5QjsrR0FFeEIsc0JBQXNCLGFBUnRCLENBQUMsY0FBYyxDQUFDLFlBRXpCLFlBQVk7WUFDWiwrQkFBK0I7WUFDL0IsdUJBQXVCOzsyRkFJZCxzQkFBc0I7a0JBVmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDM0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osK0JBQStCO3dCQUMvQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcblxuaW1wb3J0IHsgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0RyYWd1bGFTZXJ2aWNlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUge31cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardColumnModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFNcEYsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOytHQUE1Qiw0QkFBNEIsWUFIN0IsK0JBQStCLGFBQy9CLCtCQUErQjsrR0FFOUIsNEJBQTRCLFlBSDdCLCtCQUErQjs7MkZBRzlCLDRCQUE0QjtrQkFKeEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlIHt9XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\nimport * as i0 from \"@angular/core\";\nexport class SkyTilesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyTilesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVW5ELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7K0dBR2IsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7OzJGQUdiLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYiw0QkFBNEI7d0JBQzVCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudE1vZHVsZSB9IGZyb20gJy4vdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbk1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQubW9kdWxlJztcbmltcG9ydCB7IFNreVRpbGVNb2R1bGUgfSBmcm9tICcuL3RpbGUvdGlsZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgU2t5VGlsZUNvbnRlbnRNb2R1bGUsXG4gICAgU2t5VGlsZU1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlLFxuICAgIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVzTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL3NreXV4LXRpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyTileDashboardService","i2","i4","i6","i8","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}