@skyux/indicators 5.0.0-beta.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/bundles/skyux-indicators-testing.umd.js +15 -11
- package/bundles/skyux-indicators-testing.umd.js.map +1 -1
- package/bundles/skyux-indicators.umd.js +1113 -858
- package/bundles/skyux-indicators.umd.js.map +1 -1
- package/documentation.json +6097 -0
- package/esm2015/modules/alert/alert.component.js +27 -24
- package/esm2015/modules/alert/alert.module.js +31 -18
- package/esm2015/modules/chevron/chevron.component.js +24 -24
- package/esm2015/modules/chevron/chevron.module.js +29 -18
- package/esm2015/modules/help-inline/help-inline.component.js +20 -15
- package/esm2015/modules/help-inline/help-inline.module.js +31 -18
- package/esm2015/modules/icon/icon-class-list.pipe.js +13 -14
- package/esm2015/modules/icon/icon-resolver.service.js +11 -15
- package/esm2015/modules/icon/icon-stack-item.js +2 -1
- package/esm2015/modules/icon/icon-stack.component.js +22 -21
- package/esm2015/modules/icon/icon.component.js +27 -28
- package/esm2015/modules/icon/icon.module.js +30 -20
- package/esm2015/modules/icon/types/icon-type.js +2 -1
- package/esm2015/modules/icon/types/icon-variant-type.js +2 -1
- package/esm2015/modules/key-info/key-info-label.component.js +13 -11
- package/esm2015/modules/key-info/key-info-value.component.js +13 -11
- package/esm2015/modules/key-info/key-info.component.js +17 -15
- package/esm2015/modules/key-info/key-info.module.js +30 -21
- package/esm2015/modules/label/label-type.js +2 -1
- package/esm2015/modules/label/label.component.js +19 -15
- package/esm2015/modules/label/label.module.js +24 -17
- package/esm2015/modules/shared/indicator-description-type.js +2 -1
- package/esm2015/modules/shared/indicator-icon-type.js +2 -1
- package/esm2015/modules/shared/indicator-icon-utility.js +1 -1
- package/esm2015/modules/shared/indicator-icon.js +2 -1
- package/esm2015/modules/shared/sky-indicators-resources.module.js +41 -0
- package/esm2015/modules/status-indicator/status-indicator.component.js +26 -28
- package/esm2015/modules/status-indicator/status-indicator.module.js +29 -18
- package/esm2015/modules/text-highlight/text-highlight.directive.js +25 -25
- package/esm2015/modules/text-highlight/text-highlight.module.js +23 -18
- package/esm2015/modules/tokens/token.component.js +32 -40
- package/esm2015/modules/tokens/tokens.component.js +86 -74
- package/esm2015/modules/tokens/tokens.module.js +33 -20
- package/esm2015/modules/tokens/types/token-selected-event-args.js +2 -1
- package/esm2015/modules/tokens/types/token.js +2 -1
- package/esm2015/modules/tokens/types/tokens-message-type.js +1 -1
- package/esm2015/modules/tokens/types/tokens-message.js +2 -1
- package/esm2015/modules/wait/wait-adapter.service.js +29 -27
- package/esm2015/modules/wait/wait-page-adapter.service.js +15 -12
- package/esm2015/modules/wait/wait-page.component.js +19 -18
- package/esm2015/modules/wait/wait.component.js +35 -36
- package/esm2015/modules/wait/wait.module.js +32 -23
- package/esm2015/modules/wait/wait.service.js +37 -46
- package/esm2015/public-api.js +36 -0
- package/esm2015/skyux-indicators.js +2 -23
- package/esm2015/testing/alert-fixture.js +1 -1
- package/esm2015/testing/label-fixture.js +1 -1
- package/esm2015/testing/public-api.js +4 -0
- package/esm2015/testing/skyux-indicators-testing.js +2 -2
- package/esm2015/testing/wait-fixture.js +1 -1
- package/fesm2015/skyux-indicators-testing.js.map +1 -1
- package/fesm2015/skyux-indicators.js +752 -616
- package/fesm2015/skyux-indicators.js.map +1 -1
- package/modules/alert/alert.component.d.ts +3 -0
- package/modules/alert/alert.module.d.ts +10 -0
- package/modules/chevron/chevron.component.d.ts +4 -1
- package/modules/chevron/chevron.module.d.ts +9 -0
- package/modules/help-inline/help-inline.component.d.ts +3 -0
- package/modules/help-inline/help-inline.module.d.ts +10 -0
- package/modules/icon/icon-class-list.pipe.d.ts +3 -0
- package/modules/icon/icon-resolver.service.d.ts +3 -0
- package/modules/icon/icon-stack.component.d.ts +3 -0
- package/modules/icon/icon.component.d.ts +3 -0
- package/modules/icon/icon.module.d.ts +9 -0
- package/modules/key-info/key-info-label.component.d.ts +3 -0
- package/modules/key-info/key-info-value.component.d.ts +3 -0
- package/modules/key-info/key-info.component.d.ts +3 -0
- package/modules/key-info/key-info.module.d.ts +8 -0
- package/modules/label/label.component.d.ts +3 -0
- package/modules/label/label.module.d.ts +7 -0
- package/modules/shared/sky-indicators-resources.module.d.ts +14 -0
- package/modules/status-indicator/status-indicator.component.d.ts +3 -0
- package/modules/status-indicator/status-indicator.module.d.ts +9 -0
- package/modules/text-highlight/text-highlight.directive.d.ts +3 -0
- package/modules/text-highlight/text-highlight.module.d.ts +5 -0
- package/modules/tokens/token.component.d.ts +4 -1
- package/modules/tokens/tokens.component.d.ts +3 -0
- package/modules/tokens/tokens.module.d.ts +10 -0
- package/modules/wait/wait-adapter.service.d.ts +3 -0
- package/modules/wait/wait-page-adapter.service.d.ts +3 -0
- package/modules/wait/wait-page.component.d.ts +3 -0
- package/modules/wait/wait.component.d.ts +3 -0
- package/modules/wait/wait.module.d.ts +9 -0
- package/modules/wait/wait.service.d.ts +3 -0
- package/package.json +12 -27
- package/public-api.d.ts +33 -0
- package/skyux-indicators.d.ts +2 -22
- package/testing/package.json +2 -5
- package/testing/{public_api.d.ts → public-api.d.ts} +0 -0
- package/testing/skyux-indicators-testing.d.ts +2 -1
- package/CHANGELOG.md +0 -203
- package/bundles/skyux-indicators-testing.umd.min.js +0 -2
- package/bundles/skyux-indicators-testing.umd.min.js.map +0 -1
- package/bundles/skyux-indicators.umd.min.js +0 -16
- package/bundles/skyux-indicators.umd.min.js.map +0 -1
- package/esm2015/modules/shared/indicators-resources.module.js +0 -17
- package/esm2015/plugin-resources/indicators-resources-provider.js +0 -16
- package/esm2015/public_api.js +0 -13
- package/esm2015/testing/public_api.js +0 -4
- package/esm5/modules/alert/alert.component.js +0 -62
- package/esm5/modules/alert/alert.module.js +0 -32
- package/esm5/modules/chevron/chevron.component.js +0 -35
- package/esm5/modules/chevron/chevron.module.js +0 -30
- package/esm5/modules/help-inline/help-inline.component.js +0 -26
- package/esm5/modules/help-inline/help-inline.module.js +0 -32
- package/esm5/modules/icon/icon-class-list.pipe.js +0 -39
- package/esm5/modules/icon/icon-resolver.service.js +0 -57
- package/esm5/modules/icon/icon-stack-item.js +0 -1
- package/esm5/modules/icon/icon-stack.component.js +0 -25
- package/esm5/modules/icon/icon.component.js +0 -38
- package/esm5/modules/icon/icon.module.js +0 -31
- package/esm5/modules/icon/types/icon-type.js +0 -1
- package/esm5/modules/icon/types/icon-variant-type.js +0 -1
- package/esm5/modules/key-info/key-info-label.component.js +0 -19
- package/esm5/modules/key-info/key-info-value.component.js +0 -19
- package/esm5/modules/key-info/key-info.component.js +0 -25
- package/esm5/modules/key-info/key-info.module.js +0 -30
- package/esm5/modules/label/label-type.js +0 -1
- package/esm5/modules/label/label.component.js +0 -41
- package/esm5/modules/label/label.module.js +0 -26
- package/esm5/modules/shared/indicator-description-type.js +0 -1
- package/esm5/modules/shared/indicator-icon-type.js +0 -1
- package/esm5/modules/shared/indicator-icon-utility.js +0 -45
- package/esm5/modules/shared/indicator-icon.js +0 -1
- package/esm5/modules/shared/indicators-resources.module.js +0 -20
- package/esm5/modules/status-indicator/status-indicator.component.js +0 -111
- package/esm5/modules/status-indicator/status-indicator.module.js +0 -30
- package/esm5/modules/text-highlight/text-highlight.directive.js +0 -134
- package/esm5/modules/text-highlight/text-highlight.module.js +0 -24
- package/esm5/modules/tokens/token.component.js +0 -134
- package/esm5/modules/tokens/tokens.component.js +0 -325
- package/esm5/modules/tokens/tokens.module.js +0 -33
- package/esm5/modules/tokens/types/token-selected-event-args.js +0 -1
- package/esm5/modules/tokens/types/token.js +0 -1
- package/esm5/modules/tokens/types/tokens-message-type.js +0 -24
- package/esm5/modules/tokens/types/tokens-message.js +0 -1
- package/esm5/modules/wait/wait-adapter.service.js +0 -219
- package/esm5/modules/wait/wait-page-adapter.service.js +0 -25
- package/esm5/modules/wait/wait-page.component.js +0 -25
- package/esm5/modules/wait/wait.component.js +0 -107
- package/esm5/modules/wait/wait.module.js +0 -34
- package/esm5/modules/wait/wait.service.js +0 -176
- package/esm5/plugin-resources/indicators-resources-provider.js +0 -17
- package/esm5/public_api.js +0 -13
- package/esm5/skyux-indicators.js +0 -26
- package/esm5/testing/alert-fixture.js +0 -85
- package/esm5/testing/label-fixture.js +0 -50
- package/esm5/testing/public_api.js +0 -4
- package/esm5/testing/skyux-indicators-testing.js +0 -5
- package/esm5/testing/wait-fixture.js +0 -42
- package/fesm5/skyux-indicators-testing.js +0 -178
- package/fesm5/skyux-indicators-testing.js.map +0 -1
- package/fesm5/skyux-indicators.js +0 -1892
- package/fesm5/skyux-indicators.js.map +0 -1
- package/modules/shared/indicators-resources.module.d.ts +0 -2
- package/plugin-resources/indicators-resources-provider.d.ts +0 -5
- package/public_api.d.ts +0 -19
- package/skyux-indicators.metadata.json +0 -1
- package/src/assets/img/guidelines/alert/alert-anatomy.png +0 -0
- package/src/assets/img/guidelines/alert/alert-layout-1.png +0 -0
- package/src/assets/img/guidelines/alert/alert-layout-2.png +0 -0
- package/src/assets/img/guidelines/alert/alert-layout-3.png +0 -0
- package/src/assets/img/guidelines/alert/alert-option-1.png +0 -0
- package/src/assets/img/guidelines/alert/alert-type-1.png +0 -0
- package/src/assets/img/guidelines/alert/alert-type-2.png +0 -0
- package/src/assets/img/guidelines/alert/alert-type-3.png +0 -0
- package/src/assets/img/guidelines/alert/alert-type-4.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-1.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-2.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-3.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-4.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-5.png +0 -0
- package/src/assets/img/guidelines/alert/alert-usage-6.png +0 -0
- package/src/assets/img/guidelines/key-info/horizontal-layout.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-anatomy.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-1.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-2.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-3.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-4.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-5.png +0 -0
- package/src/assets/img/guidelines/key-info/key-info-usage-6.png +0 -0
- package/src/assets/img/guidelines/key-info/vertical-layout.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-anatomy.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-1.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-2-5.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-2.5.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-2.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-3.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-4.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-5.png +0 -0
- package/src/assets/img/guidelines/status-indicator/status-indicator-usage-6.png +0 -0
- package/src/assets/locales/resources_en_US.json +0 -54
- package/testing/skyux-indicators-testing.metadata.json +0 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
1
|
import { animate, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { ChangeDetectionStrategy,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
|
|
4
3
|
import { Subject } from 'rxjs';
|
|
5
4
|
import { takeUntil } from 'rxjs/operators';
|
|
6
5
|
import { SkyTokensMessageType } from './types/tokens-message-type';
|
|
7
6
|
import { SkyTokenComponent } from './token.component';
|
|
8
|
-
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./token.component";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
export class SkyTokensComponent {
|
|
9
11
|
constructor(changeDetector) {
|
|
10
12
|
this.changeDetector = changeDetector;
|
|
11
13
|
/**
|
|
@@ -218,76 +220,86 @@ let SkyTokensComponent = class SkyTokensComponent {
|
|
|
218
220
|
token
|
|
219
221
|
});
|
|
220
222
|
}
|
|
221
|
-
}
|
|
222
|
-
SkyTokensComponent
|
|
223
|
-
{ type:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
__decorate([
|
|
238
|
-
Input()
|
|
239
|
-
], SkyTokensComponent.prototype, "focusable", null);
|
|
240
|
-
__decorate([
|
|
241
|
-
Input()
|
|
242
|
-
], SkyTokensComponent.prototype, "tokens", null);
|
|
243
|
-
__decorate([
|
|
244
|
-
Input()
|
|
245
|
-
], SkyTokensComponent.prototype, "messageStream", null);
|
|
246
|
-
__decorate([
|
|
247
|
-
Output()
|
|
248
|
-
], SkyTokensComponent.prototype, "focusIndexOverRange", void 0);
|
|
249
|
-
__decorate([
|
|
250
|
-
Output()
|
|
251
|
-
], SkyTokensComponent.prototype, "focusIndexUnderRange", void 0);
|
|
252
|
-
__decorate([
|
|
253
|
-
Output()
|
|
254
|
-
], SkyTokensComponent.prototype, "tokenSelected", void 0);
|
|
255
|
-
__decorate([
|
|
256
|
-
Output()
|
|
257
|
-
], SkyTokensComponent.prototype, "tokensChange", void 0);
|
|
258
|
-
__decorate([
|
|
259
|
-
ViewChildren(SkyTokenComponent)
|
|
260
|
-
], SkyTokensComponent.prototype, "tokenComponents", void 0);
|
|
261
|
-
SkyTokensComponent = __decorate([
|
|
262
|
-
Component({
|
|
263
|
-
selector: 'sky-tokens',
|
|
264
|
-
template: "<div *ngIf=\"tokens\"\n class=\"sky-tokens\"\n [@blockAnimationOnLoad]\n [attr.role]=\"(tokens && tokens.length) ? 'list' : null\"\n>\n <sky-token *ngFor=\"let token of tokens; let i = index; trackBy: trackTokenFn\"\n role=\"listitem\"\n [@.disabled]=\"!trackWith\"\n [@dismiss]\n [disabled]=\"disabled\"\n [dismissible]=\"dismissible\"\n [focusable]=\"focusable\"\n (dismiss)=\"removeToken(token)\"\n (click)=\"onTokenClick(token)\"\n (keydown)=\"onTokenKeyDown($event)\"\n (keyup.enter)=\"selectToken(token);$event.preventDefault();\"\n (tokenFocus)=\"activeIndex = i\"\n >\n {{ token.value[displayWith] }}\n </sky-token>\n <div\n class=\"sky-tokens-content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n",
|
|
265
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
266
|
-
animations: [
|
|
267
|
-
trigger('blockAnimationOnLoad', [
|
|
268
|
-
transition(':enter', [])
|
|
223
|
+
}
|
|
224
|
+
SkyTokensComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
225
|
+
SkyTokensComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyTokensComponent, selector: "sky-tokens", inputs: { disabled: "disabled", dismissible: "dismissible", displayWith: "displayWith", trackWith: "trackWith", focusable: "focusable", tokens: "tokens", messageStream: "messageStream" }, outputs: { focusIndexOverRange: "focusIndexOverRange", focusIndexUnderRange: "focusIndexUnderRange", tokenSelected: "tokenSelected", tokensChange: "tokensChange" }, viewQueries: [{ propertyName: "tokenComponents", predicate: SkyTokenComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"tokens\"\n class=\"sky-tokens\"\n [@blockAnimationOnLoad]\n [attr.role]=\"(tokens && tokens.length) ? 'list' : null\"\n>\n <sky-token *ngFor=\"let token of tokens; let i = index; trackBy: trackTokenFn\"\n role=\"listitem\"\n [@.disabled]=\"!trackWith\"\n [@dismiss]\n [disabled]=\"disabled\"\n [dismissible]=\"dismissible\"\n [focusable]=\"focusable\"\n (dismiss)=\"removeToken(token)\"\n (click)=\"onTokenClick(token)\"\n (keydown)=\"onTokenKeyDown($event)\"\n (keyup.enter)=\"selectToken(token);$event.preventDefault();\"\n (tokenFocus)=\"activeIndex = i\"\n >\n {{ token.value[displayWith] }}\n </sky-token>\n <div\n class=\"sky-tokens-content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.sky-tokens{display:flex;flex-wrap:wrap;align-items:baseline;margin:-2px}.sky-tokens .sky-tokens-content,.sky-tokens ::ng-deep sky-token{flex:0 0 auto;display:inline-flex;padding:2px}.sky-tokens .sky-tokens-content{flex-grow:1;flex-basis:0px}.sky-tokens .sky-tokens-content:before{content:\"\\200b\"}\n"], components: [{ type: i1.SkyTokenComponent, selector: "sky-token", inputs: ["disabled", "ariaLabel", "dismissible", "focusable"], outputs: ["dismiss", "tokenFocus"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [
|
|
226
|
+
trigger('blockAnimationOnLoad', [
|
|
227
|
+
transition(':enter', [])
|
|
228
|
+
]),
|
|
229
|
+
trigger('dismiss', [
|
|
230
|
+
transition(':enter', [
|
|
231
|
+
style({
|
|
232
|
+
opacity: 0,
|
|
233
|
+
width: 0
|
|
234
|
+
}),
|
|
235
|
+
animate('150ms ease-in', style({
|
|
236
|
+
opacity: 1,
|
|
237
|
+
width: '*'
|
|
238
|
+
}))
|
|
269
239
|
]),
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}),
|
|
276
|
-
animate('150ms ease-in', style({
|
|
277
|
-
opacity: 1,
|
|
278
|
-
width: '*'
|
|
279
|
-
}))
|
|
280
|
-
]),
|
|
281
|
-
transition(':leave', [
|
|
282
|
-
animate('150ms ease-in', style({
|
|
283
|
-
opacity: 0,
|
|
284
|
-
width: 0
|
|
285
|
-
}))
|
|
286
|
-
])
|
|
240
|
+
transition(':leave', [
|
|
241
|
+
animate('150ms ease-in', style({
|
|
242
|
+
opacity: 0,
|
|
243
|
+
width: 0
|
|
244
|
+
}))
|
|
287
245
|
])
|
|
288
|
-
]
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9pbmRpY2F0b3JzLyIsInNvdXJjZXMiOlsibW9kdWxlcy90b2tlbnMvdG9rZW5zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsT0FBTyxFQUVSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBVXhCLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSw2QkFBNkIsQ0FBQztBQU1yQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUEyQzNCLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBK0o3QixZQUNVLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQW5FM0M7OztXQUdHO1FBRUksd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0RDs7O1dBR0c7UUFFSSx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZEOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUVyRTs7O1dBR0c7UUFFSSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUErQjdDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWFwQyxzRkFBc0Y7UUFDdEYsc0ZBQXNGO1FBQ3RGLGlCQUFpQjtRQUNqQixJQUFJLENB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QWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFVBQVUsRUFBRTtZQUNWLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtnQkFDOUIsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7YUFDekIsQ0FBQztZQUNGLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pCLFVBQVUsQ0FDUixRQUFRLEVBQ1I7b0JBQ0UsS0FBSyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDO3dCQUNWLEtBQUssRUFBRSxDQUFDO3FCQUNULENBQUM7b0JBQ0YsT0FBTyxDQUNMLGVBQWUsRUFDZixLQUFLLENBQUM7d0JBQ0osT0FBTyxFQUFFLENBQUM7d0JBQ1YsS0FBSyxFQUFFLEdBQUc7cUJBQ1gsQ0FBQyxDQUNIO2lCQUNGLENBQ0Y7Z0JBQ0QsVUFBVSxDQUNSLFFBQVEsRUFDUjtvQkFDRSxPQUFPLENBQ0wsZUFBZSxFQUNmLEtBQUssQ0FBQzt3QkFDSixPQUFPLEVBQUUsQ0FBQzt3QkFDVixLQUFLLEVBQUUsQ0FBQztxQkFDVCxDQUFDLENBQ0g7aUJBQ0YsQ0FDRjthQUNGLENBQUM7U0FDSDs7S0FDRixDQUFDO0dBQ1csa0JBQWtCLENBb1M5QjtTQXBTWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlblxufSBmcm9tICcuL3R5cGVzL3Rva2VuJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5zTWVzc2FnZVxufSBmcm9tICcuL3R5cGVzL3Rva2Vucy1tZXNzYWdlJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5zTWVzc2FnZVR5cGVcbn0gZnJvbSAnLi90eXBlcy90b2tlbnMtbWVzc2FnZS10eXBlJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5TZWxlY3RlZEV2ZW50QXJnc1xufSBmcm9tICcuL3R5cGVzL3Rva2VuLXNlbGVjdGVkLWV2ZW50LWFyZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlbkNvbXBvbmVudFxufSBmcm9tICcuL3Rva2VuLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10b2tlbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9rZW5zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9rZW5zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignYmxvY2tBbmltYXRpb25PbkxvYWQnLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdkaXNtaXNzJywgW1xuICAgICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgJzE1MG1zIGVhc2UtaW4nLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICB3aWR0aDogJyonXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICcxNTBtcyBlYXNlLWluJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICApXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lUb2tlbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0b2tlbnMgbGlzdCB0byBwcmV2ZW50IHVzZXJzIGZyb20gc2VsZWN0aW5nIHRva2VucyxcbiAgICogZGlzbWlzc2luZyB0b2tlbnMsIG9yIG5hdmlnYXRpbmcgdGhyb3VnaCB0aGUgbGlzdCB3aXRoIHRoZSBhcnJvdyBrZXlzLiBXaGVuIHRoZSB0b2tlbnMgbGlzdFxuICAgKiBpcyBkaXNhYmxlZCwgdXNlcnMgY2FuIHN0aWxsIHBsYWNlIGZvY3VzIG9uIGl0ZW1zIGluIHRoZSBsaXN0IHVzaW5nIHRoZSBgVGFiYCBrZXkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdXNlcnMgY2FuIHJlbW92ZSB0b2tlbnMgZnJvbSB0aGUgbGlzdCBieSBzZWxlY3RpbmcgdGhlaXIgY2xvc2UgYnV0dG9uc1xuICAgKiBvciBwcmVzc2luZyB0aGUgYEJhY2tzcGFjZWAga2V5LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc21pc3NpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzbWlzc2libGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzbWlzc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLl9kaXNtaXNzaWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdG9rZW4gcHJvcGVydHkgdG8gZGlzcGxheSBmb3IgZWFjaCBpdGVtIGluIHRoZSB0b2tlbnMgbGlzdC5cbiAgICogQGRlZmF1bHQgJ25hbWUnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlXaXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kaXNwbGF5V2l0aCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5V2l0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5V2l0aCB8fCAnbmFtZSc7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b2tlbiBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIHRva2VuJ3MgdW5pcXVlIGlkZW50aWZpZXIuIFdoZW4gdGhpcyBwcm9wZXJ0eVxuICAgKiBpcyBzZXQsIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQgd2hlbiBkaXNtaXNzaW5nIHRva2Vucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmFja1dpdGg6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdXNlcnMgY2FuIGZvY3VzIG9uIGl0ZW1zIGluIHRoZSBsaXN0IHVzaW5nIHRoZSBgVGFiYCBrZXkuXG4gICAqIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBhYmlsaXR5IG9mIHVzZXJzIHRvIHNlbGVjdCB0b2tlbnMsIGRpc21pc3MgdG9rZW5zLFxuICAgKiBvciBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBsaXN0IHdpdGggdGhlIGFycm93IGtleXMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9jdXNhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9jdXNhYmxlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuX2ZvY3VzYWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBhcnJheSBvZiB0b2tlbnMgdG8gaW5jbHVkZSBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9rZW5zKHZhbHVlOiBTa3lUb2tlbltdKSB7XG4gICAgdGhpcy5fdG9rZW5zID0gdmFsdWU7XG4gICAgdGhpcy50b2tlbnNDaGFuZ2UuZW1pdCh0aGlzLl90b2tlbnMpO1xuICB9XG5cbiAgcHVibGljIGdldCB0b2tlbnMoKTogU2t5VG9rZW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VucyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gb2JzZXJ2YWJsZSBvZiBgU2t5VG9rZW5zTWVzc2FnZWAgdGhhdCBjYW4gcGxhY2UgZm9jdXMgb24gYVxuICAgKiBwYXJ0aWN1bGFyIHRva2VuIG9yIHJlbW92ZSB0aGUgYWN0aXZlIHRva2VuIGZyb20gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lc3NhZ2VTdHJlYW0odmFsdWU6IFN1YmplY3Q8U2t5VG9rZW5zTWVzc2FnZT4pIHtcbiAgICB0aGlzLl9tZXNzYWdlU3RyZWFtID0gdmFsdWU7XG4gICAgdGhpcy5pbml0TWVzc2FnZVN0cmVhbSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlU3RyZWFtKCk6IFN1YmplY3Q8U2t5VG9rZW5zTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlU3RyZWFtO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgbmF2aWdhdGUgdGhyb3VnaCB0aGUgdG9rZW5zIGxpc3Qgd2l0aCB0aGUgYFRhYmAga2V5XG4gICAqIGFuZCBhdHRlbXB0IHRvIG1vdmUgcGFzdCB0aGUgZmluYWwgdG9rZW4gaW4gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZvY3VzSW5kZXhPdmVyUmFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnNuYXZpZ2F0ZSB0aHJvdWdoIHRoZSB0b2tlbnMgbGlzdCB3aXRoIHRoZSBgVGFiYCBrZXlcbiAgICogYW5kIGF0dGVtcHQgdG8gbW92ZSBiZWZvcmUgdGhlIGZpcnN0IHRva2VuIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmb2N1c0luZGV4VW5kZXJSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgYSB0b2tlbiBpbiB0aGUgbGlzdC4gVGhpcyBldmVudCBlbWl0cyB0aGUgc2VsZWN0ZWQgdG9rZW4uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHRva2VuU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRva2VuU2VsZWN0ZWRFdmVudEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRva2VucyBpbiB0aGUgbGlzdCBjaGFuZ2UuXG4gICAqIFRoaXMgZXZlbnQgZW1pdHMgYW4gYXJyYXkgb2YgdGhlIHRva2VucyBpbiB0aGUgdXBkYXRlZCBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB0b2tlbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRva2VuW10+KCk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVJbmRleCB8fCAwO1xuICB9XG4gIHB1YmxpYyBzZXQgYWN0aXZlSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+PSB0aGlzLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b2tlbnMubGVuZ3RoIC0gMTtcbiAgICAgIHRoaXMuZm9jdXNJbmRleE92ZXJSYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgdmFsdWUgPSAwO1xuICAgICAgdGhpcy5mb2N1c0luZGV4VW5kZXJSYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlSW5kZXggPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHRyYWNrVG9rZW5GbjogKGluZGV4OiBudW1iZXIsIGl0ZW06IFNreVRva2VuKSA9PiBhbnk7XG5cbiAgQFZpZXdDaGlsZHJlbihTa3lUb2tlbkNvbXBvbmVudClcbiAgcHJpdmF0ZSB0b2tlbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTa3lUb2tlbkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBtZXNzYWdlU3RyZWFtU3ViOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rpc21pc3NpYmxlOiBib29sZWFuO1xuICBwcml2YXRlIF9mb2N1c2FibGU6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Rva2VuczogU2t5VG9rZW5bXTtcbiAgcHJpdmF0ZSBfZGlzcGxheVdpdGg6IHN0cmluZztcbiAgcHJpdmF0ZSBfbWVzc2FnZVN0cmVhbTogU3ViamVjdDxTa3lUb2tlbnNNZXNzYWdlPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICAvLyBBbmd1bGFyIGNhbGxzIHRoZSB0cmFja0J5IGZ1bmN0aW9uIHdpdGhvdXQgYXBwbHlpbmcgdGhlIGNvbXBvbmVudCBpbnN0YW5jZSdzIHNjb3BlLlxuICAgIC8vIFVzZSBhIGZhdC1hcnJvdyBmdW5jdGlvbiBzbyB0aGUgY3VycmVudCBjb21wb25lbnQgaW5zdGFuY2UncyB0cmFja1dpdGggcHJvcGVydHkgY2FuXG4gICAgLy8gYmUgcmVmZXJlbmNlZC5cbiAgICB0aGlzLnRyYWNrVG9rZW5GbiA9IChfaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLnRyYWNrV2l0aCkge1xuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZVt0aGlzLnRyYWNrV2l0aF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRva2VuQ2xpY2sodG9rZW46IFNreVRva2VuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5vdGlmeVRva2VuU2VsZWN0ZWQodG9rZW4pO1xuICB9XG5cbiAgcHVibGljIG9uVG9rZW5LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3dpdGNoLWRlZmF1bHQgKi9cbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMubWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNQcmV2aW91c1Rva2VuIH0pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnUmlnaHQnOlxuICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVRva2Vuc01lc3NhZ2VUeXBlLkZvY3VzTmV4dFRva2VuIH0pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdFRva2VuKHRva2VuOiBTa3lUb2tlbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5ub3RpZnlUb2tlblNlbGVjdGVkKHRva2VuKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVG9rZW4odG9rZW46IFNreVRva2VuKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbnMgPSB0aGlzLnRva2Vucy5maWx0ZXIodCA9PiB0ICE9PSB0b2tlbik7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNUb2tlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dFRva2VuKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICB0aGlzLmZvY3VzQWN0aXZlVG9rZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNMYXN0VG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMudG9rZW5Db21wb25lbnRzLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzQWN0aXZlVG9rZW4oKTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW5Db21wb25lbnQgPSB0aGlzLnRva2VuQ29tcG9uZW50c1xuICAgICAgLmZpbmQoKF9jb21wOiBTa3lUb2tlbkNvbXBvbmVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5hY3RpdmVJbmRleCA9PT0gaSk7XG4gICAgICB9KTtcblxuICAgIGlmICh0b2tlbkNvbXBvbmVudCkge1xuICAgICAgdG9rZW5Db21wb25lbnQuZm9jdXNFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVBY3RpdmVUb2tlbigpOiB2b2lkIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW3RoaXMuYWN0aXZlSW5kZXhdO1xuICAgIGlmICh0b2tlbikge1xuICAgICAgdGhpcy5yZW1vdmVUb2tlbih0b2tlbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWVzc2FnZVN0cmVhbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlU3RyZWFtU3ViKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTdHJlYW1TdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZXNzYWdlU3RyZWFtKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTdHJlYW1TdWIgPSB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUb2tlbnNNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0ICovXG4gICAgICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNMYXN0VG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzTGFzdFRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c0FjdGl2ZVRva2VuOlxuICAgICAgICAgICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c1ByZXZpb3VzVG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNUb2tlbigpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNOZXh0VG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzTmV4dFRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5SZW1vdmVBY3RpdmVUb2tlbjpcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aXZlVG9rZW4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3RpZnlUb2tlblNlbGVjdGVkKHRva2VuOiBTa3lUb2tlbik6IHZvaWQge1xuICAgIHRoaXMudG9rZW5TZWxlY3RlZC5lbWl0KHtcbiAgICAgIHRva2VuXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
246
|
+
])
|
|
247
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensComponent, decorators: [{
|
|
249
|
+
type: Component,
|
|
250
|
+
args: [{
|
|
251
|
+
selector: 'sky-tokens',
|
|
252
|
+
templateUrl: './tokens.component.html',
|
|
253
|
+
styleUrls: ['./tokens.component.scss'],
|
|
254
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
255
|
+
animations: [
|
|
256
|
+
trigger('blockAnimationOnLoad', [
|
|
257
|
+
transition(':enter', [])
|
|
258
|
+
]),
|
|
259
|
+
trigger('dismiss', [
|
|
260
|
+
transition(':enter', [
|
|
261
|
+
style({
|
|
262
|
+
opacity: 0,
|
|
263
|
+
width: 0
|
|
264
|
+
}),
|
|
265
|
+
animate('150ms ease-in', style({
|
|
266
|
+
opacity: 1,
|
|
267
|
+
width: '*'
|
|
268
|
+
}))
|
|
269
|
+
]),
|
|
270
|
+
transition(':leave', [
|
|
271
|
+
animate('150ms ease-in', style({
|
|
272
|
+
opacity: 0,
|
|
273
|
+
width: 0
|
|
274
|
+
}))
|
|
275
|
+
])
|
|
276
|
+
])
|
|
277
|
+
]
|
|
278
|
+
}]
|
|
279
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], dismissible: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], displayWith: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], trackWith: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], focusable: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], tokens: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], messageStream: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], focusIndexOverRange: [{
|
|
294
|
+
type: Output
|
|
295
|
+
}], focusIndexUnderRange: [{
|
|
296
|
+
type: Output
|
|
297
|
+
}], tokenSelected: [{
|
|
298
|
+
type: Output
|
|
299
|
+
}], tokensChange: [{
|
|
300
|
+
type: Output
|
|
301
|
+
}], tokenComponents: [{
|
|
302
|
+
type: ViewChildren,
|
|
303
|
+
args: [SkyTokenComponent]
|
|
304
|
+
}] } });
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZGljYXRvcnMvc3JjL21vZHVsZXMvdG9rZW5zL3Rva2Vucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmRpY2F0b3JzL3NyYy9tb2R1bGVzL3Rva2Vucy90b2tlbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsT0FBTyxFQUVSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBVXhCLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSw2QkFBNkIsQ0FBQztBQU1yQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUEyQzNCLE1BQU0sT0FBTyxrQkFBa0I7SUErSjdCLFlBQ1UsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBbkUzQzs7O1dBR0c7UUFFSSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXREOzs7V0FHRztRQUVJLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkQ7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRXJFOzs7V0FHRztRQUVJLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQStCN0Msa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FB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SztnQkFlQyxtQkFBbUI7c0JBRHpCLE1BQU07Z0JBUUEsb0JBQW9CO3NCQUQxQixNQUFNO2dCQU9BLGFBQWE7c0JBRG5CLE1BQU07Z0JBUUEsWUFBWTtzQkFEbEIsTUFBTTtnQkE2QkMsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlblxufSBmcm9tICcuL3R5cGVzL3Rva2VuJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5zTWVzc2FnZVxufSBmcm9tICcuL3R5cGVzL3Rva2Vucy1tZXNzYWdlJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5zTWVzc2FnZVR5cGVcbn0gZnJvbSAnLi90eXBlcy90b2tlbnMtbWVzc2FnZS10eXBlJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5TZWxlY3RlZEV2ZW50QXJnc1xufSBmcm9tICcuL3R5cGVzL3Rva2VuLXNlbGVjdGVkLWV2ZW50LWFyZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlbkNvbXBvbmVudFxufSBmcm9tICcuL3Rva2VuLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10b2tlbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9rZW5zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9rZW5zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignYmxvY2tBbmltYXRpb25PbkxvYWQnLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdkaXNtaXNzJywgW1xuICAgICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgJzE1MG1zIGVhc2UtaW4nLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICB3aWR0aDogJyonXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICcxNTBtcyBlYXNlLWluJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICApXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lUb2tlbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0b2tlbnMgbGlzdCB0byBwcmV2ZW50IHVzZXJzIGZyb20gc2VsZWN0aW5nIHRva2VucyxcbiAgICogZGlzbWlzc2luZyB0b2tlbnMsIG9yIG5hdmlnYXRpbmcgdGhyb3VnaCB0aGUgbGlzdCB3aXRoIHRoZSBhcnJvdyBrZXlzLiBXaGVuIHRoZSB0b2tlbnMgbGlzdFxuICAgKiBpcyBkaXNhYmxlZCwgdXNlcnMgY2FuIHN0aWxsIHBsYWNlIGZvY3VzIG9uIGl0ZW1zIGluIHRoZSBsaXN0IHVzaW5nIHRoZSBgVGFiYCBrZXkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdXNlcnMgY2FuIHJlbW92ZSB0b2tlbnMgZnJvbSB0aGUgbGlzdCBieSBzZWxlY3RpbmcgdGhlaXIgY2xvc2UgYnV0dG9uc1xuICAgKiBvciBwcmVzc2luZyB0aGUgYEJhY2tzcGFjZWAga2V5LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc21pc3NpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzbWlzc2libGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzbWlzc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLl9kaXNtaXNzaWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdG9rZW4gcHJvcGVydHkgdG8gZGlzcGxheSBmb3IgZWFjaCBpdGVtIGluIHRoZSB0b2tlbnMgbGlzdC5cbiAgICogQGRlZmF1bHQgJ25hbWUnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlXaXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kaXNwbGF5V2l0aCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5V2l0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5V2l0aCB8fCAnbmFtZSc7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b2tlbiBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIHRva2VuJ3MgdW5pcXVlIGlkZW50aWZpZXIuIFdoZW4gdGhpcyBwcm9wZXJ0eVxuICAgKiBpcyBzZXQsIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQgd2hlbiBkaXNtaXNzaW5nIHRva2Vucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmFja1dpdGg6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdXNlcnMgY2FuIGZvY3VzIG9uIGl0ZW1zIGluIHRoZSBsaXN0IHVzaW5nIHRoZSBgVGFiYCBrZXkuXG4gICAqIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBhYmlsaXR5IG9mIHVzZXJzIHRvIHNlbGVjdCB0b2tlbnMsIGRpc21pc3MgdG9rZW5zLFxuICAgKiBvciBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBsaXN0IHdpdGggdGhlIGFycm93IGtleXMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9jdXNhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9jdXNhYmxlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuX2ZvY3VzYWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBhcnJheSBvZiB0b2tlbnMgdG8gaW5jbHVkZSBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9rZW5zKHZhbHVlOiBTa3lUb2tlbltdKSB7XG4gICAgdGhpcy5fdG9rZW5zID0gdmFsdWU7XG4gICAgdGhpcy50b2tlbnNDaGFuZ2UuZW1pdCh0aGlzLl90b2tlbnMpO1xuICB9XG5cbiAgcHVibGljIGdldCB0b2tlbnMoKTogU2t5VG9rZW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VucyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gb2JzZXJ2YWJsZSBvZiBgU2t5VG9rZW5zTWVzc2FnZWAgdGhhdCBjYW4gcGxhY2UgZm9jdXMgb24gYVxuICAgKiBwYXJ0aWN1bGFyIHRva2VuIG9yIHJlbW92ZSB0aGUgYWN0aXZlIHRva2VuIGZyb20gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lc3NhZ2VTdHJlYW0odmFsdWU6IFN1YmplY3Q8U2t5VG9rZW5zTWVzc2FnZT4pIHtcbiAgICB0aGlzLl9tZXNzYWdlU3RyZWFtID0gdmFsdWU7XG4gICAgdGhpcy5pbml0TWVzc2FnZVN0cmVhbSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlU3RyZWFtKCk6IFN1YmplY3Q8U2t5VG9rZW5zTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlU3RyZWFtO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgbmF2aWdhdGUgdGhyb3VnaCB0aGUgdG9rZW5zIGxpc3Qgd2l0aCB0aGUgYFRhYmAga2V5XG4gICAqIGFuZCBhdHRlbXB0IHRvIG1vdmUgcGFzdCB0aGUgZmluYWwgdG9rZW4gaW4gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZvY3VzSW5kZXhPdmVyUmFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnNuYXZpZ2F0ZSB0aHJvdWdoIHRoZSB0b2tlbnMgbGlzdCB3aXRoIHRoZSBgVGFiYCBrZXlcbiAgICogYW5kIGF0dGVtcHQgdG8gbW92ZSBiZWZvcmUgdGhlIGZpcnN0IHRva2VuIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmb2N1c0luZGV4VW5kZXJSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgYSB0b2tlbiBpbiB0aGUgbGlzdC4gVGhpcyBldmVudCBlbWl0cyB0aGUgc2VsZWN0ZWQgdG9rZW4uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHRva2VuU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRva2VuU2VsZWN0ZWRFdmVudEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRva2VucyBpbiB0aGUgbGlzdCBjaGFuZ2UuXG4gICAqIFRoaXMgZXZlbnQgZW1pdHMgYW4gYXJyYXkgb2YgdGhlIHRva2VucyBpbiB0aGUgdXBkYXRlZCBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB0b2tlbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVRva2VuW10+KCk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVJbmRleCB8fCAwO1xuICB9XG4gIHB1YmxpYyBzZXQgYWN0aXZlSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+PSB0aGlzLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b2tlbnMubGVuZ3RoIC0gMTtcbiAgICAgIHRoaXMuZm9jdXNJbmRleE92ZXJSYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgdmFsdWUgPSAwO1xuICAgICAgdGhpcy5mb2N1c0luZGV4VW5kZXJSYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlSW5kZXggPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHRyYWNrVG9rZW5GbjogKGluZGV4OiBudW1iZXIsIGl0ZW06IFNreVRva2VuKSA9PiBhbnk7XG5cbiAgQFZpZXdDaGlsZHJlbihTa3lUb2tlbkNvbXBvbmVudClcbiAgcHJpdmF0ZSB0b2tlbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTa3lUb2tlbkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBtZXNzYWdlU3RyZWFtU3ViOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rpc21pc3NpYmxlOiBib29sZWFuO1xuICBwcml2YXRlIF9mb2N1c2FibGU6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Rva2VuczogU2t5VG9rZW5bXTtcbiAgcHJpdmF0ZSBfZGlzcGxheVdpdGg6IHN0cmluZztcbiAgcHJpdmF0ZSBfbWVzc2FnZVN0cmVhbTogU3ViamVjdDxTa3lUb2tlbnNNZXNzYWdlPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICAvLyBBbmd1bGFyIGNhbGxzIHRoZSB0cmFja0J5IGZ1bmN0aW9uIHdpdGhvdXQgYXBwbHlpbmcgdGhlIGNvbXBvbmVudCBpbnN0YW5jZSdzIHNjb3BlLlxuICAgIC8vIFVzZSBhIGZhdC1hcnJvdyBmdW5jdGlvbiBzbyB0aGUgY3VycmVudCBjb21wb25lbnQgaW5zdGFuY2UncyB0cmFja1dpdGggcHJvcGVydHkgY2FuXG4gICAgLy8gYmUgcmVmZXJlbmNlZC5cbiAgICB0aGlzLnRyYWNrVG9rZW5GbiA9IChfaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLnRyYWNrV2l0aCkge1xuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZVt0aGlzLnRyYWNrV2l0aF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRva2VuQ2xpY2sodG9rZW46IFNreVRva2VuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5vdGlmeVRva2VuU2VsZWN0ZWQodG9rZW4pO1xuICB9XG5cbiAgcHVibGljIG9uVG9rZW5LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3dpdGNoLWRlZmF1bHQgKi9cbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMubWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNQcmV2aW91c1Rva2VuIH0pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnUmlnaHQnOlxuICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVRva2Vuc01lc3NhZ2VUeXBlLkZvY3VzTmV4dFRva2VuIH0pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdFRva2VuKHRva2VuOiBTa3lUb2tlbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5ub3RpZnlUb2tlblNlbGVjdGVkKHRva2VuKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVG9rZW4odG9rZW46IFNreVRva2VuKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbnMgPSB0aGlzLnRva2Vucy5maWx0ZXIodCA9PiB0ICE9PSB0b2tlbik7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNUb2tlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dFRva2VuKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICB0aGlzLmZvY3VzQWN0aXZlVG9rZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNMYXN0VG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMudG9rZW5Db21wb25lbnRzLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzQWN0aXZlVG9rZW4oKTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW5Db21wb25lbnQgPSB0aGlzLnRva2VuQ29tcG9uZW50c1xuICAgICAgLmZpbmQoKF9jb21wOiBTa3lUb2tlbkNvbXBvbmVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5hY3RpdmVJbmRleCA9PT0gaSk7XG4gICAgICB9KTtcblxuICAgIGlmICh0b2tlbkNvbXBvbmVudCkge1xuICAgICAgdG9rZW5Db21wb25lbnQuZm9jdXNFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVBY3RpdmVUb2tlbigpOiB2b2lkIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW3RoaXMuYWN0aXZlSW5kZXhdO1xuICAgIGlmICh0b2tlbikge1xuICAgICAgdGhpcy5yZW1vdmVUb2tlbih0b2tlbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWVzc2FnZVN0cmVhbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlU3RyZWFtU3ViKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTdHJlYW1TdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZXNzYWdlU3RyZWFtKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTdHJlYW1TdWIgPSB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUb2tlbnNNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0ICovXG4gICAgICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNMYXN0VG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzTGFzdFRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c0FjdGl2ZVRva2VuOlxuICAgICAgICAgICAgdGhpcy5mb2N1c0FjdGl2ZVRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c1ByZXZpb3VzVG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNUb2tlbigpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNOZXh0VG9rZW46XG4gICAgICAgICAgICB0aGlzLmZvY3VzTmV4dFRva2VuKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTa3lUb2tlbnNNZXNzYWdlVHlwZS5SZW1vdmVBY3RpdmVUb2tlbjpcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aXZlVG9rZW4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3RpZnlUb2tlblNlbGVjdGVkKHRva2VuOiBTa3lUb2tlbik6IHZvaWQge1xuICAgIHRoaXMudG9rZW5TZWxlY3RlZC5lbWl0KHtcbiAgICAgIHRva2VuXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ0b2tlbnNcIlxuICBjbGFzcz1cInNreS10b2tlbnNcIlxuICBbQGJsb2NrQW5pbWF0aW9uT25Mb2FkXVxuICBbYXR0ci5yb2xlXT1cIih0b2tlbnMgJiYgdG9rZW5zLmxlbmd0aCkgPyAnbGlzdCcgOiBudWxsXCJcbj5cbiAgPHNreS10b2tlbiAqbmdGb3I9XCJsZXQgdG9rZW4gb2YgdG9rZW5zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja1Rva2VuRm5cIlxuICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgW0AuZGlzYWJsZWRdPVwiIXRyYWNrV2l0aFwiXG4gICAgW0BkaXNtaXNzXVxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Rpc21pc3NpYmxlXT1cImRpc21pc3NpYmxlXCJcbiAgICBbZm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgKGRpc21pc3MpPVwicmVtb3ZlVG9rZW4odG9rZW4pXCJcbiAgICAoY2xpY2spPVwib25Ub2tlbkNsaWNrKHRva2VuKVwiXG4gICAgKGtleWRvd24pPVwib25Ub2tlbktleURvd24oJGV2ZW50KVwiXG4gICAgKGtleXVwLmVudGVyKT1cInNlbGVjdFRva2VuKHRva2VuKTskZXZlbnQucHJldmVudERlZmF1bHQoKTtcIlxuICAgICh0b2tlbkZvY3VzKT1cImFjdGl2ZUluZGV4ID0gaVwiXG4gID5cbiAgICB7eyB0b2tlbi52YWx1ZVtkaXNwbGF5V2l0aF0gfX1cbiAgPC9za3ktdG9rZW4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS10b2tlbnMtY29udGVudFwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,30 +1,43 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
1
|
import { NgModule } from '@angular/core';
|
|
3
2
|
import { CommonModule } from '@angular/common';
|
|
4
3
|
import { SkyI18nModule } from '@skyux/i18n';
|
|
5
4
|
import { SkyTokenComponent } from './token.component';
|
|
6
5
|
import { SkyTokensComponent } from './tokens.component';
|
|
7
6
|
import { SkyIconModule } from '../icon/icon.module';
|
|
8
|
-
import { SkyIndicatorsResourcesModule } from '../shared/indicators-resources.module';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
import { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class SkyTokensModule {
|
|
10
|
+
}
|
|
11
|
+
SkyTokensModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
SkyTokensModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensModule, declarations: [SkyTokenComponent,
|
|
13
|
+
SkyTokensComponent], imports: [CommonModule,
|
|
14
|
+
SkyI18nModule,
|
|
15
|
+
SkyIconModule,
|
|
16
|
+
SkyIndicatorsResourcesModule], exports: [SkyTokenComponent,
|
|
17
|
+
SkyTokensComponent] });
|
|
18
|
+
SkyTokensModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensModule, imports: [[
|
|
18
19
|
CommonModule,
|
|
19
20
|
SkyI18nModule,
|
|
20
21
|
SkyIconModule,
|
|
21
22
|
SkyIndicatorsResourcesModule
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
]] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTokensModule, decorators: [{
|
|
25
|
+
type: NgModule,
|
|
26
|
+
args: [{
|
|
27
|
+
declarations: [
|
|
28
|
+
SkyTokenComponent,
|
|
29
|
+
SkyTokensComponent
|
|
30
|
+
],
|
|
31
|
+
imports: [
|
|
32
|
+
CommonModule,
|
|
33
|
+
SkyI18nModule,
|
|
34
|
+
SkyIconModule,
|
|
35
|
+
SkyIndicatorsResourcesModule
|
|
36
|
+
],
|
|
37
|
+
exports: [
|
|
38
|
+
SkyTokenComponent,
|
|
39
|
+
SkyTokensComponent
|
|
40
|
+
]
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZGljYXRvcnMvc3JjL21vZHVsZXMvdG9rZW5zL3Rva2Vucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLGFBQWEsRUFDZCxNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsNEJBQTRCLEVBQzdCLE1BQU0sMkNBQTJDLENBQUM7O0FBa0JuRCxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQWR4QixpQkFBaUI7UUFDakIsa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLDRCQUE0QixhQUc1QixpQkFBaUI7UUFDakIsa0JBQWtCOzZHQUdULGVBQWUsWUFYakI7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLGFBQWE7WUFDYiw0QkFBNEI7U0FDN0I7MkZBTVUsZUFBZTtrQkFoQjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIENvbW1vbk1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHtcbiAgU2t5VG9rZW5Db21wb25lbnRcbn0gZnJvbSAnLi90b2tlbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlbnNDb21wb25lbnRcbn0gZnJvbSAnLi90b2tlbnMuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5SWNvbk1vZHVsZVxufSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5SW5kaWNhdG9yc1Jlc291cmNlc01vZHVsZVxufSBmcm9tICcuLi9zaGFyZWQvc2t5LWluZGljYXRvcnMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVRva2VuQ29tcG9uZW50LFxuICAgIFNreVRva2Vuc0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJbmRpY2F0b3JzUmVzb3VyY2VzTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lUb2tlbkNvbXBvbmVudCxcbiAgICBTa3lUb2tlbnNDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lUb2tlbnNNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tc2VsZWN0ZWQtZXZlbnQtYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZGljYXRvcnMvc3JjL21vZHVsZXMvdG9rZW5zL3R5cGVzL3Rva2VuLXNlbGVjdGVkLWV2ZW50LWFyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNreVRva2VuXG59IGZyb20gJy4vdG9rZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreVRva2VuU2VsZWN0ZWRFdmVudEFyZ3Mge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0b2tlbi5cbiAgICovXG4gIHRva2VuPzogU2t5VG9rZW47XG59XG4iXX0=
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmRpY2F0b3JzL3NyYy9tb2R1bGVzL3Rva2Vucy90eXBlcy90b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lUb2tlbiB7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdG9rZW4ncyBjb250ZW50cy5cbiAgICovXG4gIHZhbHVlOiBhbnk7XG59XG4iXX0=
|
|
@@ -21,4 +21,4 @@ export var SkyTokensMessageType;
|
|
|
21
21
|
*/
|
|
22
22
|
SkyTokensMessageType[SkyTokensMessageType["RemoveActiveToken"] = 4] = "RemoveActiveToken";
|
|
23
23
|
})(SkyTokensMessageType || (SkyTokensMessageType = {}));
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLW1lc3NhZ2UtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZGljYXRvcnMvc3JjL21vZHVsZXMvdG9rZW5zL3R5cGVzL3Rva2Vucy1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBMkJYO0FBM0JELFdBQVksb0JBQW9CO0lBRTlCOztPQUVHO0lBQ0gsbUZBQWtCLENBQUE7SUFFbEI7O09BRUc7SUFDSCx1RkFBb0IsQ0FBQTtJQUVwQjs7T0FFRztJQUNILDJGQUFzQixDQUFBO0lBRXRCOztPQUVHO0lBQ0gsbUZBQWtCLENBQUE7SUFFbEI7O09BRUc7SUFDSCx5RkFBcUIsQ0FBQTtBQUV2QixDQUFDLEVBM0JXLG9CQUFvQixLQUFwQixvQkFBb0IsUUEyQi9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2t5VG9rZW5zTWVzc2FnZVR5cGUge1xuXG4gIC8qKlxuICAgKiBQbGFjZXMgZm9jdXMgb24gdGhlIGxhc3QgdG9rZW4gaW4gdGhlIGxpc3QuXG4gICAqL1xuICBGb2N1c0xhc3RUb2tlbiA9IDAsXG5cbiAgLyoqXG4gICAqIFBsYWNlcyBmb2N1cyBvbiB0aGUgdG9rZW4gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuXG4gICAqL1xuICBGb2N1c0FjdGl2ZVRva2VuID0gMSxcblxuICAvKipcbiAgICogUGxhY2VzIGZvY3VzIG9uIHRoZSB0b2tlbiBiZWZvcmUgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0b2tlbi5cbiAgICovXG4gIEZvY3VzUHJldmlvdXNUb2tlbiA9IDIsXG5cbiAgLyoqXG4gICAqIFBsYWNlcyBmb2N1cyBvbiB0aGUgdG9rZW4gYWZ0ZXIgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0b2tlbi5cbiAgICovXG4gIEZvY3VzTmV4dFRva2VuID0gMyxcblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgdG9rZW4gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgZnJvbSB0aGUgbGlzdCBvZiB0b2tlbnMuXG4gICAqL1xuICBSZW1vdmVBY3RpdmVUb2tlbiA9IDRcblxufVxuIl19
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLW1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmRpY2F0b3JzL3NyYy9tb2R1bGVzL3Rva2Vucy90eXBlcy90b2tlbnMtbWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU2t5VG9rZW5zTWVzc2FnZVR5cGVcbn0gZnJvbSAnLi90b2tlbnMtbWVzc2FnZS10eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBTa3lUb2tlbnNNZXNzYWdlIHtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG1lc3NhZ2UuXG4gICAqL1xuICB0eXBlPzogU2t5VG9rZW5zTWVzc2FnZVR5cGU7XG59XG4iXX0=
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { ElementRef, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
4
3
|
// Need to add the following to classes which contain static methods.
|
|
5
4
|
// See: https://github.com/ng-packagr/ng-packagr/issues/641
|
|
6
5
|
/**
|
|
7
6
|
* @internal
|
|
8
7
|
* @dynamic
|
|
9
8
|
*/
|
|
10
|
-
|
|
9
|
+
export class SkyWaitAdapterService {
|
|
11
10
|
constructor(rendererFactory) {
|
|
12
11
|
this.rendererFactory = rendererFactory;
|
|
13
12
|
this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
|
|
@@ -31,10 +30,11 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
31
30
|
this.clearDocumentFocus();
|
|
32
31
|
}
|
|
33
32
|
if (isFullPage) {
|
|
34
|
-
|
|
33
|
+
SkyWaitAdapterService.isPageWaitActive = true;
|
|
35
34
|
const endListenerFunc = this.renderer.listen(document.body, 'keydown', (event) => {
|
|
36
35
|
/*istanbul ignore else */
|
|
37
36
|
if (event.key) {
|
|
37
|
+
/* istanbul ignore else */
|
|
38
38
|
if (event.key.toLowerCase() === 'tab') {
|
|
39
39
|
event.target.blur();
|
|
40
40
|
event.preventDefault();
|
|
@@ -44,18 +44,19 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
|
-
|
|
47
|
+
SkyWaitAdapterService.busyElements[waitComponentId] = {
|
|
48
48
|
listener: endListenerFunc,
|
|
49
49
|
busyEl: undefined
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
53
|
const endListenerFunc = this.renderer.listen(busyEl, 'focusin', (event) => {
|
|
54
|
+
/* istanbul ignore else */
|
|
54
55
|
if (!isNonBlocking) {
|
|
55
56
|
event.preventDefault();
|
|
56
57
|
event.stopPropagation();
|
|
57
58
|
event.stopImmediatePropagation();
|
|
58
|
-
if (
|
|
59
|
+
if (SkyWaitAdapterService.isPageWaitActive) {
|
|
59
60
|
this.clearDocumentFocus();
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
@@ -66,7 +67,7 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
});
|
|
69
|
-
|
|
70
|
+
SkyWaitAdapterService.busyElements[waitComponentId] = {
|
|
70
71
|
listener: endListenerFunc,
|
|
71
72
|
busyEl: busyEl
|
|
72
73
|
};
|
|
@@ -75,11 +76,11 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
75
76
|
else {
|
|
76
77
|
this.renderer.removeAttribute(busyEl, 'aria-busy');
|
|
77
78
|
if (isFullPage) {
|
|
78
|
-
|
|
79
|
+
SkyWaitAdapterService.isPageWaitActive = false;
|
|
79
80
|
}
|
|
80
|
-
if (waitComponentId in
|
|
81
|
-
|
|
82
|
-
delete
|
|
81
|
+
if (waitComponentId in SkyWaitAdapterService.busyElements) {
|
|
82
|
+
SkyWaitAdapterService.busyElements[waitComponentId].listener();
|
|
83
|
+
delete SkyWaitAdapterService.busyElements[waitComponentId];
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
}
|
|
@@ -99,6 +100,8 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
99
100
|
}
|
|
100
101
|
else {
|
|
101
102
|
// Try wrapping the navigation
|
|
103
|
+
/* istanbul ignore next */
|
|
104
|
+
/* sanity check */
|
|
102
105
|
curIndex = modifier > 0 ? 0 : focussable.length - 1;
|
|
103
106
|
while (curIndex !== startingIndex &&
|
|
104
107
|
focussable[curIndex] &&
|
|
@@ -138,8 +141,8 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
138
141
|
if (this.isElementHidden(element)) {
|
|
139
142
|
return true;
|
|
140
143
|
}
|
|
141
|
-
for (const key of Object.keys(
|
|
142
|
-
const parentElement =
|
|
144
|
+
for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {
|
|
145
|
+
const parentElement = SkyWaitAdapterService.busyElements[key].busyEl;
|
|
143
146
|
if (parentElement && parentElement.contains(element)) {
|
|
144
147
|
return true;
|
|
145
148
|
}
|
|
@@ -147,6 +150,7 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
147
150
|
return false;
|
|
148
151
|
}
|
|
149
152
|
clearDocumentFocus() {
|
|
153
|
+
/* istanbul ignore else */
|
|
150
154
|
if (document.activeElement && document.activeElement.blur) {
|
|
151
155
|
document.activeElement.blur();
|
|
152
156
|
}
|
|
@@ -173,20 +177,18 @@ let SkyWaitAdapterService = SkyWaitAdapterService_1 = class SkyWaitAdapterServic
|
|
|
173
177
|
return this.focussableElements;
|
|
174
178
|
}
|
|
175
179
|
clearListeners() {
|
|
176
|
-
|
|
177
|
-
for (const key of Object.keys(
|
|
178
|
-
|
|
179
|
-
delete
|
|
180
|
+
SkyWaitAdapterService.isPageWaitActive = false;
|
|
181
|
+
for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {
|
|
182
|
+
SkyWaitAdapterService.busyElements[key].listener();
|
|
183
|
+
delete SkyWaitAdapterService.busyElements[key];
|
|
180
184
|
}
|
|
181
185
|
}
|
|
182
|
-
}
|
|
186
|
+
}
|
|
183
187
|
SkyWaitAdapterService.isPageWaitActive = false;
|
|
184
188
|
SkyWaitAdapterService.busyElements = {};
|
|
185
|
-
SkyWaitAdapterService
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
], SkyWaitAdapterService);
|
|
191
|
-
export { SkyWaitAdapterService };
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvaW5kaWNhdG9ycy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvd2FpdC93YWl0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLHFFQUFxRTtBQUNyRSwyREFBMkQ7QUFDM0Q7OztHQUdHO0FBRUgsSUFBYSxxQkFBcUIsNkJBQWxDLE1BQWEscUJBQXFCO0lBUWhDLFlBQ1UsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQWtCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBa0I7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLFlBQVksQ0FDakIsTUFBa0IsRUFDbEIsVUFBbUIsRUFDbkIsU0FBa0IsRUFDbEIsYUFBYSxHQUFHLEtBQUssRUFDckIsZUFBd0I7UUFFeEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFN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QU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ3ZHLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsdUJBQXFCLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQy9DLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBcUIsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNqRSx1QkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkQsT0FBTyx1QkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXpOZ0Isc0NBQWdCLEdBQUcsS0FBSyxDQUFDO0FBQ3pCLGtDQUFZLEdBQTBELEVBQUUsQ0FBQzs7WUFPN0QsZ0JBQWdCOztBQVRoQyxxQkFBcUI7SUFEakMsVUFBVSxFQUFFO0dBQ0EscUJBQXFCLENBME5qQztTQTFOWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5MlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gTmVlZCB0byBhZGQgdGhlIGZvbGxvd2luZyB0byBjbGFzc2VzIHdoaWNoIGNvbnRhaW4gc3RhdGljIG1ldGhvZHMuXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvaXNzdWVzLzY0MVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBkeW5hbWljXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lXYWl0QWRhcHRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBpc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIGJ1c3lFbGVtZW50czoge1trZXk6IHN0cmluZ106IHtidXN5RWw6IEhUTUxFbGVtZW50LCBsaXN0ZW5lcjogYW55fX0gPSB7fTtcblxuICBwcml2YXRlIGZvY3Vzc2FibGVFbGVtZW50czogSFRNTEVsZW1lbnRbXTtcblxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0V2FpdEJvdW5kcyh3YWl0RWw6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVdhaXRCb3VuZHMod2FpdEVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh3YWl0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCAncG9zaXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCdXN5U3RhdGUoXG4gICAgd2FpdEVsOiBFbGVtZW50UmVmLFxuICAgIGlzRnVsbFBhZ2U6IGJvb2xlYW4sXG4gICAgaXNXYWl0aW5nOiBib29sZWFuLFxuICAgIGlzTm9uQmxvY2tpbmcgPSBmYWxzZSxcbiAgICB3YWl0Q29tcG9uZW50SWQ/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYnVzeUVsID0gaXNGdWxsUGFnZSA/IGRvY3VtZW50LmJvZHkgOiB3YWl0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgaWYgKCFpc05vbkJsb2NraW5nKSB7XG4gICAgICBpZiAoaXNXYWl0aW5nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ1c3lFbCwgJ2FyaWEtYnVzeScsICd0cnVlJyk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZvY3VzIGZyb20gcGFnZSB3aGVuIGZ1bGwgcGFnZSBibG9ja2luZyB3YWl0XG4gICAgICAgIGlmIChpc0Z1bGxQYWdlIHx8IGJ1c3lFbC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgIHRoaXMuY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBlbmRMaXN0ZW5lckZ1bmMgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICAgICAgICAna2V5ZG93bicsXG4gICAgICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndGFiJykge1xuICAgICAgICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0gPSB7XG4gICAgICAgICAgICBsaXN0ZW5lcjogZW5kTGlzdGVuZXJGdW5jLFxuICAgICAgICAgICAgYnVzeUVsOiB1bmRlZmluZWRcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGVuZExpc3RlbmVyRnVuYyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgYnVzeUVsLFxuICAgICAgICAgICAgJ2ZvY3VzaW4nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaXNOb25CbG9ja2luZykge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0YWIgbmF2aWdhdGlvbiBpZiBhdHRlbXB0ZWQgaW50byB3YWl0ZWQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAgICAgICB0YXJnZXQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KHRhcmdldCwgdGhpcy5pc1NoaWZ0KGV2ZW50KSwgYnVzeUVsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0gPSB7XG4gICAgICAgICAgICBsaXN0ZW5lcjogZW5kTGlzdGVuZXJGdW5jLFxuICAgICAgICAgICAgYnVzeUVsOiBidXN5RWxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knKTtcblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhaXRDb21wb25lbnRJZCBpbiBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSB7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdLmxpc3RlbmVyKCk7XG4gICAgICAgICAgZGVsZXRlIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudCh0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCwgc2hpZnRLZXk6IGJvb2xlYW4sIGJ1c3lFbDogRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZvY3Vzc2FibGUgPSB0aGlzLmdldEZvY3Vzc2FibGVFbGVtZW50cygpO1xuXG4gICAgLy8gSWYgc2hpZnQgdGFiLCBnbyBpbiB0aGUgb3RoZXIgZGlyZWN0aW9uXG4gICAgY29uc3QgbW9kaWZpZXIgPSBzaGlmdEtleSA/IC0xIDogMTtcblxuICAgIC8vIEZpbmQgdGhlIG5leHQgbmF2aWdhYmxlIGVsZW1lbnQgdGhhdCBpc24ndCB3YWl0aW5nXG4gICAgY29uc3Qgc3RhcnRpbmdJbmRleCA9IGZvY3Vzc2FibGUuaW5kZXhPZih0YXJnZXRFbGVtZW50KTtcbiAgICBsZXQgY3VySW5kZXggPSBzdGFydGluZ0luZGV4ICsgbW9kaWZpZXI7XG4gICAgd2hpbGUgKGZvY3Vzc2FibGVbY3VySW5kZXhdICYmIHRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKSkge1xuICAgICAgY3VySW5kZXggKz0gbW9kaWZpZXI7XG4gICAgfVxuXG4gICAgaWYgKGZvY3Vzc2FibGVbY3VySW5kZXhdICYmICF0aGlzLmlzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c3NhYmxlW2N1ckluZGV4XSkpIHtcbiAgICAgIGZvY3Vzc2FibGVbY3VySW5kZXhdLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRyeSB3cmFwcGluZyB0aGUgbmF2aWdhdGlvblxuICAgICAgY3VySW5kZXggPSBtb2RpZmllciA+IDAgPyAwIDogZm9jdXNzYWJsZS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKFxuICAgICAgICBjdXJJbmRleCAhPT0gc3RhcnRpbmdJbmRleCAmJlxuICAgICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgICB0aGlzLmlzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c3NhYmxlW2N1ckluZGV4XSlcbiAgICAgICkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgY3VySW5kZXggKz0gbW9kaWZpZXI7XG4gICAgICB9XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGlmIChmb2N1c3NhYmxlW2N1ckluZGV4XSAmJiAhdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pKSB7XG4gICAgICAgIGZvY3Vzc2FibGVbY3VySW5kZXhdLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyB2YWxpZCB0YXJnZXQsIHdpcGUgZm9jdXNcbiAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjbGVhciBmb2N1c3NhYmxlRWxlbWVudHMgbGlzdFxuICAgIHRoaXMuZm9jdXNzYWJsZUVsZW1lbnRzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NoaWZ0KGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIERldGVybWluZSBpZiBzaGlmdCt0YWIgd2FzIHVzZWQgYmFzZWQgb24gZWxlbWVudCBvcmRlclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5nZXRGb2N1c3NhYmxlRWxlbWVudHMoKS5maWx0ZXIoZWxlbSA9PiAhdGhpcy5pc0VsZW1lbnRIaWRkZW4oZWxlbSkpO1xuXG4gICAgY29uc3QgcHJldmlvdXNJbmQgPSBlbGVtZW50cy5pbmRleE9mKChldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmQgPSBlbGVtZW50cy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICByZXR1cm4gcHJldmlvdXNJbmQgPT09IGN1cnJlbnRJbmQgKyAxXG4gICAgICB8fCAocHJldmlvdXNJbmQgPT09IDAgJiYgY3VycmVudEluZCA9PT0gZWxlbWVudHMubGVuZ3RoIC0gMSlcbiAgICAgIHx8IChwcmV2aW91c0luZCA+IGN1cnJlbnRJbmQpXG4gICAgICB8fCAhKGV2ZW50IGFzIGFueSkucmVsYXRlZFRhcmdldDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbGVtZW50SGlkZGVuKGVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgcmV0dXJuIHN0eWxlLmRpc3BsYXkgPT09ICdub25lJyB8fCBzdHlsZS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJztcbiAgfVxuXG4gIHByaXZhdGUgaXNFbGVtZW50QnVzeU9ySGlkZGVuKGVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRWxlbWVudEhpZGRlbihlbGVtZW50KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50cykpIHtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW2tleV0uYnVzeUVsO1xuICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgcGFyZW50RWxlbWVudC5jb250YWlucyhlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRvY3VtZW50Rm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgYW55KS5ibHVyKSB7XG4gICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBhbnkpLmJsdXIoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb2N1c3NhYmxlRWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgLy8gS2VlcCB0aGlzIGNhY2hlZCBzbyB3ZSBjYW4gcmVkdWNlIHF1ZXJ5c1xuICAgIGlmICh0aGlzLmZvY3Vzc2FibGVFbGVtZW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuZm9jdXNzYWJsZUVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8vIFNlbGVjdCBhbGwgcG9zc2libGUgZm9jdXNzYWJsZSBlbGVtZW50c1xuICAgIGNvbnN0IGZvY3Vzc2FibGVFbGVtZW50cyA9XG4gICAgICAnYVtocmVmXSwgJyArXG4gICAgICAnYXJlYVtocmVmXSwgJyArXG4gICAgICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgJyArXG4gICAgICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PVxcJy0xXFwnXSksICcgK1xuICAgICAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pLCAnICtcbiAgICAgICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pLCAnICtcbiAgICAgICdpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xuICAgICAgJypbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgJyArXG4gICAgICAnKltjb250ZW50ZWRpdGFibGU9dHJ1ZV0nO1xuXG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoXG4gICAgICBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoZm9jdXNzYWJsZUVsZW1lbnRzKSxcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbGVtZW50Lm9mZnNldFdpZHRoID4gMCB8fCBlbGVtZW50Lm9mZnNldEhlaWdodCA+IDAgfHwgZWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5mb2N1c3NhYmxlRWxlbWVudHM7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50cykpIHtcbiAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XS5saXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
189
|
+
SkyWaitAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyWaitAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
190
|
+
SkyWaitAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyWaitAdapterService });
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyWaitAdapterService, decorators: [{
|
|
192
|
+
type: Injectable
|
|
193
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmRpY2F0b3JzL3NyYy9tb2R1bGVzL3dhaXQvd2FpdC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFJWCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIscUVBQXFFO0FBQ3JFLDJEQUEyRDtBQUMzRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBUWhDLFlBQ1UsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQWtCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBa0I7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLFlBQVksQ0FDakIsTUFBa0IsRUFDbEIsVUFBbUIsRUFDbkIsU0FBa0IsRUFDbEIsYUFBYSxHQUFHLEtBQUssRUFDckIsZUFBd0I7UUFFeEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUUvRSxJQUFJLENBQUMs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QUMsV0FBVyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxPQUFPLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUN2RyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLHFCQUFxQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUMvQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDakUscUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8scUJBQXFCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQzs7QUE3TmMsc0NBQWdCLEdBQUcsS0FBSyxDQUFDO0FBQ3pCLGtDQUFZLEdBQTBELEVBQUUsQ0FBQztrSEFGN0UscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBOZWVkIHRvIGFkZCB0aGUgZm9sbG93aW5nIHRvIGNsYXNzZXMgd2hpY2ggY29udGFpbiBzdGF0aWMgbWV0aG9kcy5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvNjQxXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVdhaXRBZGFwdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIGlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdGF0aWMgYnVzeUVsZW1lbnRzOiB7W2tleTogc3RyaW5nXToge2J1c3lFbDogSFRNTEVsZW1lbnQsIGxpc3RlbmVyOiBhbnl9fSA9IHt9O1xuXG4gIHByaXZhdGUgZm9jdXNzYWJsZUVsZW1lbnRzOiBIVE1MRWxlbWVudFtdO1xuXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRXYWl0Qm91bmRzKHdhaXRFbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUod2FpdEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlV2FpdEJvdW5kcyh3YWl0RWw6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicpO1xuICB9XG5cbiAgcHVibGljIHNldEJ1c3lTdGF0ZShcbiAgICB3YWl0RWw6IEVsZW1lbnRSZWYsXG4gICAgaXNGdWxsUGFnZTogYm9vbGVhbixcbiAgICBpc1dhaXRpbmc6IGJvb2xlYW4sXG4gICAgaXNOb25CbG9ja2luZyA9IGZhbHNlLFxuICAgIHdhaXRDb21wb25lbnRJZD86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBidXN5RWwgPSBpc0Z1bGxQYWdlID8gZG9jdW1lbnQuYm9keSA6IHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICBpZiAoIWlzTm9uQmxvY2tpbmcpIHtcbiAgICAgIGlmIChpc1dhaXRpbmcpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnVzeUVsLCAnYXJpYS1idXN5JywgJ3RydWUnKTtcblxuICAgICAgICAvLyBSZW1vdmUgZm9jdXMgZnJvbSBwYWdlIHdoZW4gZnVsbCBwYWdlIGJsb2NraW5nIHdhaXRcbiAgICAgICAgaWYgKGlzRnVsbFBhZ2UgfHwgYnVzeUVsLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Z1bGxQYWdlKSB7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgIGNvbnN0IGVuZExpc3RlbmVyRnVuYyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3RhYicpIHtcbiAgICAgICAgICAgICAgICAgIChldmVudC50YXJnZXQgYXMgYW55KS5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdID0ge1xuICAgICAgICAgICAgbGlzdGVuZXI6IGVuZExpc3RlbmVyRnVuYyxcbiAgICAgICAgICAgIGJ1c3lFbDogdW5kZWZpbmVkXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBlbmRMaXN0ZW5lckZ1bmMgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGJ1c3lFbCxcbiAgICAgICAgICAgICdmb2N1c2luJyxcbiAgICAgICAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoIWlzTm9uQmxvY2tpbmcpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGFiIG5hdmlnYXRpb24gaWYgYXR0ZW1wdGVkIGludG8gd2FpdGVkIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgdGFyZ2V0LmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNOZXh0RWxlbWVudCh0YXJnZXQsIHRoaXMuaXNTaGlmdChldmVudCksIGJ1c3lFbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdID0ge1xuICAgICAgICAgICAgbGlzdGVuZXI6IGVuZExpc3RlbmVyRnVuYyxcbiAgICAgICAgICAgIGJ1c3lFbDogYnVzeUVsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoYnVzeUVsLCAnYXJpYS1idXN5Jyk7XG5cbiAgICAgICAgaWYgKGlzRnVsbFBhZ2UpIHtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuaXNQYWdlV2FpdEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3YWl0Q29tcG9uZW50SWQgaW4gU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50cykge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXS5saXN0ZW5lcigpO1xuICAgICAgICAgIGRlbGV0ZSBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dEVsZW1lbnQodGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsIHNoaWZ0S2V5OiBib29sZWFuLCBidXN5RWw6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmb2N1c3NhYmxlID0gdGhpcy5nZXRGb2N1c3NhYmxlRWxlbWVudHMoKTtcblxuICAgIC8vIElmIHNoaWZ0IHRhYiwgZ28gaW4gdGhlIG90aGVyIGRpcmVjdGlvblxuICAgIGNvbnN0IG1vZGlmaWVyID0gc2hpZnRLZXkgPyAtMSA6IDE7XG5cbiAgICAvLyBGaW5kIHRoZSBuZXh0IG5hdmlnYWJsZSBlbGVtZW50IHRoYXQgaXNuJ3Qgd2FpdGluZ1xuICAgIGNvbnN0IHN0YXJ0aW5nSW5kZXggPSBmb2N1c3NhYmxlLmluZGV4T2YodGFyZ2V0RWxlbWVudCk7XG4gICAgbGV0IGN1ckluZGV4ID0gc3RhcnRpbmdJbmRleCArIG1vZGlmaWVyO1xuICAgIHdoaWxlIChmb2N1c3NhYmxlW2N1ckluZGV4XSAmJiB0aGlzLmlzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c3NhYmxlW2N1ckluZGV4XSkpIHtcbiAgICAgIGN1ckluZGV4ICs9IG1vZGlmaWVyO1xuICAgIH1cblxuICAgIGlmIChmb2N1c3NhYmxlW2N1ckluZGV4XSAmJiAhdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pKSB7XG4gICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcnkgd3JhcHBpbmcgdGhlIG5hdmlnYXRpb25cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGN1ckluZGV4ID0gbW9kaWZpZXIgPiAwID8gMCA6IGZvY3Vzc2FibGUubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChcbiAgICAgICAgY3VySW5kZXggIT09IHN0YXJ0aW5nSW5kZXggJiZcbiAgICAgICAgZm9jdXNzYWJsZVtjdXJJbmRleF0gJiZcbiAgICAgICAgdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pXG4gICAgICApIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIGN1ckluZGV4ICs9IG1vZGlmaWVyO1xuICAgICAgfVxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICBpZiAoZm9jdXNzYWJsZVtjdXJJbmRleF0gJiYgIXRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKSkge1xuICAgICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm8gdmFsaWQgdGFyZ2V0LCB3aXBlIGZvY3VzXG4gICAgICAgIHRoaXMuY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgZm9jdXNzYWJsZUVsZW1lbnRzIGxpc3RcbiAgICB0aGlzLmZvY3Vzc2FibGVFbGVtZW50cyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaGlmdChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBEZXRlcm1pbmUgaWYgc2hpZnQrdGFiIHdhcyB1c2VkIGJhc2VkIG9uIGVsZW1lbnQgb3JkZXJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0Rm9jdXNzYWJsZUVsZW1lbnRzKCkuZmlsdGVyKGVsZW0gPT4gIXRoaXMuaXNFbGVtZW50SGlkZGVuKGVsZW0pKTtcblxuICAgIGNvbnN0IHByZXZpb3VzSW5kID0gZWxlbWVudHMuaW5kZXhPZigoZXZlbnQgYXMgYW55KS5yZWxhdGVkVGFyZ2V0KTtcbiAgICBjb25zdCBjdXJyZW50SW5kID0gZWxlbWVudHMuaW5kZXhPZihldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIHByZXZpb3VzSW5kID09PSBjdXJyZW50SW5kICsgMVxuICAgICAgfHwgKHByZXZpb3VzSW5kID09PSAwICYmIGN1cnJlbnRJbmQgPT09IGVsZW1lbnRzLmxlbmd0aCAtIDEpXG4gICAgICB8fCAocHJldmlvdXNJbmQgPiBjdXJyZW50SW5kKVxuICAgICAgfHwgIShldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXQ7XG4gIH1cblxuICBwcml2YXRlIGlzRWxlbWVudEhpZGRlbihlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgfHwgc3R5bGUudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbic7XG4gIH1cblxuICBwcml2YXRlIGlzRWxlbWVudEJ1c3lPckhpZGRlbihlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0VsZW1lbnRIaWRkZW4oZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHMpKSB7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1trZXldLmJ1c3lFbDtcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQuY29udGFpbnMoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEb2N1bWVudEZvY3VzKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgYW55KS5ibHVyKSB7XG4gICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBhbnkpLmJsdXIoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb2N1c3NhYmxlRWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgLy8gS2VlcCB0aGlzIGNhY2hlZCBzbyB3ZSBjYW4gcmVkdWNlIHF1ZXJ5c1xuICAgIGlmICh0aGlzLmZvY3Vzc2FibGVFbGVtZW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuZm9jdXNzYWJsZUVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8vIFNlbGVjdCBhbGwgcG9zc2libGUgZm9jdXNzYWJsZSBlbGVtZW50c1xuICAgIGNvbnN0IGZvY3Vzc2FibGVFbGVtZW50cyA9XG4gICAgICAnYVtocmVmXSwgJyArXG4gICAgICAnYXJlYVtocmVmXSwgJyArXG4gICAgICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgJyArXG4gICAgICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PVxcJy0xXFwnXSksICcgK1xuICAgICAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pLCAnICtcbiAgICAgICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pLCAnICtcbiAgICAgICdpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xuICAgICAgJypbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgJyArXG4gICAgICAnKltjb250ZW50ZWRpdGFibGU9dHJ1ZV0nO1xuXG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoXG4gICAgICBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoZm9jdXNzYWJsZUVsZW1lbnRzKSxcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbGVtZW50Lm9mZnNldFdpZHRoID4gMCB8fCBlbGVtZW50Lm9mZnNldEhlaWdodCA+IDAgfHwgZWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5mb2N1c3NhYmxlRWxlbWVudHM7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50cykpIHtcbiAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XS5saXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|