@skyux/tiles 8.7.2 → 9.0.0-alpha.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.
Files changed (38) hide show
  1. package/documentation.json +39 -39
  2. package/esm2022/lib/modules/shared/sky-tiles-resources.module.mjs +60 -0
  3. package/{esm2020 → esm2022}/lib/modules/tiles/tile/tile-summary.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/modules/tiles/tile/tile-title.component.mjs +4 -4
  5. package/esm2022/lib/modules/tiles/tile/tile.component.mjs +164 -0
  6. package/{esm2020 → esm2022}/lib/modules/tiles/tile/tile.module.mjs +21 -21
  7. package/{esm2020 → esm2022}/lib/modules/tiles/tile-content/tile-content-section.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/modules/tiles/tile-content/tile-content.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/modules/tiles/tile-content/tile-content.module.mjs +5 -5
  10. package/esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.component.mjs +137 -0
  11. package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard/tile-dashboard.module.mjs +9 -9
  12. package/esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.service.mjs +560 -0
  13. package/esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.mjs +30 -0
  14. package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.mjs +5 -5
  15. package/{esm2020 → esm2022}/lib/modules/tiles/tiles.module.mjs +11 -11
  16. package/fesm2022/skyux-tiles.mjs +1123 -0
  17. package/{fesm2020 → fesm2022}/skyux-tiles.mjs.map +1 -1
  18. package/lib/modules/tiles/tile/tile.component.d.ts +1 -1
  19. package/lib/modules/tiles/tile-dashboard/tile-dashboard.component.d.ts +1 -1
  20. package/package.json +13 -19
  21. package/esm2020/lib/modules/shared/sky-tiles-resources.module.mjs +0 -60
  22. package/esm2020/lib/modules/tiles/tile/tile.component.mjs +0 -165
  23. package/esm2020/lib/modules/tiles/tile-dashboard/tile-dashboard.component.mjs +0 -136
  24. package/esm2020/lib/modules/tiles/tile-dashboard/tile-dashboard.service.mjs +0 -540
  25. package/esm2020/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.mjs +0 -33
  26. package/fesm2015/skyux-tiles.mjs +0 -1115
  27. package/fesm2015/skyux-tiles.mjs.map +0 -1
  28. package/fesm2020/skyux-tiles.mjs +0 -1103
  29. /package/{esm2020 → esm2022}/index.mjs +0 -0
  30. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard/tile-dashboard-message.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-layout-column.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-layout-tile.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-layout.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-reorder-data.mjs +0 -0
  36. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-tile.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config.mjs +0 -0
  38. /package/{esm2020 → esm2022}/skyux-tiles.mjs +0 -0
@@ -1,165 +0,0 @@
1
- var _SkyTileComponent_instances, _SkyTileComponent_changeDetector, _SkyTileComponent_dashboardService, _SkyTileComponent_ngUnsubscribe, _SkyTileComponent__isCollapsed, _SkyTileComponent_focusHandle;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Component, ElementRef, EventEmitter, Input, Optional, Output, ViewChild, } from '@angular/core';
4
- import { skyAnimationSlide } from '@skyux/animations';
5
- import { Subject } from 'rxjs';
6
- import { takeUntil } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../tile-dashboard/tile-dashboard.service";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@skyux/indicators";
11
- import * as i4 from "@skyux/core";
12
- import * as i5 from "@skyux/theme";
13
- import * as i6 from "@skyux/i18n";
14
- /**
15
- * Provides a common look-and-feel for tab content.
16
- */
17
- export class SkyTileComponent {
18
- get isCollapsed() {
19
- if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
20
- const configCollapsedState = __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").tileIsCollapsed(this);
21
- __classPrivateFieldSet(this, _SkyTileComponent__isCollapsed, configCollapsedState, "f");
22
- }
23
- return __classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f");
24
- }
25
- /**
26
- * Whether the tile is in a collapsed state.
27
- * @default false
28
- */
29
- set isCollapsed(value) {
30
- __classPrivateFieldSet(this, _SkyTileComponent__isCollapsed, !!value, "f");
31
- if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
32
- __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").setTileCollapsed(this, __classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f"));
33
- }
34
- this.isCollapsedChange.emit(__classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f"));
35
- }
36
- constructor(elementRef, changeDetector, dashboardService) {
37
- this.elementRef = elementRef;
38
- _SkyTileComponent_instances.add(this);
39
- /**
40
- * Whether to display a settings button in the tile header. To display the
41
- * button, you must also listen for the `settingsClick` event.
42
- * @default true
43
- */
44
- this.showSettings = true;
45
- /**
46
- * Whether to display a help button in the tile header. To display the
47
- * button, you must also listen for the `helpClick` event.
48
- * @default true
49
- */
50
- this.showHelp = true;
51
- /**
52
- * Fires when users select the settings button in the tile header. The settings
53
- * button only appears when the `showSettings` property is set to `true`.
54
- */
55
- this.settingsClick = new EventEmitter();
56
- /**
57
- * Fires when the tile's collapsed state changes. Returns `true` when the tile
58
- * collapses and `false` when it expands.
59
- */
60
- this.isCollapsedChange = new EventEmitter();
61
- /**
62
- * Fires when users select the help button in the tile header. The help
63
- * button only appears when the `showHelp` property is set to `true`.
64
- */
65
- this.helpClick = new EventEmitter();
66
- this.isInDashboardColumn = false;
67
- _SkyTileComponent_changeDetector.set(this, void 0);
68
- _SkyTileComponent_dashboardService.set(this, void 0);
69
- _SkyTileComponent_ngUnsubscribe.set(this, new Subject());
70
- _SkyTileComponent__isCollapsed.set(this, false);
71
- __classPrivateFieldSet(this, _SkyTileComponent_changeDetector, changeDetector, "f");
72
- __classPrivateFieldSet(this, _SkyTileComponent_dashboardService, dashboardService, "f");
73
- this.isInDashboardColumn = !!__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f");
74
- if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
75
- this.ariaDescribedBy = `${__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").bagId}-move-instructions`;
76
- /**
77
- * This subscription ensures that if any values which come in from the dashboard service are
78
- * updated that the component will update if the tile's parent component utilizes OnPush
79
- * change detection.
80
- */
81
- __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").configChange
82
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f")))
83
- .subscribe(() => {
84
- __classPrivateFieldGet(this, _SkyTileComponent_changeDetector, "f").markForCheck();
85
- });
86
- }
87
- }
88
- ngOnDestroy() {
89
- __classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f").next();
90
- __classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f").complete();
91
- }
92
- settingsButtonClicked() {
93
- this.settingsClick.emit(undefined);
94
- }
95
- helpButtonClicked() {
96
- this.helpClick.emit(undefined);
97
- }
98
- get hasSettings() {
99
- return this.settingsClick.observers.length > 0 && this.showSettings;
100
- }
101
- get hasHelp() {
102
- return this.helpClick.observers.length > 0 && this.showHelp;
103
- }
104
- titleClick() {
105
- this.isCollapsed = !this.isCollapsed;
106
- }
107
- chevronDirectionChange(direction) {
108
- this.isCollapsed = direction === 'down';
109
- }
110
- moveTile(event) {
111
- /* istanbul ignore else */
112
- if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
113
- const direction = event.key.toLowerCase().replace('arrow', '');
114
- /* istanbul ignore else */
115
- if (direction === 'up' ||
116
- direction === 'down' ||
117
- direction === 'left' ||
118
- direction === 'right') {
119
- __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").moveTileOnKeyDown(this, direction, this.title
120
- ? this.title.nativeElement.innerText
121
- : /* istanbul ignore next */
122
- undefined);
123
- __classPrivateFieldGet(this, _SkyTileComponent_instances, "m", _SkyTileComponent_focusHandle).call(this);
124
- }
125
- }
126
- }
127
- }
128
- _SkyTileComponent_changeDetector = new WeakMap(), _SkyTileComponent_dashboardService = new WeakMap(), _SkyTileComponent_ngUnsubscribe = new WeakMap(), _SkyTileComponent__isCollapsed = new WeakMap(), _SkyTileComponent_instances = new WeakSet(), _SkyTileComponent_focusHandle = function _SkyTileComponent_focusHandle() {
129
- this.grabHandle?.nativeElement.focus();
130
- };
131
- SkyTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
132
- SkyTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTileComponent, selector: "sky-tile", inputs: { showSettings: "showSettings", showHelp: "showHelp", tileName: "tileName", isCollapsed: "isCollapsed" }, outputs: { settingsClick: "settingsClick", isCollapsedChange: "isCollapsedChange", helpClick: "helpClick" }, viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], 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 sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\"></ng-content>\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\"></ng-content>\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn 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 [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n </ng-container>\n <sky-chevron\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 [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources : tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"cog\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"cog-line\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\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 [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"th\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"tile-drag\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\"></ng-content>\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex}.sky-tile-summary{color:#0974a1;opacity:0;padding-right:15px;transition:opacity .25s;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{opacity:1}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "directive", type: i4.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i5.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i5.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i6.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTileComponent, decorators: [{
134
- type: Component,
135
- args: [{ selector: 'sky-tile', animations: [skyAnimationSlide], template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\"></ng-content>\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\"></ng-content>\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn 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 [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n </ng-container>\n <sky-chevron\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 [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources : tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"cog\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"cog-line\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\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 [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"th\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"tile-drag\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\"></ng-content>\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex}.sky-tile-summary{color:#0974a1;opacity:0;padding-right:15px;transition:opacity .25s;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{opacity:1}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"] }]
136
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyTileDashboardService, decorators: [{
137
- type: Optional
138
- }] }]; }, propDecorators: { showSettings: [{
139
- type: Input
140
- }], showHelp: [{
141
- type: Input
142
- }], tileName: [{
143
- type: Input
144
- }], settingsClick: [{
145
- type: Output
146
- }], isCollapsedChange: [{
147
- type: Output
148
- }], helpClick: [{
149
- type: Output
150
- }], isCollapsed: [{
151
- type: Input
152
- }], grabHandle: [{
153
- type: ViewChild,
154
- args: ['grabHandle', {
155
- read: ElementRef,
156
- static: false,
157
- }]
158
- }], title: [{
159
- type: ViewChild,
160
- args: ['titleContainer', {
161
- read: ElementRef,
162
- static: false,
163
- }]
164
- }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBSTNDOztHQUVHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQTRDM0IsSUFBVyxXQUFXO1FBQ3BCLElBQUksdUJBQUEsSUFBSSwwQ0FBa0IsRUFBRTtZQUMxQixNQUFNLG9CQUFvQixHQUFHLHVCQUFBLElBQUksMENBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFFLHVCQUFBLElBQUksa0NBQWlCLG9CQUFvQixNQUFBLENBQUM7U0FDM0M7UUFFRCxPQUFPLHVCQUFBLElBQUksc0NBQWMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxXQUFXLENBQUMsS0FBMEI7UUFDL0MsdUJBQUEsSUFBSSxrQ0FBaUIsQ0FBQyxDQUFDLEtBQUssTUFBQSxDQUFDO1FBRTdCLElBQUksdUJBQUEsSUFBSSwwQ0FBa0IsRUFBRTtZQUMxQix1QkFB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LEtBQUs7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBza3lBbmltYXRpb25TbGlkZSB9IGZyb20gJ0Bza3l1eC9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgY29tbW9uIGxvb2stYW5kLWZlZWwgZm9yIHRhYiBjb250ZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZScsXG4gIHN0eWxlVXJsczogWycuL3RpbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgc2V0dGluZ3NDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2V0dGluZ3MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgaGVscENsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSB0aWxlIHRoYXQgaXMgYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBwdXJwb3Nlcywgc3VjaCBhcyBhY2Nlc3NpYmlsaXR5IGFuZCBpbnN0cnVtZW50YXRpb24uIEZvciBleGFtcGxlLCB0aGUgY29tcG9uZW50IHVzZXMgdGhlIG5hbWUgdG8gY29uc3RydWN0IEFSSUEgbGFiZWxzIGZvciB0aWxlIGNvbnRyb2xzIHRvIFtzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhlbHBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBjb25maWdDb2xsYXBzZWRTdGF0ZSA9IHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UudGlsZUlzQ29sbGFwc2VkKHRoaXMpO1xuICAgICAgdGhpcy4jX2lzQ29sbGFwc2VkID0gY29uZmlnQ29sbGFwc2VkU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI19pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0aWxlIGlzIGluIGEgY29sbGFwc2VkIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0NvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRUaWxlQ29sbGFwc2VkKHRoaXMsIHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gIH1cblxuICBwdWJsaWMgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzSW5EYXNoYm9hcmRDb2x1bW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdncmFiSGFuZGxlJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgdGl0bGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfaXNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgZGFzaGJvYXJkU2VydmljZT86IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy5pc0luRGFzaGJvYXJkQ29sdW1uID0gISF0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gYCR7XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuYmFnSWRcbiAgICAgIH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHRpbmdzQ2xpY2suZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGhlbHBCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaGVscENsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NDbGljay5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiB0aGlzLnNob3dTZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzSGVscCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93SGVscDtcbiAgfVxuXG4gIHB1YmxpYyB0aXRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHVibGljIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnYXJyb3cnLCAnJyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICd1cCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnZG93bicgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5tb3ZlVGlsZU9uS2V5RG93bihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICB0aGlzLnRpdGxlXG4gICAgICAgICAgICA/IHRoaXMudGl0bGUubmF0aXZlRWxlbWVudC5pbm5lclRleHRcbiAgICAgICAgICAgIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI2ZvY3VzSGFuZGxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2ZvY3VzSGFuZGxlKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYkhhbmRsZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNreS10aWxlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktdGlsZS1jb2xsYXBzZWQnOiBpc0NvbGxhcHNlZFxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktYm94IHNreS1lbGV2YXRpb24tMS1ib3JkZXJlZCBza3ktcGFkZGluZy1ldmVuLXhsJzogJ21vZGVybidcbiAgfVwiXG4+XG4gIDxoZWFkZXIgY2xhc3M9XCJza3ktdGlsZS1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbnRlbnRcIiAoY2xpY2spPVwidGl0bGVDbGljaygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLXRpdGxlXCIgI3RpdGxlQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXN1bW1hcnkgc2t5LWZvbnQtZGlzcGxheS0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXN1bW1hcnlcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbHVtbi10b29sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXRvb2xzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImhhc0hlbHBcIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXRpbGUtaGVscFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfaGVscCcgfCBza3lMaWJSZXNvdXJjZXMgOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzIDogdGlsZU5hbWUpXG4gICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX2V4cGFuZF9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiaXNDb2xsYXBzZWQgPyAnZG93bicgOiAndXAnXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoZGlyZWN0aW9uQ2hhbmdlKT1cImNoZXZyb25EaXJlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktY2hldnJvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaGFzU2V0dGluZ3NcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1zZXR0aW5nc1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX3NldHRpbmdzJyB8IHNreUxpYlJlc291cmNlcyA6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY29nXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cImNvZy1saW5lXCJcbiAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaXNJbkRhc2hib2FyZENvbHVtblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLWdyYWItaGFuZGxlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXMgOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfbW92ZV9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwibW92ZVRpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgI2dyYWJIYW5kbGVcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJ0aFwiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJ0aWxlLWRyYWdcIlxuICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdGlsZS1jb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBza3lJZFxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGlsZU5hbWVcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -1,136 +0,0 @@
1
- var _SkyTileDashboardComponent_instances, _SkyTileDashboardComponent_configSet, _SkyTileDashboardComponent_dashboardService, _SkyTileDashboardComponent_mediaQueryService, _SkyTileDashboardComponent_ngUnsubscribe, _SkyTileDashboardComponent_resourcesService, _SkyTileDashboardComponent_viewReady, _SkyTileDashboardComponent__config, _SkyTileDashboardComponent_checkReady, _SkyTileDashboardComponent_handleIncomingMessages;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
4
- import { SkyMediaBreakpoints } from '@skyux/core';
5
- import { Subject } from 'rxjs';
6
- import { take, takeUntil } from 'rxjs/operators';
7
- import { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';
8
- import { SkyTileDashboardMessageType } from './tile-dashboard-message-type';
9
- import { SkyTileDashboardService } from './tile-dashboard.service';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "./tile-dashboard.service";
12
- import * as i2 from "@skyux/core";
13
- import * as i3 from "@skyux/i18n";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "../tile-dashboard-column/tile-dashboard-column.component";
16
- /**
17
- * Specifies a container to group multiple tiles.
18
- */
19
- export class SkyTileDashboardComponent {
20
- /**
21
- * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.
22
- * @required
23
- */
24
- set config(value) {
25
- if (value && !__classPrivateFieldGet(this, _SkyTileDashboardComponent_configSet, "f")) {
26
- __classPrivateFieldSet(this, _SkyTileDashboardComponent__config, value, "f");
27
- __classPrivateFieldSet(this, _SkyTileDashboardComponent_configSet, true, "f");
28
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_instances, "m", _SkyTileDashboardComponent_checkReady).call(this);
29
- }
30
- }
31
- get config() {
32
- return __classPrivateFieldGet(this, _SkyTileDashboardComponent__config, "f");
33
- }
34
- constructor(dashboardService, mediaQueryService, resourcesService) {
35
- _SkyTileDashboardComponent_instances.add(this);
36
- /**
37
- * The observable to send commands to the tile dashboard. The commands must respect the
38
- * `SkyTileDashboardMessage` type.
39
- */
40
- this.messageStream = new Subject();
41
- /**
42
- * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig
43
- * object. This occurs when tiles collapse or expand and when users drag and drop
44
- * tiles to rearrange them.
45
- */
46
- this.configChange = new EventEmitter();
47
- this.tileMovedReport = '';
48
- _SkyTileDashboardComponent_configSet.set(this, false);
49
- _SkyTileDashboardComponent_dashboardService.set(this, void 0);
50
- _SkyTileDashboardComponent_mediaQueryService.set(this, void 0);
51
- _SkyTileDashboardComponent_ngUnsubscribe.set(this, new Subject());
52
- _SkyTileDashboardComponent_resourcesService.set(this, void 0);
53
- _SkyTileDashboardComponent_viewReady.set(this, false);
54
- _SkyTileDashboardComponent__config.set(this, void 0);
55
- __classPrivateFieldSet(this, _SkyTileDashboardComponent_dashboardService, dashboardService, "f");
56
- __classPrivateFieldSet(this, _SkyTileDashboardComponent_mediaQueryService, mediaQueryService, "f");
57
- __classPrivateFieldSet(this, _SkyTileDashboardComponent_resourcesService, resourcesService, "f");
58
- this.moveInstructionsId =
59
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").bagId + '-move-instructions';
60
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").configChange.subscribe((config) => {
61
- this.configChange.emit(config);
62
- // Update aria live region with tile drag info
63
- if (config.movedTile && __classPrivateFieldGet(this, _SkyTileDashboardComponent_resourcesService, "f")) {
64
- let messageObservable;
65
- if (__classPrivateFieldGet(this, _SkyTileDashboardComponent_mediaQueryService, "f").current === SkyMediaBreakpoints.xs ||
66
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_mediaQueryService, "f").current === SkyMediaBreakpoints.sm) {
67
- messageObservable = __classPrivateFieldGet(this, _SkyTileDashboardComponent_resourcesService, "f").getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, '1', '1', config.movedTile.position.toString(), config.layout.singleColumn.tiles.length.toString());
68
- }
69
- else {
70
- messageObservable = __classPrivateFieldGet(this, _SkyTileDashboardComponent_resourcesService, "f").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());
71
- }
72
- messageObservable.pipe(take(1)).subscribe((message) => {
73
- this.tileMovedReport = message;
74
- });
75
- }
76
- });
77
- }
78
- ngAfterViewInit() {
79
- this.messageStream
80
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f")))
81
- .subscribe((message) => {
82
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_instances, "m", _SkyTileDashboardComponent_handleIncomingMessages).call(this, message);
83
- });
84
- __classPrivateFieldSet(this, _SkyTileDashboardComponent_viewReady, true, "f");
85
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_instances, "m", _SkyTileDashboardComponent_checkReady).call(this);
86
- }
87
- ngOnDestroy() {
88
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f").next();
89
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f").complete();
90
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").destroy();
91
- }
92
- }
93
- _SkyTileDashboardComponent_configSet = new WeakMap(), _SkyTileDashboardComponent_dashboardService = new WeakMap(), _SkyTileDashboardComponent_mediaQueryService = new WeakMap(), _SkyTileDashboardComponent_ngUnsubscribe = new WeakMap(), _SkyTileDashboardComponent_resourcesService = new WeakMap(), _SkyTileDashboardComponent_viewReady = new WeakMap(), _SkyTileDashboardComponent__config = new WeakMap(), _SkyTileDashboardComponent_instances = new WeakSet(), _SkyTileDashboardComponent_checkReady = function _SkyTileDashboardComponent_checkReady() {
94
- if (__classPrivateFieldGet(this, _SkyTileDashboardComponent_viewReady, "f") && this.config) {
95
- setTimeout(() => {
96
- if (this.config && this.columns && this.singleColumn) {
97
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").init(this.config, this.columns, this.singleColumn, this.settingsKey);
98
- }
99
- }, 0);
100
- }
101
- }, _SkyTileDashboardComponent_handleIncomingMessages = function _SkyTileDashboardComponent_handleIncomingMessages(message) {
102
- switch (message.type) {
103
- case SkyTileDashboardMessageType.ExpandAll:
104
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").setAllTilesCollapsed(false);
105
- break;
106
- case SkyTileDashboardMessageType.CollapseAll:
107
- __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").setAllTilesCollapsed(true);
108
- break;
109
- }
110
- };
111
- SkyTileDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyMediaQueryService }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
112
- SkyTileDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.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></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" }] });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
114
- type: Component,
115
- 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></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"] }]
116
- }], ctorParameters: function () { return [{ type: i1.SkyTileDashboardService }, { type: i2.SkyMediaQueryService }, { type: i3.SkyLibResourcesService, decorators: [{
117
- type: Optional
118
- }] }]; }, propDecorators: { config: [{
119
- type: Input
120
- }], messageStream: [{
121
- type: Input
122
- }], settingsKey: [{
123
- type: Input
124
- }], configChange: [{
125
- type: Output
126
- }], columns: [{
127
- type: ViewChildren,
128
- args: [SkyTileDashboardColumnComponent]
129
- }], singleColumn: [{
130
- type: ViewChild,
131
- args: ['singleColumn', {
132
- read: SkyTileDashboardColumnComponent,
133
- static: false,
134
- }]
135
- }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBR3hFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUkzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7SUFDcEM7OztPQUdHO0lBQ0gsSUFDVyxNQUFNLENBQUMsS0FBeUM7UUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyx1QkFBQSxJQUFJLDRDQUFXLEVBQUU7WUFDN0IsdUJBQUEsSUFBSSxzQ0FBWSxLQUFLLE1BQUEsQ0FBQztZQUN0Qix1QkFBQSxJQUFJLHdDQUFjLElB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QzFDLHVCQUFBLElBQUksbURBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTTtLQUNUO0FBQ0gsQ0FBQztzSEE1SlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsa0xBRnpCLENBQUMsdUJBQXVCLENBQUMsbUhBaUQ1QiwrQkFBK0IsMENBSnpCLCtCQUErQixnREM3RS9DLGd0QkFzQkE7MkZEWWEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLHVCQUF1QixDQUFDOzswQkFxRWpDLFFBQVE7NENBN0RBLE1BQU07c0JBRGhCLEtBQUs7Z0JBa0JDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBV0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLE9BQU87c0JBRGIsWUFBWTt1QkFBQywrQkFBK0I7Z0JBT3RDLFlBQVk7c0JBSmxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsK0JBQStCO3dCQUNyQyxNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMsIFNreU1lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbmZpZyB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWcnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgY29udGFpbmVyIHRvIGdyb3VwIG11bHRpcGxlIHRpbGVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZS1kYXNoYm9hcmQnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtTa3lUaWxlRGFzaGJvYXJkU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogUG9wdWxhdGVzIHRoZSB0aWxlIGRhc2hib2FyZCBiYXNlZCBvbiB0aGUgYFNreVRpbGVEYXNoYm9hcmRDb25maWdgIG9iamVjdC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy4jY29uZmlnU2V0KSB7XG4gICAgICB0aGlzLiNfY29uZmlnID0gdmFsdWU7XG4gICAgICB0aGlzLiNjb25maWdTZXQgPSB0cnVlO1xuICAgICAgdGhpcy4jY2hlY2tSZWFkeSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnKCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIHRpbGUgZGFzaGJvYXJkLiBUaGUgY29tbWFuZHMgbXVzdCByZXNwZWN0IHRoZVxuICAgKiBgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGtleSBmb3IgdGhlIFVJIENvbmZpZyBTZXJ2aWNlIHRvIHJldHJpZXZlIHN0b3JlZCBzZXR0aW5nc1xuICAgKiBmcm9tIGEgZGF0YWJhc2UuIFRoZSBVSSBDb25maWcgU2VydmljZSBzYXZlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB1c2Vyc1xuICAgKiB0byBwcmVzZXJ2ZSB0aGUgbGF5b3V0IGFuZCBjb2xsYXBzZWQgc3RhdGUgb2YgdGlsZSBkYXNoYm9hcmRzLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2UgcmVsaWVzIG9uIGBpZGAgdmFsdWVzIGZyb20gdGhlIGBjb25maWdgIHByb3BlcnR5IHRvIG1haW50YWluIHVzZXIgc2V0dGluZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uXG4gICAqIGFib3V0IHRoZSBVSSBDb25maWcgU2VydmljZSwgc2VlIHRoZVxuICAgKiBbc3RpY2t5IHNldHRpbmdzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZ2V0LXN0YXJ0ZWQvc3RpY2t5LXNldHRpbmdzKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXR0aW5nc0tleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0aWxlIGRhc2hib2FyZCBjaGFuZ2VzIHN0YXRlIGFuZCBlbWl0cyBhIFNreVRpbGVEYXNoYm9hcmRDb25maWdcbiAgICogb2JqZWN0LiBUaGlzIG9jY3VycyB3aGVuIHRpbGVzIGNvbGxhcHNlIG9yIGV4cGFuZCBhbmQgd2hlbiB1c2VycyBkcmFnIGFuZCBkcm9wXG4gICAqIHRpbGVzIHRvIHJlYXJyYW5nZSB0aGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRpbGVEYXNoYm9hcmRDb25maWc+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50KVxuICBwdWJsaWMgY29sdW1uczogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NpbmdsZUNvbHVtbicsIHtcbiAgICByZWFkOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHRpbGVNb3ZlZFJlcG9ydCA9ICcnO1xuXG4gIHB1YmxpYyBtb3ZlSW5zdHJ1Y3Rpb25zSWQ6IHN0cmluZztcblxuICAjY29uZmlnU2V0ID0gZmFsc2U7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3ZpZXdSZWFkeSA9IGZhbHNlO1xuICAjX2NvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSxcbiAgICBtZWRpYVF1ZXJ5U2VydmljZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcmVzb3VyY2VzU2VydmljZT86IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UgPSBtZWRpYVF1ZXJ5U2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgICB0aGlzLm1vdmVJbnN0cnVjdGlvbnNJZCA9XG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkICsgJy1tb3ZlLWluc3RydWN0aW9ucyc7XG5cbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAoY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnKSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQoY29uZmlnKTtcblxuICAgICAgICAvLyBVcGRhdGUgYXJpYSBsaXZlIHJlZ2lvbiB3aXRoIHRpbGUgZHJhZyBpbmZvXG4gICAgICAgIGlmIChjb25maWcubW92ZWRUaWxlICYmIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UpIHtcbiAgICAgICAgICBsZXQgbWVzc2FnZU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZS5jdXJyZW50ID09PSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzIHx8XG4gICAgICAgICAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZS5jdXJyZW50ID09PSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgICcxJyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5wb3NpdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcy5sZW5ndGgudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUgPSB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbi5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5wb3NpdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uW1xuICAgICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUuY29sdW1uIC0gMVxuICAgICAgICAgICAgICBdLnRpbGVzLmxlbmd0aC50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbGVNb3ZlZFJlcG9ydCA9IG1lc3NhZ2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI3ZpZXdSZWFkeSA9IHRydWU7XG4gICAgdGhpcy4jY2hlY2tSZWFkeSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gICNjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3UmVhZHkgJiYgdGhpcy5jb25maWcpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb2x1bW5zICYmIHRoaXMuc2luZ2xlQ29sdW1uKSB7XG4gICAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5pbml0KFxuICAgICAgICAgICAgdGhpcy5jb25maWcsXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICAgICAgICB0aGlzLnNpbmdsZUNvbHVtbixcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NLZXlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAjaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSk6IHZvaWQge1xuICAgIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5FeHBhbmRBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUuQ29sbGFwc2VBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZ1wiPlxuICA8c3BhbiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBjbGFzcz1cInNreS1hc3Npc3RpdmUtdGV4dFwiPlxuICAgIHt7IHRpbGVNb3ZlZFJlcG9ydCB9fVxuICA8L3NwYW4+XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uXCJcbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtbXVsdGlcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdmbGV4LWJhc2lzJzogMTAwIC8gY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbi5sZW5ndGggKyAnJSdcbiAgICB9XCJcbiAgPlxuICA8L3NreS10aWxlLWRhc2hib2FyZC1jb2x1bW4+XG4gIDxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICAgY2xhc3M9XCJza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LXNpbmdsZVwiXG4gICAgI3NpbmdsZUNvbHVtblxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCIgW2lkXT1cIm1vdmVJbnN0cnVjdGlvbnNJZFwiPnt7XG4gICAgJ3NreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnMnIHwgc2t5TGliUmVzb3VyY2VzXG4gIH19PC9zcGFuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==