@skyux/tiles 9.20.0 → 9.20.1

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,6 +1,6 @@
1
- import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
1
+ import { Component, EventEmitter, HostBinding, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
2
2
  import { SkyMediaBreakpoints } from '@skyux/core';
3
- import { Subject } from 'rxjs';
3
+ import { Subject, Subscription } from 'rxjs';
4
4
  import { take, takeUntil } from 'rxjs/operators';
5
5
  import { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';
6
6
  import { SkyTileDashboardMessageType } from './tile-dashboard-message-type';
@@ -33,10 +33,12 @@ export class SkyTileDashboardComponent {
33
33
  #dashboardService;
34
34
  #mediaQueryService;
35
35
  #ngUnsubscribe;
36
+ #subscriptions;
36
37
  #resourcesService;
37
38
  #viewReady;
38
39
  #_config;
39
40
  constructor(dashboardService, mediaQueryService, resourcesService) {
41
+ this.layoutClassName = 'sky-tile-dashboard-multi-column sky-tile-dashboard-gt-xs';
40
42
  /**
41
43
  * The observable to send commands to the tile dashboard. The commands must respect the
42
44
  * `SkyTileDashboardMessage` type.
@@ -51,12 +53,28 @@ export class SkyTileDashboardComponent {
51
53
  this.tileMovedReport = '';
52
54
  this.#configSet = false;
53
55
  this.#ngUnsubscribe = new Subject();
56
+ this.#subscriptions = new Subscription();
54
57
  this.#viewReady = false;
55
58
  this.#dashboardService = dashboardService;
56
59
  this.#mediaQueryService = mediaQueryService;
57
60
  this.#resourcesService = resourcesService;
58
61
  this.moveInstructionsId =
59
62
  this.#dashboardService.bagId + '-move-instructions';
63
+ this.#subscriptions.add(this.#mediaQueryService.subscribe((args) => {
64
+ if (args === SkyMediaBreakpoints.xs ||
65
+ args === SkyMediaBreakpoints.sm) {
66
+ this.layoutClassName = 'sky-tile-dashboard-single-column';
67
+ }
68
+ else {
69
+ this.layoutClassName = 'sky-tile-dashboard-multi-column';
70
+ }
71
+ if (args === SkyMediaBreakpoints.xs) {
72
+ this.layoutClassName += ' sky-tile-dashboard-xs';
73
+ }
74
+ else {
75
+ this.layoutClassName += ' sky-tile-dashboard-gt-xs';
76
+ }
77
+ }));
60
78
  this.#dashboardService.configChange.subscribe((config) => {
61
79
  this.configChange.emit(config);
62
80
  // Update aria live region with tile drag info
@@ -87,6 +105,7 @@ export class SkyTileDashboardComponent {
87
105
  ngOnDestroy() {
88
106
  this.#ngUnsubscribe.next();
89
107
  this.#ngUnsubscribe.complete();
108
+ this.#subscriptions.unsubscribe();
90
109
  this.#dashboardService.destroy();
91
110
  }
92
111
  #checkReady() {
@@ -109,14 +128,17 @@ export class SkyTileDashboardComponent {
109
128
  }
110
129
  }
111
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyMediaQueryService }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyTileDashboardComponent, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:block;padding:0}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:none}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single,: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{display:block}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}@media (min-width: 768px){:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host :host-context(.sky-theme-default){padding-top:20px}}:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-md) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-default){padding-top:20px}@media (min-width: 992px){:host{display:flex;padding:0 10px}:host .sky-tile-dashboard-layout-multi{display:block}:host .sky-tile-dashboard-layout-single{display:none}}:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:flex;padding:0 10px}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg) .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-default){background-color:#eeeeef}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}@media (min-width: 768px){.sky-theme-modern :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyTileDashboardComponent, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, host: { properties: { "class": "this.layoutClassName" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-theme-default){padding-top:20px}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:0 10px}: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-default){background-color:#eeeeef}:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
113
132
  }
114
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
115
134
  type: Component,
116
- args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:block;padding:0}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:none}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single,: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{display:block}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}@media (min-width: 768px){:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host :host-context(.sky-theme-default){padding-top:20px}}:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-md) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-default){padding-top:20px}@media (min-width: 992px){:host{display:flex;padding:0 10px}:host .sky-tile-dashboard-layout-multi{display:block}:host .sky-tile-dashboard-layout-single{display:none}}:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:flex;padding:0 10px}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg) .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-default){background-color:#eeeeef}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}@media (min-width: 768px){.sky-theme-modern :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"] }]
135
+ args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-theme-default){padding-top:20px}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:0 10px}: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-default){background-color:#eeeeef}:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"] }]
117
136
  }], ctorParameters: function () { return [{ type: i1.SkyTileDashboardService }, { type: i2.SkyMediaQueryService }, { type: i3.SkyLibResourcesService, decorators: [{
118
137
  type: Optional
119
- }] }]; }, propDecorators: { config: [{
138
+ }] }]; }, propDecorators: { layoutClassName: [{
139
+ type: HostBinding,
140
+ args: ['class']
141
+ }], config: [{
120
142
  type: Input
121
143
  }], messageStream: [{
122
144
  type: Input
@@ -134,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
134
156
  static: false,
135
157
  }]
136
158
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLGFBQWEsQ0FBQztBQUd4RSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFJM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFbkU7O0dBRUc7QUFPSCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDOzs7T0FHRztJQUNILElBQ1csTUFBTSxDQUFDLEtBQXlDO1FBQ3pELElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUks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QU07WUFFUixLQUFLLDJCQUEyQixDQUFDLFdBQVc7Z0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsTUFBTTtTQUNUO0lBQ0gsQ0FBQzs4R0E1SlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsa0xBRnpCLENBQUMsdUJBQXVCLENBQUMsbUhBaUQ1QiwrQkFBK0IsMENBSnpCLCtCQUErQixnREM3RS9DLHFzQkFzQkE7OzJGRFlhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxvQkFBb0IsYUFHbkIsQ0FBQyx1QkFBdUIsQ0FBQzs7MEJBcUVqQyxRQUFROzRDQTdEQSxNQUFNO3NCQURoQixLQUFLO2dCQWtCQyxhQUFhO3NCQURuQixLQUFLO2dCQVdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsWUFBWTtzQkFEbEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLFlBQVk7dUJBQUMsK0JBQStCO2dCQU90QyxZQUFZO3NCQUpsQixTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLCtCQUErQjt3QkFDckMsTUFBTSxFQUFFLEtBQUs7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lNZWRpYUJyZWFrcG9pbnRzLCBTa3lNZWRpYVF1ZXJ5U2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb25maWcvdGlsZS1kYXNoYm9hcmQtY29uZmlnJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNvbnRhaW5lciB0byBncm91cCBtdWx0aXBsZSB0aWxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtZGFzaGJvYXJkJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5VGlsZURhc2hib2FyZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFBvcHVsYXRlcyB0aGUgdGlsZSBkYXNoYm9hcmQgYmFzZWQgb24gdGhlIGBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnYCBvYmplY3QuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb25maWcodmFsdWU6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgIXRoaXMuI2NvbmZpZ1NldCkge1xuICAgICAgdGhpcy4jX2NvbmZpZyA9IHZhbHVlO1xuICAgICAgdGhpcy4jY29uZmlnU2V0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuI2NoZWNrUmVhZHkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb2JzZXJ2YWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSB0aWxlIGRhc2hib2FyZC4gVGhlIGNvbW1hbmRzIG11c3QgcmVzcGVjdCB0aGVcbiAgICogYFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZT4oKTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBrZXkgZm9yIHRoZSBVSSBDb25maWcgU2VydmljZSB0byByZXRyaWV2ZSBzdG9yZWQgc2V0dGluZ3NcbiAgICogZnJvbSBhIGRhdGFiYXNlLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2Ugc2F2ZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdXNlcnNcbiAgICogdG8gcHJlc2VydmUgdGhlIGxheW91dCBhbmQgY29sbGFwc2VkIHN0YXRlIG9mIHRpbGUgZGFzaGJvYXJkcy4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHJlbGllcyBvbiBgaWRgIHZhbHVlcyBmcm9tIHRoZSBgY29uZmlnYCBwcm9wZXJ0eSB0byBtYWludGFpbiB1c2VyIHNldHRpbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgVUkgQ29uZmlnIFNlcnZpY2UsIHNlZSB0aGVcbiAgICogW3N0aWNreSBzZXR0aW5ncyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3Avc3RpY2t5LXNldHRpbmdzKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXR0aW5nc0tleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0aWxlIGRhc2hib2FyZCBjaGFuZ2VzIHN0YXRlIGFuZCBlbWl0cyBhIFNreVRpbGVEYXNoYm9hcmRDb25maWdcbiAgICogb2JqZWN0LiBUaGlzIG9jY3VycyB3aGVuIHRpbGVzIGNvbGxhcHNlIG9yIGV4cGFuZCBhbmQgd2hlbiB1c2VycyBkcmFnIGFuZCBkcm9wXG4gICAqIHRpbGVzIHRvIHJlYXJyYW5nZSB0aGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRpbGVEYXNoYm9hcmRDb25maWc+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50KVxuICBwdWJsaWMgY29sdW1uczogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NpbmdsZUNvbHVtbicsIHtcbiAgICByZWFkOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHRpbGVNb3ZlZFJlcG9ydCA9ICcnO1xuXG4gIHB1YmxpYyBtb3ZlSW5zdHJ1Y3Rpb25zSWQ6IHN0cmluZztcblxuICAjY29uZmlnU2V0ID0gZmFsc2U7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3ZpZXdSZWFkeSA9IGZhbHNlO1xuICAjX2NvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSxcbiAgICBtZWRpYVF1ZXJ5U2VydmljZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcmVzb3VyY2VzU2VydmljZT86IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UgPSBkYXNoYm9hcmRTZXJ2aWNlO1xuICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlID0gbWVkaWFRdWVyeVNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gICAgdGhpcy5tb3ZlSW5zdHJ1Y3Rpb25zSWQgPVxuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZCArICctbW92ZS1pbnN0cnVjdGlvbnMnO1xuXG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFyaWEgbGl2ZSByZWdpb24gd2l0aCB0aWxlIGRyYWcgaW5mb1xuICAgICAgICBpZiAoY29uZmlnLm1vdmVkVGlsZSAmJiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgICAgICAgbGV0IG1lc3NhZ2VPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy54cyB8fFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy5zbVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUgPSB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgIF0udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbGVNb3ZlZFJlcG9ydCA9IG1lc3NhZ2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLiNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiN2aWV3UmVhZHkgPSB0cnVlO1xuICAgIHRoaXMuI2NoZWNrUmVhZHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5kZXN0cm95KCk7XG4gIH1cblxuICAjY2hlY2tSZWFkeSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jdmlld1JlYWR5ICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29sdW1ucyAmJiB0aGlzLnNpbmdsZUNvbHVtbikge1xuICAgICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuaW5pdChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgdGhpcy5zaW5nbGVDb2x1bW4sXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzS2V5LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnXCI+XG4gIDxzcGFuIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGNsYXNzPVwic2t5LWFzc2lzdGl2ZS10ZXh0XCI+XG4gICAge3sgdGlsZU1vdmVkUmVwb3J0IH19XG4gIDwvc3Bhbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5cIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1tdWx0aVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2ZsZXgtYmFzaXMnOiAxMDAgLyBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICAgIH1cIlxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtc2luZ2xlXCJcbiAgICAjc2luZ2xlQ29sdW1uXG4gID5cbiAgPC9za3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFHeEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUkzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7SUFLcEM7OztPQUdHO0lBQ0gsSUFDVyxNQUFNLENBQUMsS0FBeUM7UUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQXdDRCxVQUFVLENBQVM7SUFDbkIsaUJBQWlCLENBQTBCO0lBQzNDLGtCQUFrQixDQUF1QjtJQUN6QyxjQUFjLENBQXVCO0lBQ3JDLGNBQWMsQ0FBc0I7SUFDcEMsaUJBQWlCLENBQXFDO0lBQ3RELFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQXFDO0lBRTdDLFlBQ0UsZ0JBQXlDLEVBQ3pDLGlCQUF1QyxFQUMzQixnQkFBeUM7UUF0RTdDLG9CQUFlLEdBQ3ZCLDBEQUEwRCxDQUFDO1FBbUI3RDs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBWTlEOzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBVzFELG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBSTVCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHbkIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUWpCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0I7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQztRQUV0RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRTtZQUM5RCxJQUNFLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLEtBQUssbUJBQW1CLENBQUMsRUFBRSxFQUMvQjtnQkFDQSxJQUFJLENBQUMsZUFBZSxHQUFHLGtDQUFrQyxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsaUNBQWlDLENBQUM7YUFDMUQ7WUFDRCxJQUFJLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxlQUFlLElBQUksd0JBQXdCLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsSUFBSSwyQkFBMkIsQ0FBQzthQUNyRDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDM0MsQ0FBQyxNQUE4QixFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFL0IsOENBQThDO1lBQzlDLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlDLElBQUksaUJBQXFDLENBQUM7Z0JBQzFDLElBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sS0FBSyxtQkFBbUIsQ0FBQyxFQUFFO29CQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLEVBQUUsRUFDMUQ7b0JBQ0EsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDbEQsaUNBQWlDLEVBQ2pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUNoQyxHQUFHLEVBQ0gsR0FBRyxFQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUNuRCxDQUFDO2lCQUNIO3FCQUFNO29CQUNMLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQ2xELGlDQUFpQyxFQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFDaEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzVCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FDMUIsQ0FBQztpQkFDSDtnQkFDRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7b0JBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLE9BQWdDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN6QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztpQkFDSDtZQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQWdDO1FBQ3RELFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQixLQUFLLDJCQUEyQixDQUFDLFNBQVM7Z0JBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkQsTUFBTTtZQUVSLEtBQUssMkJBQTJCLENBQUMsV0FBVztnQkFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzhHQXBMVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw2T0FGekIsQ0FBQyx1QkFBdUIsQ0FBQyxtSEFxRDVCLCtCQUErQiwwQ0FKekIsK0JBQStCLGdEQ2xGL0MscXNCQXNCQTs7MkZEYWEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLHVCQUF1QixDQUFDOzswQkEwRWpDLFFBQVE7NENBdEVELGVBQWU7c0JBRHhCLFdBQVc7dUJBQUMsT0FBTztnQkFTVCxNQUFNO3NCQURoQixLQUFLO2dCQWtCQyxhQUFhO3NCQURuQixLQUFLO2dCQVdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsWUFBWTtzQkFEbEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLFlBQVk7dUJBQUMsK0JBQStCO2dCQU90QyxZQUFZO3NCQUpsQixTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLCtCQUErQjt3QkFDckMsTUFBTSxFQUFFLEtBQUs7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cywgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb25maWcvdGlsZS1kYXNoYm9hcmQtY29uZmlnJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNvbnRhaW5lciB0byBncm91cCBtdWx0aXBsZSB0aWxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtZGFzaGJvYXJkJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5VGlsZURhc2hib2FyZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByb3RlY3RlZCBsYXlvdXRDbGFzc05hbWUgPVxuICAgICdza3ktdGlsZS1kYXNoYm9hcmQtbXVsdGktY29sdW1uIHNreS10aWxlLWRhc2hib2FyZC1ndC14cyc7XG5cbiAgLyoqXG4gICAqIFBvcHVsYXRlcyB0aGUgdGlsZSBkYXNoYm9hcmQgYmFzZWQgb24gdGhlIGBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnYCBvYmplY3QuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb25maWcodmFsdWU6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgIXRoaXMuI2NvbmZpZ1NldCkge1xuICAgICAgdGhpcy4jX2NvbmZpZyA9IHZhbHVlO1xuICAgICAgdGhpcy4jY29uZmlnU2V0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuI2NoZWNrUmVhZHkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb2JzZXJ2YWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSB0aWxlIGRhc2hib2FyZC4gVGhlIGNvbW1hbmRzIG11c3QgcmVzcGVjdCB0aGVcbiAgICogYFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZT4oKTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBrZXkgZm9yIHRoZSBVSSBDb25maWcgU2VydmljZSB0byByZXRyaWV2ZSBzdG9yZWQgc2V0dGluZ3NcbiAgICogZnJvbSBhIGRhdGFiYXNlLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2Ugc2F2ZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdXNlcnNcbiAgICogdG8gcHJlc2VydmUgdGhlIGxheW91dCBhbmQgY29sbGFwc2VkIHN0YXRlIG9mIHRpbGUgZGFzaGJvYXJkcy4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHJlbGllcyBvbiBgaWRgIHZhbHVlcyBmcm9tIHRoZSBgY29uZmlnYCBwcm9wZXJ0eSB0byBtYWludGFpbiB1c2VyIHNldHRpbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgVUkgQ29uZmlnIFNlcnZpY2UsIHNlZSB0aGVcbiAgICogW3N0aWNreSBzZXR0aW5ncyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3Avc3RpY2t5LXNldHRpbmdzKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXR0aW5nc0tleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0aWxlIGRhc2hib2FyZCBjaGFuZ2VzIHN0YXRlIGFuZCBlbWl0cyBhIFNreVRpbGVEYXNoYm9hcmRDb25maWdcbiAgICogb2JqZWN0LiBUaGlzIG9jY3VycyB3aGVuIHRpbGVzIGNvbGxhcHNlIG9yIGV4cGFuZCBhbmQgd2hlbiB1c2VycyBkcmFnIGFuZCBkcm9wXG4gICAqIHRpbGVzIHRvIHJlYXJyYW5nZSB0aGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRpbGVEYXNoYm9hcmRDb25maWc+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50KVxuICBwdWJsaWMgY29sdW1uczogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NpbmdsZUNvbHVtbicsIHtcbiAgICByZWFkOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHRpbGVNb3ZlZFJlcG9ydCA9ICcnO1xuXG4gIHB1YmxpYyBtb3ZlSW5zdHJ1Y3Rpb25zSWQ6IHN0cmluZztcblxuICAjY29uZmlnU2V0ID0gZmFsc2U7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgI3Jlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICN2aWV3UmVhZHkgPSBmYWxzZTtcbiAgI19jb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICAgbWVkaWFRdWVyeVNlcnZpY2U6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJlc291cmNlc1NlcnZpY2U/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZSA9IG1lZGlhUXVlcnlTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UgPSByZXNvdXJjZXNTZXJ2aWNlO1xuICAgIHRoaXMubW92ZUluc3RydWN0aW9uc0lkID1cbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuYmFnSWQgKyAnLW1vdmUtaW5zdHJ1Y3Rpb25zJztcblxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2Uuc3Vic2NyaWJlKChhcmdzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhcmdzID09PSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzIHx8XG4gICAgICAgICAgYXJncyA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy5zbVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmxheW91dENsYXNzTmFtZSA9ICdza3ktdGlsZS1kYXNoYm9hcmQtc2luZ2xlLWNvbHVtbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sYXlvdXRDbGFzc05hbWUgPSAnc2t5LXRpbGUtZGFzaGJvYXJkLW11bHRpLWNvbHVtbic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZ3MgPT09IFNreU1lZGlhQnJlYWtwb2ludHMueHMpIHtcbiAgICAgICAgICB0aGlzLmxheW91dENsYXNzTmFtZSArPSAnIHNreS10aWxlLWRhc2hib2FyZC14cyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sYXlvdXRDbGFzc05hbWUgKz0gJyBza3ktdGlsZS1kYXNoYm9hcmQtZ3QteHMnO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFyaWEgbGl2ZSByZWdpb24gd2l0aCB0aWxlIGRyYWcgaW5mb1xuICAgICAgICBpZiAoY29uZmlnLm1vdmVkVGlsZSAmJiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgICAgICAgbGV0IG1lc3NhZ2VPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy54cyB8fFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy5zbVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUgPSB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgIF0udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbGVNb3ZlZFJlcG9ydCA9IG1lc3NhZ2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLiNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiN2aWV3UmVhZHkgPSB0cnVlO1xuICAgIHRoaXMuI2NoZWNrUmVhZHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgI2NoZWNrUmVhZHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3ZpZXdSZWFkeSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbHVtbnMgJiYgdGhpcy5zaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29sdW1uLFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0tleSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAjaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSk6IHZvaWQge1xuICAgIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5FeHBhbmRBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUuQ29sbGFwc2VBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZ1wiPlxuICA8c3BhbiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBjbGFzcz1cInNreS1hc3Npc3RpdmUtdGV4dFwiPlxuICAgIHt7IHRpbGVNb3ZlZFJlcG9ydCB9fVxuICA8L3NwYW4+XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uXCJcbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGlcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdmbGV4LWJhc2lzJzogMTAwIC8gY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbi5sZW5ndGggKyAnJSdcbiAgICB9XCJcbiAgPlxuICA8L3NreS10aWxlLWRhc2hib2FyZC1jb2x1bW4+XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgY2xhc3M9XCJza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LXNpbmdsZVwiXG4gICAgI3NpbmdsZUNvbHVtblxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCIgW2lkXT1cIm1vdmVJbnN0cnVjdGlvbnNJZFwiPnt7XG4gICAgJ3NreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnMnIHwgc2t5TGliUmVzb3VyY2VzXG4gIH19PC9zcGFuPlxuICA8bmctY29udGVudCAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, NgModule, EventEmitter, inject, Injectable, Output, ElementRef, Optional, Input, ViewChild, ViewContainerRef, ViewChildren } from '@angular/core';
2
+ import { Component, NgModule, EventEmitter, inject, Injectable, Output, ElementRef, Optional, Input, ViewChild, ViewContainerRef, HostBinding, ViewChildren } from '@angular/core';
3
3
  import * as i2 from '@skyux/core';
4
4
  import { SkyTrimModule, SkyDynamicComponentService, SkyMediaQueryService, SkyUIConfigService, SkyMediaBreakpoints, SkyDynamicComponentLocation, SkyIdModule } from '@skyux/core';
5
5
  import * as i4 from '@angular/common';
@@ -9,7 +9,7 @@ import * as i3 from '@skyux/indicators';
9
9
  import { SkyChevronModule, SkyIconModule } from '@skyux/indicators';
10
10
  import * as i5 from '@skyux/theme';
11
11
  import { SkyThemeModule } from '@skyux/theme';
12
- import { Subject } from 'rxjs';
12
+ import { Subject, Subscription } from 'rxjs';
13
13
  import { take, takeUntil } from 'rxjs/operators';
14
14
  import * as i3$1 from '@skyux/i18n';
15
15
  import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
@@ -927,10 +927,12 @@ class SkyTileDashboardComponent {
927
927
  #dashboardService;
928
928
  #mediaQueryService;
929
929
  #ngUnsubscribe;
930
+ #subscriptions;
930
931
  #resourcesService;
931
932
  #viewReady;
932
933
  #_config;
933
934
  constructor(dashboardService, mediaQueryService, resourcesService) {
935
+ this.layoutClassName = 'sky-tile-dashboard-multi-column sky-tile-dashboard-gt-xs';
934
936
  /**
935
937
  * The observable to send commands to the tile dashboard. The commands must respect the
936
938
  * `SkyTileDashboardMessage` type.
@@ -945,12 +947,28 @@ class SkyTileDashboardComponent {
945
947
  this.tileMovedReport = '';
946
948
  this.#configSet = false;
947
949
  this.#ngUnsubscribe = new Subject();
950
+ this.#subscriptions = new Subscription();
948
951
  this.#viewReady = false;
949
952
  this.#dashboardService = dashboardService;
950
953
  this.#mediaQueryService = mediaQueryService;
951
954
  this.#resourcesService = resourcesService;
952
955
  this.moveInstructionsId =
953
956
  this.#dashboardService.bagId + '-move-instructions';
957
+ this.#subscriptions.add(this.#mediaQueryService.subscribe((args) => {
958
+ if (args === SkyMediaBreakpoints.xs ||
959
+ args === SkyMediaBreakpoints.sm) {
960
+ this.layoutClassName = 'sky-tile-dashboard-single-column';
961
+ }
962
+ else {
963
+ this.layoutClassName = 'sky-tile-dashboard-multi-column';
964
+ }
965
+ if (args === SkyMediaBreakpoints.xs) {
966
+ this.layoutClassName += ' sky-tile-dashboard-xs';
967
+ }
968
+ else {
969
+ this.layoutClassName += ' sky-tile-dashboard-gt-xs';
970
+ }
971
+ }));
954
972
  this.#dashboardService.configChange.subscribe((config) => {
955
973
  this.configChange.emit(config);
956
974
  // Update aria live region with tile drag info
@@ -981,6 +999,7 @@ class SkyTileDashboardComponent {
981
999
  ngOnDestroy() {
982
1000
  this.#ngUnsubscribe.next();
983
1001
  this.#ngUnsubscribe.complete();
1002
+ this.#subscriptions.unsubscribe();
984
1003
  this.#dashboardService.destroy();
985
1004
  }
986
1005
  #checkReady() {
@@ -1003,14 +1022,17 @@ class SkyTileDashboardComponent {
1003
1022
  }
1004
1023
  }
1005
1024
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: SkyTileDashboardService }, { token: i2.SkyMediaQueryService }, { token: i3$1.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1006
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyTileDashboardComponent, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:block;padding:0}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:none}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single,: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{display:block}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}@media (min-width: 768px){:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host :host-context(.sky-theme-default){padding-top:20px}}:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-md) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-default){padding-top:20px}@media (min-width: 992px){:host{display:flex;padding:0 10px}:host .sky-tile-dashboard-layout-multi{display:block}:host .sky-tile-dashboard-layout-single{display:none}}:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:flex;padding:0 10px}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg) .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-default){background-color:#eeeeef}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}@media (min-width: 768px){.sky-theme-modern :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
1025
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyTileDashboardComponent, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, host: { properties: { "class": "this.layoutClassName" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-theme-default){padding-top:20px}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:0 10px}: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-default){background-color:#eeeeef}:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
1007
1026
  }
1008
1027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
1009
1028
  type: Component,
1010
- args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:block;padding:0}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:none}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single,: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{display:block}:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}@media (min-width: 768px){:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host :host-context(.sky-theme-default){padding-top:20px}}:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-md) :host-context(.sky-theme-default),:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-default){padding-top:20px}@media (min-width: 992px){:host{display:flex;padding:0 10px}:host .sky-tile-dashboard-layout-multi{display:block}:host .sky-tile-dashboard-layout-single{display:none}}:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){display:flex;padding:0 10px}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi,:host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg) .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-default){background-color:#eeeeef}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}@media (min-width: 768px){.sky-theme-modern :host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"] }]
1029
+ args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], template: "<ng-container *ngIf=\"config\">\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n <sky-tile-dashboard-column\n *ngFor=\"let column of config.layout.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n >\n </sky-tile-dashboard-column>\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n >\n </sky-tile-dashboard-column>\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n</ng-container>\n", styles: [":host{display:block;padding:0}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:0}:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:20px}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-theme-default){padding-top:20px}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:0 10px}: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-default){background-color:#eeeeef}:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-single ::ng-deep .sky-tile,.sky-theme-modern :host-context(.sky-tile-dashboard-gt-xs) .sky-tile-dashboard-layout-multi ::ng-deep .sky-tile{margin-bottom:30px}\n"] }]
1011
1030
  }], ctorParameters: function () { return [{ type: SkyTileDashboardService }, { type: i2.SkyMediaQueryService }, { type: i3$1.SkyLibResourcesService, decorators: [{
1012
1031
  type: Optional
1013
- }] }]; }, propDecorators: { config: [{
1032
+ }] }]; }, propDecorators: { layoutClassName: [{
1033
+ type: HostBinding,
1034
+ args: ['class']
1035
+ }], config: [{
1014
1036
  type: Input
1015
1037
  }], messageStream: [{
1016
1038
  type: Input