@skyux/tiles 7.0.0-beta.13 → 7.0.0-beta.16

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,3 +1,5 @@
1
+ var _SkyTileComponent_instances, _SkyTileComponent_changeDetector, _SkyTileComponent_dashboardService, _SkyTileComponent_ngUnsubscribe, _SkyTileComponent__isCollapsed, _SkyTileComponent_focusHandle;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Optional, Output, ViewChild, } from '@angular/core';
2
4
  import { skyAnimationSlide } from '@skyux/animations';
3
5
  import { Subject } from 'rxjs';
@@ -16,8 +18,7 @@ import * as i6 from "@skyux/i18n";
16
18
  export class SkyTileComponent {
17
19
  constructor(elementRef, changeDetector, dashboardService) {
18
20
  this.elementRef = elementRef;
19
- this.changeDetector = changeDetector;
20
- this.dashboardService = dashboardService;
21
+ _SkyTileComponent_instances.add(this);
21
22
  /**
22
23
  * Indicates whether to display a settings button in the tile header. To display the
23
24
  * button, you must also listen for the `settingsClick` event.
@@ -46,44 +47,48 @@ export class SkyTileComponent {
46
47
  */
47
48
  this.helpClick = new EventEmitter();
48
49
  this.isInDashboardColumn = false;
49
- this.ngUnsubscribe = new Subject();
50
- this._isCollapsed = false;
51
- this.isInDashboardColumn = !!dashboardService;
52
- if (this.dashboardService) {
53
- this.ariaDescribedBy = `${this.dashboardService.bagId}-move-instructions`;
50
+ _SkyTileComponent_changeDetector.set(this, void 0);
51
+ _SkyTileComponent_dashboardService.set(this, void 0);
52
+ _SkyTileComponent_ngUnsubscribe.set(this, new Subject());
53
+ _SkyTileComponent__isCollapsed.set(this, false);
54
+ __classPrivateFieldSet(this, _SkyTileComponent_changeDetector, changeDetector, "f");
55
+ __classPrivateFieldSet(this, _SkyTileComponent_dashboardService, dashboardService, "f");
56
+ this.isInDashboardColumn = !!__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f");
57
+ if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
58
+ this.ariaDescribedBy = `${__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").bagId}-move-instructions`;
54
59
  /**
55
60
  * This subscription ensures that if any values which come in from the dashboard service are
56
61
  * updated that the component will update if the tile's parent component utilizes OnPush
57
62
  * change detection.
58
63
  */
59
- this.dashboardService.configChange
60
- .pipe(takeUntil(this.ngUnsubscribe))
64
+ __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").configChange
65
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f")))
61
66
  .subscribe(() => {
62
- this.changeDetector.markForCheck();
67
+ __classPrivateFieldGet(this, _SkyTileComponent_changeDetector, "f").markForCheck();
63
68
  });
64
69
  }
65
70
  }
66
71
  get isCollapsed() {
67
- if (this.dashboardService) {
68
- const configCollapsedState = this.dashboardService.tileIsCollapsed(this);
69
- this._isCollapsed = configCollapsedState;
72
+ if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
73
+ const configCollapsedState = __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").tileIsCollapsed(this);
74
+ __classPrivateFieldSet(this, _SkyTileComponent__isCollapsed, configCollapsedState, "f");
70
75
  }
71
- return this._isCollapsed;
76
+ return __classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f");
72
77
  }
73
78
  /**
74
79
  * Indicates whether the tile is in a collapsed state.
75
80
  * @default false
76
81
  */
77
82
  set isCollapsed(value) {
78
- if (this.dashboardService) {
79
- this.dashboardService.setTileCollapsed(this, value);
83
+ __classPrivateFieldSet(this, _SkyTileComponent__isCollapsed, !!value, "f");
84
+ if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
85
+ __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").setTileCollapsed(this, __classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f"));
80
86
  }
81
- this._isCollapsed = value;
82
- this.isCollapsedChange.emit(value);
87
+ this.isCollapsedChange.emit(__classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f"));
83
88
  }
84
89
  ngOnDestroy() {
85
- this.ngUnsubscribe.next();
86
- this.ngUnsubscribe.complete();
90
+ __classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f").next();
91
+ __classPrivateFieldGet(this, _SkyTileComponent_ngUnsubscribe, "f").complete();
87
92
  }
88
93
  settingsButtonClicked() {
89
94
  this.settingsClick.emit(undefined);
@@ -105,25 +110,25 @@ export class SkyTileComponent {
105
110
  }
106
111
  moveTile(event) {
107
112
  /* istanbul ignore else */
108
- if (this.isInDashboardColumn) {
113
+ if (__classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f")) {
109
114
  const direction = event.key.toLowerCase().replace('arrow', '');
110
115
  /* istanbul ignore else */
111
116
  if (direction === 'up' ||
112
117
  direction === 'down' ||
113
118
  direction === 'left' ||
114
119
  direction === 'right') {
115
- this.dashboardService.moveTileOnKeyDown(this, direction, this.title
120
+ __classPrivateFieldGet(this, _SkyTileComponent_dashboardService, "f").moveTileOnKeyDown(this, direction, this.title
116
121
  ? this.title.nativeElement.innerText
117
122
  : /* istanbul ignore next */
118
123
  undefined);
119
- this.focusHandle();
124
+ __classPrivateFieldGet(this, _SkyTileComponent_instances, "m", _SkyTileComponent_focusHandle).call(this);
120
125
  }
121
126
  }
122
127
  }
123
- focusHandle() {
124
- this.grabHandle.nativeElement.focus();
125
- }
126
128
  }
129
+ _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() {
130
+ this.grabHandle?.nativeElement.focus();
131
+ };
127
132
  SkyTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
128
133
  SkyTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", 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\n class=\"sky-tile-summary\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern',\n 'sky-headline': 'default'\n }\"\n >\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] });
129
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTileComponent, decorators: [{
@@ -158,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
158
163
  static: false,
159
164
  }]
160
165
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFFbkY7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBd0YzQixZQUNTLFVBQXNCLEVBQ3JCLGNBQWlDLEVBQ3JCLGdCQUEwQztRQUZ2RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBMUZoRTs7OztXQUlHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFM0I7Ozs7V0FJRztRQUVJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRdkI7OztXQUdHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDOzs7V0FHRztRQUVJLHNCQUFpQixHQUFH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ZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciB0YWIgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvblNsaWRlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgc2V0dGluZ3MgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVG8gZGlzcGxheSB0aGVcbiAgICogYnV0dG9uLCB5b3UgbXVzdCBhbHNvIGxpc3RlbiBmb3IgdGhlIGBzZXR0aW5nc0NsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dTZXR0aW5ncyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgaGVscENsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwID0gdHJ1ZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHRpbGUgdGhhdCBpcyBhdmFpbGFibGUgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBzdWNoIGFzIGFjY2Vzc2liaWxpdHkgYW5kIGluc3RydW1lbnRhdGlvbi4gRm9yIGV4YW1wbGUsIHRoZSBjb21wb25lbnQgdXNlcyB0aGUgbmFtZSB0byBjb25zdHJ1Y3QgQVJJQSBsYWJlbHMgZm9yIHRpbGUgY29udHJvbHMgdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlTmFtZTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhlbHBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmRhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0NvbGxhcHNlZFN0YXRlID0gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnRpbGVJc0NvbGxhcHNlZCh0aGlzKTtcbiAgICAgIHRoaXMuX2lzQ29sbGFwc2VkID0gY29uZmlnQ29sbGFwc2VkU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2lzQ29sbGFwc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0aWxlIGlzIGluIGEgY29sbGFwc2VkIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0NvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRUaWxlQ29sbGFwc2VkKHRoaXMsIHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pc0NvbGxhcHNlZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaXNJbkRhc2hib2FyZENvbHVtbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2dyYWJIYW5kbGUnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwcml2YXRlIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwcml2YXRlIHRpdGxlOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfaXNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U/OiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzSW5EYXNoYm9hcmRDb2x1bW4gPSAhIWRhc2hib2FyZFNlcnZpY2U7XG5cbiAgICBpZiAodGhpcy5kYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmFyaWFEZXNjcmliZWRCeSA9IGAke3RoaXMuZGFzaGJvYXJkU2VydmljZS5iYWdJZH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29uZmlnQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0hlbHAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGVscENsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwICYmIHRoaXMuc2hvd0hlbHA7XG4gIH1cblxuICBwdWJsaWMgdGl0bGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG4gIH1cblxuICBwdWJsaWMgY2hldnJvbkRpcmVjdGlvbkNoYW5nZShkaXJlY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBkaXJlY3Rpb24gPT09ICdkb3duJztcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVGlsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuaXNJbkRhc2hib2FyZENvbHVtbikge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnYXJyb3cnLCAnJyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICd1cCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnZG93bicgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLm1vdmVUaWxlT25LZXlEb3duKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgIHRoaXMudGl0bGVcbiAgICAgICAgICAgID8gdGhpcy50aXRsZS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dFxuICAgICAgICAgICAgOiAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mb2N1c0hhbmRsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNIYW5kbGUoKTogdm9pZCB7XG4gICAgdGhpcy5ncmFiSGFuZGxlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQgc2t5LXBhZGRpbmctZXZlbi14bCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci10aXRsZVwiICN0aXRsZUNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktdGlsZS1zdW1tYXJ5XCJcbiAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZm9udC1kaXNwbGF5LTMnOiAnbW9kZXJuJyxcbiAgICAgICAgICAnc2t5LWhlYWRsaW5lJzogJ2RlZmF1bHQnXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1zdW1tYXJ5XCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNIZWxwXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNTZXR0aW5nc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXNldHRpbmdzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNvZ1wiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJjb2ctbGluZVwiXG4gICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImlzSW5EYXNoYm9hcmRDb2x1bW5cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1ncmFiLWhhbmRsZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX21vdmUnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfbW92ZV9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwibW92ZVRpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgI2dyYWJIYW5kbGVcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJ0aFwiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJ0aWxlLWRyYWdcIlxuICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdGlsZS1jb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBza3lJZFxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGlsZU5hbWVcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7OztBQUVuRjs7R0FFRztBQU9ILE1BQU0sT0FBTyxnQkFBZ0I7SUF5RjNCLFlBQ1MsVUFBc0IsRUFDN0IsY0FBaUMsRUFDckIsZ0JBQTBDO1FBRi9DLGVBQVUsR0FBVixVQUFVLENBQVk7O1FBekYvQjs7OztXQUlHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFM0I7Ozs7V0FJRztRQUVJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRdkI7OztXQUdHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDOzs7V0FHRztRQUVJLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFdkQ7OztXQUdHO1FBRUksY0FBUyxHQUFHLElBQUksWUFB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QVM7dUJBQUMsZ0JBQWdCLEVBQUU7d0JBQzNCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNreUFuaW1hdGlvblNsaWRlIH0gZnJvbSAnQHNreXV4L2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjb21tb24gbG9vay1hbmQtZmVlbCBmb3IgdGFiIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtza3lBbmltYXRpb25TbGlkZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgc2V0dGluZ3NDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2V0dGluZ3MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYGhlbHBDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGVscCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSB0aWxlIHRoYXQgaXMgYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBwdXJwb3Nlcywgc3VjaCBhcyBhY2Nlc3NpYmlsaXR5IGFuZCBpbnN0cnVtZW50YXRpb24uIEZvciBleGFtcGxlLCB0aGUgY29tcG9uZW50IHVzZXMgdGhlIG5hbWUgdG8gY29uc3RydWN0IEFSSUEgbGFiZWxzIGZvciB0aWxlIGNvbnRyb2xzIHRvIFtzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhlbHBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBjb25maWdDb2xsYXBzZWRTdGF0ZSA9IHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UudGlsZUlzQ29sbGFwc2VkKHRoaXMpO1xuICAgICAgdGhpcy4jX2lzQ29sbGFwc2VkID0gY29uZmlnQ29sbGFwc2VkU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI19pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGlsZSBpcyBpbiBhIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0VGlsZUNvbGxhcHNlZCh0aGlzLCB0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHRoaXMuaXNDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0luRGFzaGJvYXJkQ29sdW1uID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZ3JhYkhhbmRsZScsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHRpdGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjX2lzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIGRhc2hib2FyZFNlcnZpY2U/OiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UgPSBkYXNoYm9hcmRTZXJ2aWNlO1xuICAgIHRoaXMuaXNJbkRhc2hib2FyZENvbHVtbiA9ICEhdGhpcy4jZGFzaGJvYXJkU2VydmljZTtcblxuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmFyaWFEZXNjcmliZWRCeSA9IGAke1xuICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkXG4gICAgICB9LW1vdmUtaW5zdHJ1Y3Rpb25zYDtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIHN1YnNjcmlwdGlvbiBlbnN1cmVzIHRoYXQgaWYgYW55IHZhbHVlcyB3aGljaCBjb21lIGluIGZyb20gdGhlIGRhc2hib2FyZCBzZXJ2aWNlIGFyZVxuICAgICAgICogdXBkYXRlZCB0aGF0IHRoZSBjb21wb25lbnQgd2lsbCB1cGRhdGUgaWYgdGhlIHRpbGUncyBwYXJlbnQgY29tcG9uZW50IHV0aWxpemVzIE9uUHVzaFxuICAgICAgICogY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgICAqL1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0hlbHAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGVscENsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwICYmIHRoaXMuc2hvd0hlbHA7XG4gIH1cblxuICBwdWJsaWMgdGl0bGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG4gIH1cblxuICBwdWJsaWMgY2hldnJvbkRpcmVjdGlvbkNoYW5nZShkaXJlY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBkaXJlY3Rpb24gPT09ICdkb3duJztcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVGlsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ2Fycm93JywgJycpO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChcbiAgICAgICAgZGlyZWN0aW9uID09PSAndXAnIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ2Rvd24nIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UubW92ZVRpbGVPbktleURvd24oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgdGhpcy50aXRsZVxuICAgICAgICAgICAgPyB0aGlzLnRpdGxlLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0XG4gICAgICAgICAgICA6IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNmb2N1c0hhbmRsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c0hhbmRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYWJIYW5kbGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQgc2t5LXBhZGRpbmctZXZlbi14bCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci10aXRsZVwiICN0aXRsZUNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktdGlsZS1zdW1tYXJ5XCJcbiAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZm9udC1kaXNwbGF5LTMnOiAnbW9kZXJuJyxcbiAgICAgICAgICAnc2t5LWhlYWRsaW5lJzogJ2RlZmF1bHQnXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1zdW1tYXJ5XCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNIZWxwXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNTZXR0aW5nc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXNldHRpbmdzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNvZ1wiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJjb2ctbGluZVwiXG4gICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImlzSW5EYXNoYm9hcmRDb2x1bW5cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1ncmFiLWhhbmRsZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX21vdmUnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfbW92ZV9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwibW92ZVRpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgI2dyYWJIYW5kbGVcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJ0aFwiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJ0aWxlLWRyYWdcIlxuICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdGlsZS1jb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBza3lJZFxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGlsZU5hbWVcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -1,4 +1,6 @@
1
- import { Component, EventEmitter, Input, Optional, Output, QueryList, ViewChild, ViewChildren, } from '@angular/core';
1
+ var _SkyTileDashboardComponent_configSet, _SkyTileDashboardComponent_dashboardService, _SkyTileDashboardComponent_mediaQueryService, _SkyTileDashboardComponent_ngUnsubscribe, _SkyTileDashboardComponent_resourcesService, _SkyTileDashboardComponent_viewReady, _SkyTileDashboardComponent__config;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
2
4
  import { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';
3
5
  import { SkyLibResourcesService } from '@skyux/i18n';
4
6
  import { Subject } from 'rxjs';
@@ -16,10 +18,7 @@ import * as i5 from "../tile-dashboard-column/tile-dashboard-column.component";
16
18
  * Specifies a container to group multiple tiles.
17
19
  */
18
20
  export class SkyTileDashboardComponent {
19
- constructor(dashboardService, mediaQuery, resourcesService) {
20
- this.dashboardService = dashboardService;
21
- this.mediaQuery = mediaQuery;
22
- this.resourcesService = resourcesService;
21
+ constructor(dashboardService, mediaQueryService, resourcesService) {
23
22
  /**
24
23
  * Provides an observable to send commands to the tile dashboard. The commands should respect the
25
24
  * `SkyTileDashboardMessage` type.
@@ -31,21 +30,30 @@ export class SkyTileDashboardComponent {
31
30
  * tiles to rearrange them.
32
31
  */
33
32
  this.configChange = new EventEmitter();
34
- this.moveInstructionsId = this.dashboardService.bagId + '-move-instructions';
35
- this.configSet = false;
36
- this.ngUnsubscribe = new Subject();
37
- this.viewReady = false;
38
- this.dashboardService.configChange.subscribe((config) => {
33
+ this.tileMovedReport = '';
34
+ _SkyTileDashboardComponent_configSet.set(this, false);
35
+ _SkyTileDashboardComponent_dashboardService.set(this, void 0);
36
+ _SkyTileDashboardComponent_mediaQueryService.set(this, void 0);
37
+ _SkyTileDashboardComponent_ngUnsubscribe.set(this, new Subject());
38
+ _SkyTileDashboardComponent_resourcesService.set(this, void 0);
39
+ _SkyTileDashboardComponent_viewReady.set(this, false);
40
+ _SkyTileDashboardComponent__config.set(this, void 0);
41
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent_dashboardService, dashboardService, "f");
42
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent_mediaQueryService, mediaQueryService, "f");
43
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent_resourcesService, resourcesService, "f");
44
+ this.moveInstructionsId =
45
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").bagId + '-move-instructions';
46
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").configChange.subscribe((config) => {
39
47
  this.configChange.emit(config);
40
48
  // Update aria live region with tile drag info
41
- if (config.movedTile && this.resourcesService) {
49
+ if (config.movedTile && __classPrivateFieldGet(this, _SkyTileDashboardComponent_resourcesService, "f")) {
42
50
  let messageObservable;
43
- if (this.mediaQuery.current === SkyMediaBreakpoints.xs ||
44
- this.mediaQuery.current === SkyMediaBreakpoints.sm) {
45
- messageObservable = this.resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, '1', '1', config.movedTile.position.toString(), config.layout.singleColumn.tiles.length.toString());
51
+ if (__classPrivateFieldGet(this, _SkyTileDashboardComponent_mediaQueryService, "f").current === SkyMediaBreakpoints.xs ||
52
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_mediaQueryService, "f").current === SkyMediaBreakpoints.sm) {
53
+ 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());
46
54
  }
47
55
  else {
48
- messageObservable = this.resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, config.movedTile.column.toString(), config.layout.multiColumn.length.toString(), config.movedTile.position.toString(), config.layout.multiColumn[config.movedTile.column - 1].tiles.length.toString());
56
+ 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());
49
57
  }
50
58
  messageObservable.pipe(take(1)).subscribe((message) => {
51
59
  this.tileMovedReport = message;
@@ -58,52 +66,55 @@ export class SkyTileDashboardComponent {
58
66
  * @required
59
67
  */
60
68
  set config(value) {
61
- if (value && !this.configSet) {
62
- this._config = value;
63
- this.configSet = true;
69
+ if (value && !__classPrivateFieldGet(this, _SkyTileDashboardComponent_configSet, "f")) {
70
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent__config, value, "f");
71
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent_configSet, true, "f");
64
72
  this.checkReady();
65
73
  }
66
74
  }
67
75
  get config() {
68
- return this._config;
76
+ return __classPrivateFieldGet(this, _SkyTileDashboardComponent__config, "f");
69
77
  }
70
78
  ngAfterViewInit() {
71
79
  this.messageStream
72
- .pipe(takeUntil(this.ngUnsubscribe))
80
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f")))
73
81
  .subscribe((message) => {
74
82
  this.handleIncomingMessages(message);
75
83
  });
76
- this.viewReady = true;
84
+ __classPrivateFieldSet(this, _SkyTileDashboardComponent_viewReady, true, "f");
77
85
  this.checkReady();
78
86
  }
79
87
  ngOnDestroy() {
80
- this.ngUnsubscribe.next();
81
- this.ngUnsubscribe.complete();
82
- this.dashboardService.destroy();
88
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f").next();
89
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_ngUnsubscribe, "f").complete();
90
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").destroy();
83
91
  }
84
92
  checkReady() {
85
- if (this.viewReady && this.config) {
93
+ if (__classPrivateFieldGet(this, _SkyTileDashboardComponent_viewReady, "f") && this.config && this.columns && this.singleColumn) {
86
94
  setTimeout(() => {
87
- this.dashboardService.init(this.config, this.columns, this.singleColumn, this.settingsKey);
95
+ if (this.config && this.columns && this.singleColumn) {
96
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").init(this.config, this.columns, this.singleColumn, this.settingsKey);
97
+ }
88
98
  }, 0);
89
99
  }
90
100
  }
91
101
  handleIncomingMessages(message) {
92
102
  switch (message.type) {
93
103
  case SkyTileDashboardMessageType.ExpandAll:
94
- this.dashboardService.setAllTilesCollapsed(false);
104
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").setAllTilesCollapsed(false);
95
105
  break;
96
106
  case SkyTileDashboardMessageType.CollapseAll:
97
- this.dashboardService.setAllTilesCollapsed(true);
107
+ __classPrivateFieldGet(this, _SkyTileDashboardComponent_dashboardService, "f").setAllTilesCollapsed(true);
98
108
  break;
99
109
  }
100
110
  }
101
111
  }
112
+ _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();
102
113
  SkyTileDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyMediaQueryService }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
103
- SkyTileDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", 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: "<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", 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] });
114
+ SkyTileDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", 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" }] });
104
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
105
116
  type: Component,
106
- args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], template: "<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", 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"] }]
117
+ 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"] }]
107
118
  }], ctorParameters: function () { return [{ type: i1.SkyTileDashboardService }, { type: i2.SkyMediaQueryService }, { type: i3.SkyLibResourcesService, decorators: [{
108
119
  type: Optional
109
120
  }] }]; }, propDecorators: { config: [{
@@ -124,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
124
135
  static: false,
125
136
  }]
126
137
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBSTNHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBRW5FOztHQUVHO0FBT0gsTUFBTSxPQUFPLHlCQUF5QjtJQWlFcEMsWUFDVSxnQkFBeUMsRUFDekMsVUFBZ0MsRUFDcEIsZ0JBQXlDO1FBRnJELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsZUFBVSxH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QkFvQkE7MkZEY2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLHVCQUF1QixDQUFDOzswQkFzRWpDLFFBQVE7NENBOURBLE1BQU07c0JBRGhCLEtBQUs7Z0JBa0JDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBV0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxZQUFZO3NCQURsQixNQUFNO2dCQUlDLE9BQU87c0JBRGQsWUFBWTt1QkFBQywrQkFBK0I7Z0JBT3RDLFlBQVk7c0JBSmxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsK0JBQStCO3dCQUNyQyxNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMsIFNreU1lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbmZpZyB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWcnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgY29udGFpbmVyIHRvIGdyb3VwIG11bHRpcGxlIHRpbGVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZS1kYXNoYm9hcmQnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtTa3lUaWxlRGFzaGJvYXJkU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogUG9wdWxhdGVzIHRoZSB0aWxlIGRhc2hib2FyZCBiYXNlZCBvbiB0aGUgYFNreVRpbGVEYXNoYm9hcmRDb25maWdgIG9iamVjdC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogU2t5VGlsZURhc2hib2FyZENvbmZpZykge1xuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy5jb25maWdTZXQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IHZhbHVlO1xuICAgICAgdGhpcy5jb25maWdTZXQgPSB0cnVlO1xuICAgICAgdGhpcy5jaGVja1JlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIHRpbGUgZGFzaGJvYXJkLiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3QgdGhlXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5VGlsZURhc2hib2FyZE1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHVuaXF1ZSBrZXkgZm9yIHRoZSBVSSBDb25maWcgU2VydmljZSB0byByZXRyaWV2ZSBzdG9yZWQgc2V0dGluZ3NcbiAgICogZnJvbSBhIGRhdGFiYXNlLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2Ugc2F2ZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdXNlcnNcbiAgICogdG8gcHJlc2VydmUgdGhlIGxheW91dCBhbmQgY29sbGFwc2VkIHN0YXRlIG9mIHRpbGUgZGFzaGJvYXJkcy4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHJlbGllcyBvbiBgaWRgIHZhbHVlcyBmcm9tIHRoZSBgY29uZmlnYCBwcm9wZXJ0eSB0byBtYWludGFpbiB1c2VyIHNldHRpbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgVUkgQ29uZmlnIFNlcnZpY2UsIHNlZSB0aGVcbiAgICogW3N0aWNreSBzZXR0aW5ncyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2dldC1zdGFydGVkL3N0aWNreS1zZXR0aW5ncykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSBkYXNoYm9hcmQgY2hhbmdlcyBzdGF0ZSBhbmQgZW1pdHMgYSBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnXG4gICAqIG9iamVjdC4gVGhpcyBvY2N1cnMgd2hlbiB0aWxlcyBjb2xsYXBzZSBvciBleHBhbmQgYW5kIHdoZW4gdXNlcnMgZHJhZyBhbmQgZHJvcFxuICAgKiB0aWxlcyB0byByZWFycmFuZ2UgdGhlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUaWxlRGFzaGJvYXJkQ29uZmlnPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudClcbiAgcHJpdmF0ZSBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlQ29sdW1uJywge1xuICAgIHJlYWQ6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudDtcblxuICBwdWJsaWMgdGlsZU1vdmVkUmVwb3J0OiBzdHJpbmc7XG5cbiAgcHVibGljIG1vdmVJbnN0cnVjdGlvbnNJZCA9XG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkICsgJy1tb3ZlLWluc3RydWN0aW9ucyc7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnO1xuXG4gIHByaXZhdGUgY29uZmlnU2V0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWRpYVF1ZXJ5OiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlc291cmNlc1NlcnZpY2U/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFyaWEgbGl2ZSByZWdpb24gd2l0aCB0aWxlIGRyYWcgaW5mb1xuICAgICAgICBpZiAoY29uZmlnLm1vdmVkVGlsZSAmJiB0aGlzLnJlc291cmNlc1NlcnZpY2UpIHtcbiAgICAgICAgICBsZXQgbWVzc2FnZU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm1lZGlhUXVlcnkuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy54cyB8fFxuICAgICAgICAgICAgdGhpcy5tZWRpYVF1ZXJ5LmN1cnJlbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMuc21cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbi5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5wb3NpdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uW1xuICAgICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUuY29sdW1uIC0gMVxuICAgICAgICAgICAgICBdLnRpbGVzLmxlbmd0aC50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbGVNb3ZlZFJlcG9ydCA9IG1lc3NhZ2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnZpZXdSZWFkeSA9IHRydWU7XG4gICAgdGhpcy5jaGVja1JlYWR5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdSZWFkeSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5pbml0KFxuICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICAgICB0aGlzLnNpbmdsZUNvbHVtbixcbiAgICAgICAgICB0aGlzLnNldHRpbmdzS2V5XG4gICAgICAgICk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZTogU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUuRXhwYW5kQWxsOlxuICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUuQ29sbGFwc2VBbGw6XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhbiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBjbGFzcz1cInNreS1hc3Npc3RpdmUtdGV4dFwiPlxuICB7eyB0aWxlTW92ZWRSZXBvcnQgfX1cbjwvc3Bhbj5cbjxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnPy5sYXlvdXQ/Lm11bHRpQ29sdW1uXCJcbiAgY2xhc3M9XCJza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LW11bHRpXCJcbiAgW25nU3R5bGVdPVwie1xuICAgICdmbGV4LWJhc2lzJzogMTAwIC8gY29uZmlnPy5sYXlvdXQ/Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICB9XCJcbj5cbjwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbjxza3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uXG4gIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1zaW5nbGVcIlxuICAjc2luZ2xlQ29sdW1uXG4+XG48L3NreS10aWxlLWRhc2hib2FyZC1jb2x1bW4+XG48c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgJ3NreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnMnIHwgc2t5TGliUmVzb3VyY2VzXG59fTwvc3Bhbj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUkzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7SUFnRXBDLFlBQ0UsZ0JBQXlDLEVBQ3pDLGlCQUF1QyxFQUMzQixnQkFBeUM7UUFqRHZEOzs7V0FHRztRQUVJLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7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REFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkQsTUFBTTtZQUVSLEtBQUssMkJBQTJCLENBQUMsV0FBVztnQkFDMUMsdUJBQUEsSUFBSSxtREFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsTUFBTTtTQUNUO0lBQ0gsQ0FBQzs7O3NIQTVKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixrTEFGekIsQ0FBQyx1QkFBdUIsQ0FBQyxtSEFpRDVCLCtCQUErQiwwQ0FKekIsK0JBQStCLGdEQzdFL0MsZ3RCQXNCQTsyRkRZYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsdUJBQXVCLENBQUM7OzBCQXFFakMsUUFBUTs0Q0E3REEsTUFBTTtzQkFEaEIsS0FBSztnQkFrQkMsYUFBYTtzQkFEbkIsS0FBSztnQkFXQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLCtCQUErQjtnQkFPdEMsWUFBWTtzQkFKbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUU7d0JBQ3pCLElBQUksRUFBRSwrQkFBK0I7d0JBQ3JDLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cywgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb250YWluZXIgdG8gZ3JvdXAgbXVsdGlwbGUgdGlsZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHRpbGUgZGFzaGJvYXJkIGJhc2VkIG9uIHRoZSBgU2t5VGlsZURhc2hib2FyZENvbmZpZ2Agb2JqZWN0LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmICF0aGlzLiNjb25maWdTZXQpIHtcbiAgICAgIHRoaXMuI19jb25maWcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NvbmZpZ1NldCA9IHRydWU7XG4gICAgICB0aGlzLmNoZWNrUmVhZHkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIHRpbGUgZGFzaGJvYXJkLiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3QgdGhlXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5VGlsZURhc2hib2FyZE1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHVuaXF1ZSBrZXkgZm9yIHRoZSBVSSBDb25maWcgU2VydmljZSB0byByZXRyaWV2ZSBzdG9yZWQgc2V0dGluZ3NcbiAgICogZnJvbSBhIGRhdGFiYXNlLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2Ugc2F2ZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdXNlcnNcbiAgICogdG8gcHJlc2VydmUgdGhlIGxheW91dCBhbmQgY29sbGFwc2VkIHN0YXRlIG9mIHRpbGUgZGFzaGJvYXJkcy4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHJlbGllcyBvbiBgaWRgIHZhbHVlcyBmcm9tIHRoZSBgY29uZmlnYCBwcm9wZXJ0eSB0byBtYWludGFpbiB1c2VyIHNldHRpbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgVUkgQ29uZmlnIFNlcnZpY2UsIHNlZSB0aGVcbiAgICogW3N0aWNreSBzZXR0aW5ncyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2dldC1zdGFydGVkL3N0aWNreS1zZXR0aW5ncykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSBkYXNoYm9hcmQgY2hhbmdlcyBzdGF0ZSBhbmQgZW1pdHMgYSBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnXG4gICAqIG9iamVjdC4gVGhpcyBvY2N1cnMgd2hlbiB0aWxlcyBjb2xsYXBzZSBvciBleHBhbmQgYW5kIHdoZW4gdXNlcnMgZHJhZyBhbmQgZHJvcFxuICAgKiB0aWxlcyB0byByZWFycmFuZ2UgdGhlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUaWxlRGFzaGJvYXJkQ29uZmlnPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudClcbiAgcHVibGljIGNvbHVtbnM6IFF1ZXJ5TGlzdDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzaW5nbGVDb2x1bW4nLCB7XG4gICAgcmVhZDogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCxcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB0aWxlTW92ZWRSZXBvcnQgPSAnJztcblxuICBwdWJsaWMgbW92ZUluc3RydWN0aW9uc0lkOiBzdHJpbmc7XG5cbiAgI2NvbmZpZ1NldCA9IGZhbHNlO1xuICAjZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2U7XG4gICNtZWRpYVF1ZXJ5U2VydmljZTogU2t5TWVkaWFRdWVyeVNlcnZpY2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3Jlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICN2aWV3UmVhZHkgPSBmYWxzZTtcbiAgI19jb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICAgbWVkaWFRdWVyeVNlcnZpY2U6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJlc291cmNlc1NlcnZpY2U/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UgPSBkYXNoYm9hcmRTZXJ2aWNlO1xuICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlID0gbWVkaWFRdWVyeVNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gICAgdGhpcy5tb3ZlSW5zdHJ1Y3Rpb25zSWQgPVxuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZCArICctbW92ZS1pbnN0cnVjdGlvbnMnO1xuXG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFyaWEgbGl2ZSByZWdpb24gd2l0aCB0aWxlIGRyYWcgaW5mb1xuICAgICAgICBpZiAoY29uZmlnLm1vdmVkVGlsZSAmJiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgICAgICAgbGV0IG1lc3NhZ2VPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy54cyB8fFxuICAgICAgICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy5zbVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUgPSB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICAgICAgICdza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0JyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS50aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUuY29sdW1uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4ubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbltcbiAgICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbiAtIDFcbiAgICAgICAgICAgICAgXS50aWxlcy5sZW5ndGgudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy50aWxlTW92ZWRSZXBvcnQgPSBtZXNzYWdlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI3ZpZXdSZWFkeSA9IHRydWU7XG4gICAgdGhpcy5jaGVja1JlYWR5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN2aWV3UmVhZHkgJiYgdGhpcy5jb25maWcgJiYgdGhpcy5jb2x1bW5zICYmIHRoaXMuc2luZ2xlQ29sdW1uKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29sdW1ucyAmJiB0aGlzLnNpbmdsZUNvbHVtbikge1xuICAgICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuaW5pdChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgdGhpcy5zaW5nbGVDb2x1bW4sXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzS2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnXCI+XG4gIDxzcGFuIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGNsYXNzPVwic2t5LWFzc2lzdGl2ZS10ZXh0XCI+XG4gICAge3sgdGlsZU1vdmVkUmVwb3J0IH19XG4gIDwvc3Bhbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5cIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1tdWx0aVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2ZsZXgtYmFzaXMnOiAxMDAgLyBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICAgIH1cIlxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtc2luZ2xlXCJcbiAgICAjc2luZ2xlQ29sdW1uXG4gID5cbiAgPC9za3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19