mmhglobal-dynamicform 2.3.1 → 2.4.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/README.md +6 -0
- package/esm2020/lib/components/fieldbase.component.mjs +3 -3
- package/esm2020/lib/components/inputfieldbase.component.mjs +1 -1
- package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +7 -6
- package/esm2020/lib/input-error-message/input-error-message.component.mjs +7 -6
- package/esm2020/lib/kcard/kcard.component.mjs +16 -14
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +7 -6
- package/esm2020/lib/zgrid/zgrid.component.mjs +9 -8
- package/esm2020/lib/zkcard/zkcard.component.mjs +11 -10
- package/esm2020/lib/zlabel/zlabel.component.mjs +14 -12
- package/esm2020/lib/zreport/zreport.component.mjs +7 -6
- package/esm2020/lib/ztab/ztab.component.mjs +7 -6
- package/esm2020/lib/zudf/zudf.component.mjs +2 -2
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +8 -6
- package/fesm2015/mmhglobal-dynamicform.mjs +179 -168
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +179 -168
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/fieldbase.component.d.ts +2 -2
- package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +3 -2
- package/lib/input-error-message/input-error-message.component.d.ts +3 -2
- package/lib/kcard/kcard.component.d.ts +3 -2
- package/lib/zbuttons/zbuttons.component.d.ts +3 -2
- package/lib/zgrid/zgrid.component.d.ts +3 -2
- package/lib/zkcard/zkcard.component.d.ts +4 -3
- package/lib/zlabel/zlabel.component.d.ts +3 -2
- package/lib/zreport/zreport.component.d.ts +4 -3
- package/lib/ztab/ztab.component.d.ts +3 -2
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -4,15 +4,16 @@ import { delay, tap } from 'rxjs/operators';
|
|
|
4
4
|
/********** Component & Service **********/
|
|
5
5
|
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "
|
|
8
|
-
import * as i2 from "
|
|
7
|
+
import * as i1 from "mmhglobal-zcore";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
9
|
import * as i3 from "@progress/kendo-angular-layout";
|
|
10
10
|
import * as i4 from "@progress/kendo-angular-progressbar";
|
|
11
11
|
import * as i5 from "@ionic/angular";
|
|
12
12
|
import * as i6 from "@fortawesome/angular-fontawesome";
|
|
13
13
|
import * as i7 from "@angular/common";
|
|
14
14
|
export class ZkcardComponent {
|
|
15
|
-
constructor(activatedRoute, resourceApiService, authService, zGridStatePersistingService, webapiService, router) {
|
|
15
|
+
constructor(fontAweSomeService, activatedRoute, resourceApiService, authService, zGridStatePersistingService, webapiService, router) {
|
|
16
|
+
this.fontAweSomeService = fontAweSomeService;
|
|
16
17
|
this.activatedRoute = activatedRoute;
|
|
17
18
|
this.resourceApiService = resourceApiService;
|
|
18
19
|
this.authService = authService;
|
|
@@ -330,8 +331,8 @@ export class ZkcardComponent {
|
|
|
330
331
|
}
|
|
331
332
|
}
|
|
332
333
|
}
|
|
333
|
-
getFontAwesome(iconName) {
|
|
334
|
-
return ZComponentHelper.getFontAwesome(iconName);
|
|
334
|
+
getFontAwesome(iconName, fontAweSomeService) {
|
|
335
|
+
return ZComponentHelper.getFontAwesome(iconName, fontAweSomeService);
|
|
335
336
|
}
|
|
336
337
|
getFilter() {
|
|
337
338
|
if (this.params.filters && this.field.Filters) {
|
|
@@ -359,10 +360,10 @@ export class ZkcardComponent {
|
|
|
359
360
|
this.scrollViewCards.total = this.responseData.data.filter(x => event.includes(x.WFS_StatusName)).length;
|
|
360
361
|
}
|
|
361
362
|
}
|
|
362
|
-
ZkcardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZkcardComponent, deps: [{ token: i1.
|
|
363
|
-
ZkcardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZkcardComponent, selector: "app-zkcard", ngImport: i0, template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <scrollview-card [card]=\"card\"></scrollview-card>\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}.button-container{font-size:13px;height:30px}\n"], components: [{ type: i3.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { type: i3.CardHeaderComponent, selector: "kendo-card-header" }, { type: i3.CardBodyComponent, selector: "kendo-card-body" }, { type: i3.CardFooterComponent, selector: "kendo-card-footer" }, { type: i4.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i3.CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }, { type: i5.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i6.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CardTitleDirective, selector: "[kendoCardTitle]" }, { type: i3.CardSubtitleDirective, selector: "[kendoCardSubtitle]" }] });
|
|
363
|
+
ZkcardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZkcardComponent, deps: [{ token: i1.FontAweSomeService }, { token: i2.ActivatedRoute }, { token: i1.ResourceApiService }, { token: i1.AuthService }, { token: i1.ZGridStatePersistingService }, { token: i1.WebApiService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
364
|
+
ZkcardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZkcardComponent, selector: "app-zkcard", ngImport: i0, template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <scrollview-card [card]=\"card\"></scrollview-card>\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}.button-container{font-size:13px;height:30px}\n"], components: [{ type: i3.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { type: i3.CardHeaderComponent, selector: "kendo-card-header" }, { type: i3.CardBodyComponent, selector: "kendo-card-body" }, { type: i3.CardFooterComponent, selector: "kendo-card-footer" }, { type: i4.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i3.CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }, { type: i5.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i6.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CardTitleDirective, selector: "[kendoCardTitle]" }, { type: i3.CardSubtitleDirective, selector: "[kendoCardSubtitle]" }] });
|
|
364
365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZkcardComponent, decorators: [{
|
|
365
366
|
type: Component,
|
|
366
|
-
args: [{ selector: 'app-zkcard', template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <scrollview-card [card]=\"card\"></scrollview-card>\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}.button-container{font-size:13px;height:30px}\n"] }]
|
|
367
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtjYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3prY2FyZC96a2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemtjYXJkL3prY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFRN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1QywyQ0FBMkM7QUFDM0MsT0FBTyxFQUVPLGdCQUFnQixFQUU3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsV0FBd0IsRUFDeEIsMkJBQXdELEVBQ3hELGFBQTRCLEVBQzVCLE1BQWM7UUFMZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFNeEIsVUFBSyxHQUFRLElBQUksQ0FBQztRQUNsQixvQkFBZSxHQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDOUMsaUJBQVksR0FBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzNDLFdBQU0sR0FBdUI7WUFDM0IsT0FBTyxFQUFFLElB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Q0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0csQ0FBQzs7NkdBeGJVLGVBQWU7aUdBQWYsZUFBZSxrREMxQjVCLGdvSkFrR0E7NEZEeEVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTGFiZWxTZXR0aW5ncyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXByb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBSZXNvdXJjZUFwaVNlcnZpY2UsIFdlYkFwaVNlcnZpY2UsIEdyaWRDYWNoaW5nLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCxcclxuICBaR3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UsIFpHcmlkQ29sdW1uU2V0dGluZ3MsIFpHcmlkUG9zdEFwaVBhcmFtc1xyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemtjYXJkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemtjYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96a2NhcmQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFprY2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgekdyaWRTdGF0ZVBlcnNpc3RpbmdTZXJ2aWNlOiBaR3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdlYmFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkgeyB9XHJcblxyXG4gIGRhdGE6IFpGaWVsZDtcclxuICBncm91cDogWkdyb3VwO1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICB6Z3JpZDogYW55ID0gbnVsbDtcclxuICBzY3JvbGxWaWV3Q2FyZHM6IGFueSA9IHsgZGF0YTogW10sIHRvdGFsOiAwIH07XHJcbiAgcmVzcG9uc2VEYXRhOiBhbnkgPSB7IGRhdGE6IFtdLCB0b3RhbDogMCB9O1xyXG4gIHBhcmFtczogWkdyaWRQb3N0QXBpUGFyYW1zID0ge1xyXG4gICAgcmVmZXJJZDogbnVsbCxcclxuICAgIHBhZ2VObzogMCxcclxuICAgIHBhZ2VTaXplOiAyMCxcclxuICAgIHNvcnRDb2x1bW5OYW1lOiBcIlwiLFxyXG4gICAgc29ydE9yZGVyOiBcIlwiLFxyXG4gICAgc29ydENvbHVtbk5hbWVzOiBbXSxcclxuICAgIHNvcnRPcmRlcnM6IFtdLFxyXG4gICAgZmlsdGVyUGFyYW1zOiBbXSxcclxuICAgIHBhcmFtZXRlcnM6IFwiXCIsXHJcbiAgICBmaWx0ZXJzOiBcIlwiLFxyXG4gICAgY29sdW1uczogXCJcIixcclxuICAgIGdyYW50VHlwZTogNFxyXG4gIH07XHJcbiAgLy9ncmlkRGF0YTogR3JpZERhdGFSZXN1bHQ7XHJcbiAgY29sdW1uczogYW55W107XHJcbiAgZ3JpZENvbHVtbnM6IGFueVtdID0gW107XHJcbiAgdXNhYmxlQ29sdW1uczogYW55W10gPSBbXTtcclxuICBkYXRhU291cmNlID0gbnVsbDtcclxuICBzdGF0ZTogU3RhdGUgPSB7XHJcbiAgICBza2lwOiAwLFxyXG4gICAgdGFrZTogMTAsXHJcbiAgfTtcclxuICBwYWdpbmF0aW9uQXBpUG9zdFVybCA9IG51bGw7XHJcbiAgcmVzb3VyY2VVUkwgPSBudWxsO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHB1YmxpYyBmaWx0ZXJJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBwcm9ncmVzc1N0eWxlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcclxuICAgIGNvbG9yOiAnJyxcclxuICAgIGJhY2tncm91bmQ6ICdncmVlbidcclxuICB9O1xyXG4gIHB1YmxpYyBsb2FkaW5nUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcblxyXG5cclxuICBwdWJsaWMgbGFiZWw6IExhYmVsU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAncGVyY2VudCcsXHJcbiAgICBwb3NpdGlvbjogJ2NlbnRlcidcclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5maWVsZC5EYXRhU291cmNlID8gdGhpcy5maWVsZC5EYXRhU291cmNlIDogbnVsbDtcclxuICAgIHRoaXMuZmlsdGVySXRlbXMgPSB0aGlzLmdyb3VwWydmaWx0ZXJJdGVtcyddO1xyXG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgdGhpcy5yZXNvdXJjZVVSTCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgICB0aGlzLmZpZWxkLlJlc291cmNlVVJMLFxyXG4gICAgICAgIHRoaXMuZ3JwXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXQgemdyaWQuY29tcG9uZW50IChPbkluaXQpIHJlc291cmNlVVJMOiBcIiwgcmVzb3VyY2VVUkwpO1xyXG4gICAgICBpZiAoIXRoaXMucmVzb3VyY2VVUkwpIHtcclxuICAgICAgICAvLyB0aGlzLmdyaWQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIC8vaWYgKHRoaXMuemdyaWRiaW5kaW5nLmRhdGEuTmFtZSAhPT0gXCJBY3Rpdml0eUxvZ0dyaWRcIikge1xyXG4gICAgICAgIC8vICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgLy8gICAgXCJObyBpbml0aWFsaXNlIGZvciBGaWVsZC5SZXNvdXJjZVVSTDogXCIsXHJcbiAgICAgICAgLy8gICAgdGhpcy5maWVsZC5SZXNvdXJjZVVSTFxyXG4gICAgICAgIC8vICApO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLnJlc291cmNlVVJMLnNwbGl0KFwiL2FwaS9cIik7XHJcbiAgICAgIGlmICghIWFycmF5WzFdKSB7XHJcbiAgICAgICAgYXJyYXlbMV0gPSBcIlBhZ2VcIiArIGFycmF5WzFdO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFwaVBvc3RVcmwgPSBhcnJheS5qb2luKFwiL2FwaS9cIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgYXJyID0gdGhpcy5yZXNvdXJjZVVSTC5zcGxpdChcIi9cIik7XHJcbiAgICAgICAgYXJyW2Fyci5sZW5ndGggLSAyXSA9IFwiUGFnZVwiICsgYXJyW2Fyci5sZW5ndGggLSAyXTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcGlQb3N0VXJsID0gYXJyLmpvaW4oXCIvXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNldEZpbHRlclBhcmFtc0J5UGFyZW50UmVmSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlR3JpZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuemdyaWQpIHtcclxuICAgICAgdGhpcy56Z3JpZC5nZXREYXRhQmluZGluZygpO1xyXG4gICAgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhLlNraXBEaXJlY3RpdmUpIHtcclxuICAgIC8vICB0aGlzLmdyaWREYXRhID0gcHJvY2Vzcyh0aGlzLmdEYXRhLCB0aGlzLnN0YXRlKTtcclxuICAgIC8vICB0aGlzLmNyZWF0ZUZvcm1Db250cm9scygpO1xyXG4gICAgLy99XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUdyaWRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nUGFuZWxWaXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGNvbHVtbkZpZWxkcyQ6IE9ic2VydmFibGU8YW55PiA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgdGhpcy5maWVsZC5Db2x1bW5GaWVsZHMsXHJcbiAgICAgIHRoaXMuZ3JwXHJcbiAgICApO1xyXG4gICAgY29sdW1uRmllbGRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKGRhdGEpID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zdCBncmlkU2V0dGluZyA9IHRoaXMuZ2V0R3JpZFNldHRpbmdzKCk7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmZpZWxkW1wiRmllbGRFbGVtZW50TmFtZVwiXTtcclxuICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIuZ2V0R3JpZENvbHVtbnMoXHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtbnMsXHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAsXHJcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nLFxyXG4gICAgICAgICAgICB0aGlzLnVzYWJsZUNvbHVtbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmdldEZpbHRlclBhcmFtc0NvbHVtbnMoKTtcclxuICAgICAgICAgIHRoaXMuZ2V0RmlsdGVyKCk7XHJcbiAgICAgICAgICAvL3RoaXMuZ2V0U29ydGluZygpO1xyXG4gICAgICAgICAgLy90aGlzLmdldEdyYW50VHlwZSgpO1xyXG4gICAgICAgICAgLy90aGlzLnNldEhpZGRlbkNvbHVtbihncmlkU2V0dGluZyk7XHJcbiAgICAgICAgICAvL3RoaXMucGFyYW1zLnJlZmVySWQgPSB0aGlzLmdldEZpZWxkUmVmZXJlbmNlSWQoKSB8fCB0aGlzLmdycC5yZWZlcmVuY2VJZCB8fCBudWxsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldERhdGFCaW5kaW5nKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRhQmluZGluZygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMucGFyYW0ucGFnZVNpemUgPSB0aGlzLmZpZWxkLlBhZ2VTaXplID8/IDUwO1xyXG4gICAgICBpZiAodGhpcy5maWVsZC5FeHRlcm5hbFBhZ2luYXRpb24pIHtcclxuICAgICAgICAvLyBGb3IgUE9TVCBtZXRob2QgUGFnZSBXZWJBUElcclxuICAgICAgICB0aGlzLndlYmFwaVNlcnZpY2VcclxuICAgICAgICAgIC5wb3N0QXBpKFxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25BcGlQb3N0VXJsLFxyXG4gICAgICAgICAgICB0aGlzLnBhcmFtLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGRlbGF5KDI1MDApXHJcbiAgICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0geyBkYXRhOiBkYXRhLmRhdGFTZXQsIHRvdGFsOiBkYXRhLnRvdGFsQ291bnQgfTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Q2FyZHMgPSB7IGRhdGE6IGRhdGEuZGF0YVNldCwgdG90YWw6IGRhdGEudG90YWxDb3VudCB9O1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5kYXRhU2V0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldFJlY29yZHNTdW1tYXJ5KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuUmVzb3VyY2VVUkxBbHQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldE5ld1N1cnZleSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vdGhpcy5hZ2dyZWdhdGVIYW5kbGluZyhkYXRhLmRhdGFTZXQpO1xyXG4gICAgICAgICAgICAvL3RoaXMuZ3JpZC5kYXRhID0geyBkYXRhOiBkYXRhLmRhdGFTZXQsIHRvdGFsOiBkYXRhLnRvdGFsQ291bnQgfTtcclxuICAgICAgICAgICAgLy90aGlzLmdyaWQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy90aGlzLm5vdGlmeURhdGFDaGFuZ2UoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIEZvciBHRVQgbWV0aG9kXHJcbiAgICAgICAgdGhpcy53ZWJhcGlTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXBpKHRoaXMucmVzb3VyY2VVUkwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIHRydWUpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBfZGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgIGxldCBfdG90YWxDb3VudCA9IDA7XHJcblxyXG4gICAgICAgICAgICBpZiAoZGF0YS5kYXRhU2V0KSB7XHJcbiAgICAgICAgICAgICAgX2RhdGEgPSBkYXRhLmRhdGFTZXQ7XHJcbiAgICAgICAgICAgICAgX3RvdGFsQ291bnQgPSBkYXRhLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgX2RhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIF90b3RhbENvdW50ID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vdGhpcy5hZ2dyZWdhdGVIYW5kbGluZyhfZGF0YSk7XHJcbiAgICAgICAgICAgIC8vdGhpcy5ncmlkLmRhdGEgPSB7IGRhdGE6IF9kYXRhLCB0b3RhbDogX3RvdGFsQ291bnQgfTtcclxuICAgICAgICAgICAgLy90aGlzLmdyaWQucGFnZVNpemUgPSBfdG90YWxDb3VudDtcclxuICAgICAgICAgICAgLy90aGlzLmdyaWQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvL3RoaXMubm90aWZ5RGF0YUNoYW5nZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZmllbGQuRGF0YVNvdXJjZSxcclxuICAgICAgICB0aGlzLmdycFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVjb3Jkc1N1bW1hcnkoKSB7XHJcbiAgICBsZXQgU3VydmV5SWRzID0gW107XHJcblxyXG4gICAgdGhpcy5yZXNwb25zZURhdGEuZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcclxuICAgICAgU3VydmV5SWRzLnB1c2godmFsdWUuSWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy53ZWJhcGlTZXJ2aWNlXHJcbiAgICAgIC5wb3N0QXBpKFxyXG4gICAgICAgIHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCgncHBzYXBzdXJ2ZXlzdW1tYXJ5aW5mb1VSTCcpLFxyXG4gICAgICAgIFN1cnZleUlkcyxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIHRydWVcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhLmRhdGEuZm9yRWFjaCh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh4LlN1cnZleUlkID09IHZhbHVlLklkKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVbJ3ZhbHVlJ10gPSBOdW1iZXIuaXNOYU4oKCh4LlRvdGFsVGFrZW5RdWVzdGlvbnMgLyB4LlRvdGFsUXVlc3Rpb25zKSAqIDEwMCkpID8gMCA6IE1hdGgucm91bmQoKCh4LlRvdGFsVGFrZW5RdWVzdGlvbnMgLyB4LlRvdGFsUXVlc3Rpb25zKSAqIDEwMCkpO1xyXG4gICAgICAgICAgICAgIC8vIHZhbHVlWyd2YWx1ZSddID0gMTAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0TmV3U3VydmV5KCkge1xyXG4gICAgbGV0IHJlcXVlc3RCb2R5ID0ge1xyXG4gICAgICBjb2x1bW5zOiBcIlBhcnRuZXJNaWxsSWQsU3VydmV5VGVtcGxhdGVJZCxXRlNfU3RhdHVzQ29kZSxXRlNfU3RhdHVzTmFtZVwiLFxyXG4gICAgICBwYWdlU2l6ZTogdGhpcy5maWVsZC5QYWdlU2l6ZSA/PyA1MCxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy53ZWJhcGlTZXJ2aWNlXHJcbiAgICAgIC5wb3N0QXBpKFxyXG4gICAgICAgIHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFBhZ2VVcmwodGhpcy5kYXRhLlJlc291cmNlVVJMQWx0KSxcclxuICAgICAgICByZXF1ZXN0Qm9keSxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIHRydWVcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgZGF0YS5kYXRhU2V0LmZvckVhY2godmFsdWUgPT4ge1xyXG4gICAgICAgICAgdmFsdWVbJ3ZhbHVlJ10gPSAwO1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Q2FyZHMuZGF0YS5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLnRvdGFsICs9IDE7XHJcblxyXG4gICAgICAgICAgLy9kYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAvLyAgaWYgKHguU3VydmV5SWQgPT0gdmFsdWUuSWQpIHtcclxuICAgICAgICAgIC8vICAgIHZhbHVlWyd2YWx1ZSddID0gTnVtYmVyLmlzTmFOKCgoeC5Ub3RhbFRha2VuUXVlc3Rpb25zIC8geC5Ub3RhbFF1ZXN0aW9ucykgKiAxMDApKSA/IDAgOiBNYXRoLnJvdW5kKCgoeC5Ub3RhbFRha2VuUXVlc3Rpb25zIC8geC5Ub3RhbFF1ZXN0aW9ucykgKiAxMDApKTtcclxuICAgICAgICAgIC8vICB9XHJcbiAgICAgICAgICAvL30pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXQgZmllbGQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdycCgpIHtcclxuICAgIHJldHVybiB0aGlzLmdyb3VwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhcmFtKCk6IFpHcmlkUG9zdEFwaVBhcmFtcyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEdyaWRTZXR0aW5ncygpOiBaR3JpZENvbHVtblNldHRpbmdzW10ge1xyXG4gICAgY29uc3QgX3N0b3JhZ2VLZXkgPSAnaW9uaWMtZmllbGQ6OicgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxVG9rZW4udXNlck5hbWU7XHJcbiAgICBjb25zdCBfZ3JpZE5hbWUgPSB0aGlzLmZpZWxkLk5hbWUgKyAnOjonICsgdGhpcy5maWVsZC5WYWx1ZTtcclxuXHJcbiAgICAvLyBGaW5kIGFueSBzZXR0aW5nIGZyb20gbG9jYWxzdG9yYWdlLi5cclxuICAgIGxldCBfYXJyR3JpZENhY2hpbmc6IEdyaWRDYWNoaW5nW10gPSB0aGlzLnpHcmlkU3RhdGVQZXJzaXN0aW5nU2VydmljZS5nZXQoX3N0b3JhZ2VLZXkpO1xyXG4gICAgaWYgKF9hcnJHcmlkQ2FjaGluZyAmJiBfYXJyR3JpZENhY2hpbmdbMF0pIHtcclxuICAgICAgY29uc3QgX2dyaWRDYWNoaW5nOiBHcmlkQ2FjaGluZyA9IF9hcnJHcmlkQ2FjaGluZy5maW5kKHggPT4geFsnZGF0YUZvcm1GaWVsZHMnXSA9PT0gX2dyaWROYW1lKTtcclxuXHJcbiAgICAgIGlmIChfZ3JpZENhY2hpbmcpIHtcclxuICAgICAgICByZXR1cm4gX2dyaWRDYWNoaW5nLmdyaWRTZXR0aW5ncy5jb2x1bW5zQ29uZmlnLnNvcnQoKGEsIGIpID0+IGEub3JkZXJJbmRleCAtIGIub3JkZXJJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RmlsdGVyUGFyYW1zQnlQYXJlbnRSZWZJZCgpIHtcclxuICAgIC8vIFVzZSBmaWVsZCBvd24gcmVmZXJlbmNlSWQgaWYgYXZhaWxhYmxlXHJcbiAgICBjb25zdCByZWZJZCA9IHRoaXMuZ2V0RmllbGRSZWZlcmVuY2VJZCgpIHx8IHRoaXMuZ3JwLnJlZmVyZW5jZUlkO1xyXG4gICAgY29uc3QgcmVmRmllbGQgPSB0aGlzLmZpZWxkLlJlZmVyZW5jZUZpZWxkIHx8IHRoaXMuZ3JwLnBhcmVudFJlZmVyZW5jZUZpZWxkO1xyXG4gICAgaWYgKHJlZklkICYmIHRoaXMuZ3JwLnBhcmVudFJlZmVyZW5jZUZpZWxkKSB7XHJcbiAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0ge1xyXG4gICAgICAgIGtleTogcmVmRmllbGQsXHJcbiAgICAgICAgb3BzOiBcIj1cIixcclxuICAgICAgICB2YWx1ZTogcmVmSWQsXHJcbiAgICAgIH07XHJcbiAgICAgIC8vIGlmICh0aGlzLnBhcmFtcy5maWx0ZXJQYXJhbXMuZmluZCh4ID0+IHgua2V5ID09PSBmaWx0ZXJWYWx1ZS5rZXkpID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLnB1c2goZmlsdGVyVmFsdWUpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkUmVmZXJlbmNlSWQoKSB7XHJcbiAgICBsZXQgZmllbGRSZWZlcmVuY2VJZCA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5maWVsZC5SZWZlcmVuY2VJZCkge1xyXG4gICAgICBmaWVsZFJlZmVyZW5jZUlkID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZmllbGQuUmVmZXJlbmNlSWQsXHJcbiAgICAgICAgdGhpcy5ncnBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZFJlZmVyZW5jZUlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJQYXJhbXNDb2x1bW5zKCkge1xyXG4gICAgY29uc3QgY29sRmllbGRzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5zLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC52YWx1ZUV4cHIpIHtcclxuICAgICAgICBjb2xGaWVsZHMucHVzaChmaWVsZC52YWx1ZUV4cHIgKyBcIiBhcyBcIiArIGZpZWxkLmZpZWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xGaWVsZHMucHVzaChmaWVsZC5maWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjb2xGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoY29sRmllbGRzLmluZGV4T2YoXCJJZFwiKSA9PT0gLTEpIHtcclxuICAgICAgICBjb2xGaWVsZHMucHVzaChcIklkXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHRtcEdyaWRDb2x1bW46IGFueVtdID0gW107XHJcbiAgICB0bXBHcmlkQ29sdW1uLnB1c2goY29sRmllbGRzLmpvaW4oXCIsXCIpKTtcclxuICAgIGlmICh0aGlzLnVzYWJsZUNvbHVtbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0bXBHcmlkQ29sdW1uLnB1c2godGhpcy51c2FibGVDb2x1bW5zLmpvaW4oXCIsXCIpKTtcclxuICAgIH1cclxuICAgIHRoaXMucGFyYW1zLmNvbHVtbnMgPSB0bXBHcmlkQ29sdW1uLmpvaW4oXCIsXCIpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ncm91cDtcclxuICAgIHRoaXMuZ3JvdXAuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmIChldmVudC5XRlNfU3RhdHVzTmFtZSA9PSAnTmV3Jykge1xyXG4gICAgICBsZXQgcGFyYW0gPSB7XHJcbiAgICAgICAgVXNlcklkOiB0aGlzLmdyb3VwWydQU0FQVVNFUklEJ10sXHJcbiAgICAgICAgU3VydmV5TWlsbElkOiBldmVudC5JZFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLndlYmFwaVNlcnZpY2VcclxuICAgICAgICAucG9zdEFwaShcclxuICAgICAgICAgIHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCgncHBzYXBzdXJ2ZXljcmVhdGVVUkwnKSxcclxuICAgICAgICAgIHBhcmFtLFxyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgICAgIHRydWVcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0aGlzLmRhdGEuRWRpdENsaWNrVVJMKSB7XHJcbiAgICAgICAgICAgIC8vIFRPRE86XHJcbiAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5kYXRhLkVkaXRDbGlja1VSTCwgZGF0YUl0ZW0uSWRdKTtcclxuICAgICAgICAgICAgY29uc3QgY29sRmllbGRzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICAgICAgdHlwZTogXCJ6Z3JpZC1jZWxsQ2xpY2tcIixcclxuICAgICAgICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5FZGl0Q2xpY2tVUkwsXHJcbiAgICAgICAgICAgICAgZGF0YTogZXZlbnQsXHJcbiAgICAgICAgICAgICAgY29sdW1uRmllbGRzJDogY29sRmllbGRzXHJcbiAgICAgICAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmdyb3VwLmVkaXRNb2RlbFVSTCwgZGF0YS5JZCwgJ2VkaXQnXSwge1xyXG4gICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuRWRpdENsaWNrVVJMKSB7XHJcbiAgICAgICAgLy8gVE9ETzpcclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5kYXRhLkVkaXRDbGlja1VSTCwgZGF0YUl0ZW0uSWRdKTtcclxuICAgICAgICBjb25zdCBjb2xGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLkNvbHVtbkZpZWxkcywgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgdHlwZTogXCJ6Z3JpZC1jZWxsQ2xpY2tcIixcclxuICAgICAgICAgIHRhcmdldDogdGhpcy5kYXRhLkVkaXRDbGlja1VSTCxcclxuICAgICAgICAgIGRhdGE6IGV2ZW50LFxyXG4gICAgICAgICAgY29sdW1uRmllbGRzJDogY29sRmllbGRzXHJcbiAgICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmdyb3VwLmVkaXRNb2RlbFVSTCwgZXZlbnQuSWQsICdlZGl0J10sIHtcclxuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9udEF3ZXNvbWUoaWNvbk5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuZ2V0Rm9udEF3ZXNvbWUoaWNvbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5wYXJhbXMuZmlsdGVycyAmJiB0aGlzLmZpZWxkLkZpbHRlcnMpIHtcclxuICAgICAgdGhpcy5wYXJhbXMuZmlsdGVycyA9IHRoaXMucGFyYW1zLmZpbHRlcnMgKyBcIiAmJiBcIiArIHRoaXMuZmllbGQuRmlsdGVycztcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMucGFyYW1zLmZpbHRlcnMgJiYgdGhpcy5maWVsZC5GaWx0ZXJzKSB7XHJcbiAgICAgIHRoaXMucGFyYW1zLmZpbHRlcnMgPSB0aGlzLmZpZWxkLkZpbHRlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZmllbGQuRmlsdGVycyAmJiB0aGlzLmZpZWxkLkZpbHRlcnMuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTEpIHtcclxuICAgICAgY29uc3QgZmlsdGVyS2V5VmFsUGFpcnMgPSB0aGlzLmZpZWxkLkZpbHRlcnMuc3BsaXQoXCIgXCIpO1xyXG4gICAgICBjb25zdCBncnBWYWx1ZXMgPSBmaWx0ZXJLZXlWYWxQYWlycy5maWx0ZXIoXHJcbiAgICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQudHJpbSgpLmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBncnBWYWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsVmFsID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHZhbCwgdGhpcy5ncnApO1xyXG4gICAgICAgIHRoaXMucGFyYW1zLmZpbHRlcnMgPSB0aGlzLnBhcmFtcy5maWx0ZXJzLnJlcGxhY2UodmFsLCBhY3R1YWxWYWwpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLmRhdGEgPSB0aGlzLnJlc3BvbnNlRGF0YS5kYXRhO1xyXG4gICAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcy50b3RhbCA9IHRoaXMucmVzcG9uc2VEYXRhLnRvdGFsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcy5kYXRhID0gdGhpcy5yZXNwb25zZURhdGEuZGF0YS5maWx0ZXIoeCA9PiBldmVudC5pbmNsdWRlcyh4LldGU19TdGF0dXNOYW1lKSk7XHJcbiAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcy50b3RhbCA9IHRoaXMucmVzcG9uc2VEYXRhLmRhdGEuZmlsdGVyKHggPT4gZXZlbnQuaW5jbHVkZXMoeC5XRlNfU3RhdHVzTmFtZSkpLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiPCEtLTxrZW5kby1tdWx0aXNlbGVjdCBbZGF0YV09XCJmaWx0ZXJJdGVtc1wiIFt2YWx1ZV09XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCInU3VydmV5IFN0YXR1cydcIiBbZmlsdGVyYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9rZW5kby1tdWx0aXNlbGVjdD5cclxuJm5ic3A7LS0+XHJcbjxkaXYgY2xhc3M9XCJzdXJ2ZXktY2FyZC1saXN0XCI+XHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgY2FyZCBvZiBzY3JvbGxWaWV3Q2FyZHMuZGF0YVwiPlxyXG4gICAgPHNjcm9sbHZpZXctY2FyZCBbY2FyZF09XCJjYXJkXCI+PC9zY3JvbGx2aWV3LWNhcmQ+XHJcbiAgICA8a2VuZG8tY2FyZCBjbGFzcz1cImN1c3RvbS1jYXJkLWRyYWZ0XCIgKm5nSWY9XCJjYXJkLldGU19TdGF0dXNOYW1lID09ICdEcmFmdCdcIiBbd2lkdGhdPVwiJzI1MHB4J1wiPlxyXG4gICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhib3hcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgxIGtlbmRvQ2FyZFRpdGxlPnt7IGNhcmQuU3VydmV5VGVtcGxhdGVOYW1lIH19PC9oMT5cclxuICAgICAgICAgIDxwIGtlbmRvQ2FyZFN1YnRpdGxlPlN1cnZleSBEb2MgTm86IHt7Y2FyZC5Eb2N1bWVudE5vfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICBNaWxsIE5hbWU6ICB7e2NhcmQuUGFydG5lck1pbGxOYW1lfX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICBTdXJ2ZXkgU3RhdHVzOiB7e2NhcmQuV0ZTX1N0YXR1c05hbWV9fVxyXG4gICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPGtlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIFN1cnZleSBQcm9ncmVzc2lvbjpcclxuICAgICAgICA8a2VuZG8tcHJvZ3Jlc3NiYXIgc3R5bGU9XCJ3aWR0aDogMjEwcHg7IGJvcmRlci1yYWRpdXM6MTBweFwiIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3Byb2dyZXNzQ3NzU3R5bGVdPVwicHJvZ3Jlc3NTdHlsZXNcIj5cclxuICAgICAgICA8L2tlbmRvLXByb2dyZXNzYmFyPlxyXG5cclxuICAgICAgICA8a2VuZG8tY2FyZC1hY3Rpb25zIGNsYXNzPVwiay1oYm94LWFjdGlvbkJ0blwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiIFtsYXlvdXRdPVwiJ2VuZCdcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb25nPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdGFydChjYXJkKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj5Db250aW51ZSAmbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKCdwbGF5JylcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNXB4O1wiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2tlbmRvLWNhcmQtYWN0aW9ucz5cclxuICAgICAgPC9rZW5kby1jYXJkLWZvb3Rlcj5cclxuICAgIDwva2VuZG8tY2FyZD5cclxuXHJcbiAgICA8a2VuZG8tY2FyZCBjbGFzcz1cImN1c3RvbS1jYXJkLXN1Ym1pdFwiICpuZ0lmPVwiY2FyZC5XRlNfU3RhdHVzTmFtZSA9PSAnU3VibWl0dGVkJ1wiIFt3aWR0aF09XCInMjUwcHgnXCI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWhlYWRlciBjbGFzcz1cImstaGJveFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8aDEga2VuZG9DYXJkVGl0bGU+e3sgY2FyZC5TdXJ2ZXlUZW1wbGF0ZU5hbWUgfX08L2gxPlxyXG4gICAgICAgICAgPHAga2VuZG9DYXJkU3VidGl0bGU+U3VydmV5IERvYyBObzoge3tjYXJkLkRvY3VtZW50Tm99fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9rZW5kby1jYXJkLWhlYWRlcj5cclxuICAgICAgPGtlbmRvLWNhcmQtYm9keSBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIE1pbGwgTmFtZTogIHt7Y2FyZC5QYXJ0bmVyTWlsbE5hbWV9fVxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIFN1cnZleSBTdGF0dXM6IHt7Y2FyZC5XRlNfU3RhdHVzTmFtZX19XHJcbiAgICAgIDwva2VuZG8tY2FyZC1ib2R5PlxyXG4gICAgICA8a2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICAgICAgU3VydmV5IFByb2dyZXNzaW9uOlxyXG4gICAgICAgIDxrZW5kby1wcm9ncmVzc2JhciBzdHlsZT1cIndpZHRoOiAyMTBweDsgYm9yZGVyLXJhZGl1czoxMHB4XCIgW3ZhbHVlXT1cImNhcmQudmFsdWVcIiBbbGFiZWxdPVwibGFiZWxcIiBbcHJvZ3Jlc3NDc3NTdHlsZV09XCJwcm9ncmVzc1N0eWxlc1wiPlxyXG4gICAgICAgIDwva2VuZG8tcHJvZ3Jlc3NiYXI+XHJcbiAgICAgICAgPGtlbmRvLWNhcmQtYWN0aW9ucyBjbGFzcz1cImstaGJveC1hY3Rpb25CdG5cIiBvcmllbnRhdGlvbj1cImhvcml6b250YWxcIiBbbGF5b3V0XT1cIidlbmQnXCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9uZz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnQoY2FyZClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+VmlldyAmbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKCdmaWxlLWFsdCcpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9rZW5kby1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICA8L2tlbmRvLWNhcmQ+XHJcblxyXG4gICAgPGtlbmRvLWNhcmQgY2xhc3M9XCJjdXN0b20tY2FyZC1uZXdcIiAqbmdJZj1cImNhcmQuV0ZTX1N0YXR1c05hbWUgPT0gJ05ldydcIiBbd2lkdGhdPVwiJzI1MHB4J1wiPlxyXG4gICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhib3hcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgxIGtlbmRvQ2FyZFRpdGxlPnt7IGNhcmQuU3VydmV5VGVtcGxhdGVOYW1lIH19PC9oMT5cclxuICAgICAgICAgIDxwIGtlbmRvQ2FyZFN1YnRpdGxlPnt7Y2FyZC5Eb2N1bWVudE5vfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICBNaWxsIE5hbWU6ICB7e2NhcmQuUGFydG5lck1pbGxOYW1lfX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICBTdXJ2ZXkgU3RhdHVzOiB7e2NhcmQuV0ZTX1N0YXR1c05hbWV9fVxyXG4gICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPGtlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIFN1cnZleSBQcm9ncmVzc2lvbjpcclxuICAgICAgICA8a2VuZG8tcHJvZ3Jlc3NiYXIgc3R5bGU9XCJ3aWR0aDogMjEwcHg7IGJvcmRlci1yYWRpdXM6MTBweFwiIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3Byb2dyZXNzQ3NzU3R5bGVdPVwicHJvZ3Jlc3NTdHlsZXNcIj5cclxuICAgICAgICA8L2tlbmRvLXByb2dyZXNzYmFyPlxyXG4gICAgICAgIDxrZW5kby1jYXJkLWFjdGlvbnMgY2xhc3M9XCJrLWhib3gtYWN0aW9uQnRuXCIgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2xheW91dF09XCInZW5kJ1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0KGNhcmQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPlN0YXJ0ICZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3BsYXknKVwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwva2VuZG8tY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L2tlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgPC9rZW5kby1jYXJkPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
367
|
+
args: [{ selector: 'app-zkcard', template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <scrollview-card [card]=\"card\"></scrollview-card>\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"start(card)\">\r\n <span class=\"ion-text-capitalize\">Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play', fontAweSomeService)\" style=\"padding-left: 5px;\"></fa-icon>\r\n </ion-button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}.button-container{font-size:13px;height:30px}\n"] }]
|
|
368
|
+
}], ctorParameters: function () { return [{ type: i1.FontAweSomeService }, { type: i2.ActivatedRoute }, { type: i1.ResourceApiService }, { type: i1.AuthService }, { type: i1.ZGridStatePersistingService }, { type: i1.WebApiService }, { type: i2.Router }]; } });
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtjYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3prY2FyZC96a2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemtjYXJkL3prY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFRN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1QywyQ0FBMkM7QUFDM0MsT0FBTyxFQUVPLGdCQUFnQixFQUU3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDUyxrQkFBc0MsRUFDckMsY0FBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLFdBQXdCLEVBQ3hCLDJCQUF3RCxFQUN4RCxhQUE0QixFQUM1QixNQUFjO1FBTmYsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFNeEIsVUFBSyxHQUFRLElBQUksQ0FBQztRQUNsQixvQkFBZSxHQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDOUMsaUJBQVksR0FBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMs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QUMsS0FBSyxDQUFDO1lBQ3JELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0csQ0FBQzs7NkdBemJVLGVBQWU7aUdBQWYsZUFBZSxrREMxQjVCLDRySkFrR0E7NEZEeEVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTGFiZWxTZXR0aW5ncyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXByb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBSZXNvdXJjZUFwaVNlcnZpY2UsIFdlYkFwaVNlcnZpY2UsIEdyaWRDYWNoaW5nLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCxcclxuICBaR3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UsIFpHcmlkQ29sdW1uU2V0dGluZ3MsIFpHcmlkUG9zdEFwaVBhcmFtcywgRm9udEF3ZVNvbWVTZXJ2aWNlXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16a2NhcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96a2NhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3prY2FyZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmtjYXJkQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6R3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2U6IFpHcmlkU3RhdGVQZXJzaXN0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViYXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgfVxyXG5cclxuICBkYXRhOiBaRmllbGQ7XHJcbiAgZ3JvdXA6IFpHcm91cDtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgemdyaWQ6IGFueSA9IG51bGw7XHJcbiAgc2Nyb2xsVmlld0NhcmRzOiBhbnkgPSB7IGRhdGE6IFtdLCB0b3RhbDogMCB9O1xyXG4gIHJlc3BvbnNlRGF0YTogYW55ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcclxuICBwYXJhbXM6IFpHcmlkUG9zdEFwaVBhcmFtcyA9IHtcclxuICAgIHJlZmVySWQ6IG51bGwsXHJcbiAgICBwYWdlTm86IDAsXHJcbiAgICBwYWdlU2l6ZTogMjAsXHJcbiAgICBzb3J0Q29sdW1uTmFtZTogXCJcIixcclxuICAgIHNvcnRPcmRlcjogXCJcIixcclxuICAgIHNvcnRDb2x1bW5OYW1lczogW10sXHJcbiAgICBzb3J0T3JkZXJzOiBbXSxcclxuICAgIGZpbHRlclBhcmFtczogW10sXHJcbiAgICBwYXJhbWV0ZXJzOiBcIlwiLFxyXG4gICAgZmlsdGVyczogXCJcIixcclxuICAgIGNvbHVtbnM6IFwiXCIsXHJcbiAgICBncmFudFR5cGU6IDRcclxuICB9O1xyXG4gIC8vZ3JpZERhdGE6IEdyaWREYXRhUmVzdWx0O1xyXG4gIGNvbHVtbnM6IGFueVtdO1xyXG4gIGdyaWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG4gIHVzYWJsZUNvbHVtbnM6IGFueVtdID0gW107XHJcbiAgZGF0YVNvdXJjZSA9IG51bGw7XHJcbiAgc3RhdGU6IFN0YXRlID0ge1xyXG4gICAgc2tpcDogMCxcclxuICAgIHRha2U6IDEwLFxyXG4gIH07XHJcbiAgcGFnaW5hdGlvbkFwaVBvc3RVcmwgPSBudWxsO1xyXG4gIHJlc291cmNlVVJMID0gbnVsbDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwdWJsaWMgZmlsdGVySXRlbXM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBwdWJsaWMgcHJvZ3Jlc3NTdHlsZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICBjb2xvcjogJycsXHJcbiAgICBiYWNrZ3JvdW5kOiAnZ3JlZW4nXHJcbiAgfTtcclxuICBwdWJsaWMgbG9hZGluZ1BhbmVsVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuXHJcbiAgcHVibGljIGxhYmVsOiBMYWJlbFNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ3BlcmNlbnQnLFxyXG4gICAgcG9zaXRpb246ICdjZW50ZXInXHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG5cclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZmllbGQuRGF0YVNvdXJjZSA/IHRoaXMuZmllbGQuRGF0YVNvdXJjZSA6IG51bGw7XHJcbiAgICB0aGlzLmZpbHRlckl0ZW1zID0gdGhpcy5ncm91cFsnZmlsdGVySXRlbXMnXTtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VVUkwgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUoXHJcbiAgICAgICAgdGhpcy5maWVsZC5SZXNvdXJjZVVSTCxcclxuICAgICAgICB0aGlzLmdycFxyXG4gICAgICApO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIkF0IHpncmlkLmNvbXBvbmVudCAoT25Jbml0KSByZXNvdXJjZVVSTDogXCIsIHJlc291cmNlVVJMKTtcclxuICAgICAgaWYgKCF0aGlzLnJlc291cmNlVVJMKSB7XHJcbiAgICAgICAgLy8gdGhpcy5ncmlkLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvL2lmICh0aGlzLnpncmlkYmluZGluZy5kYXRhLk5hbWUgIT09IFwiQWN0aXZpdHlMb2dHcmlkXCIpIHtcclxuICAgICAgICAvLyAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIC8vICAgIFwiTm8gaW5pdGlhbGlzZSBmb3IgRmllbGQuUmVzb3VyY2VVUkw6IFwiLFxyXG4gICAgICAgIC8vICAgIHRoaXMuZmllbGQuUmVzb3VyY2VVUkxcclxuICAgICAgICAvLyAgKTtcclxuICAgICAgICAvL31cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFycmF5ID0gdGhpcy5yZXNvdXJjZVVSTC5zcGxpdChcIi9hcGkvXCIpO1xyXG4gICAgICBpZiAoISFhcnJheVsxXSkge1xyXG4gICAgICAgIGFycmF5WzFdID0gXCJQYWdlXCIgKyBhcnJheVsxXTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcGlQb3N0VXJsID0gYXJyYXkuam9pbihcIi9hcGkvXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMucmVzb3VyY2VVUkwuc3BsaXQoXCIvXCIpO1xyXG4gICAgICAgIGFyclthcnIubGVuZ3RoIC0gMl0gPSBcIlBhZ2VcIiArIGFyclthcnIubGVuZ3RoIC0gMl07XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXBpUG9zdFVybCA9IGFyci5qb2luKFwiL1wiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXRGaWx0ZXJQYXJhbXNCeVBhcmVudFJlZklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUdyaWRDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIGlmICh0aGlzLnpncmlkKSB7XHJcbiAgICAgIHRoaXMuemdyaWQuZ2V0RGF0YUJpbmRpbmcoKTtcclxuICAgIH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YS5Ta2lwRGlyZWN0aXZlKSB7XHJcbiAgICAvLyAgdGhpcy5ncmlkRGF0YSA9IHByb2Nlc3ModGhpcy5nRGF0YSwgdGhpcy5zdGF0ZSk7XHJcbiAgICAvLyAgdGhpcy5jcmVhdGVGb3JtQ29udHJvbHMoKTtcclxuICAgIC8vfVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVHcmlkQ29sdW1ucygpIHtcclxuICAgIHRoaXMubG9hZGluZ1BhbmVsVmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBjb2x1bW5GaWVsZHMkOiBPYnNlcnZhYmxlPGFueT4gPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUoXHJcbiAgICAgIHRoaXMuZmllbGQuQ29sdW1uRmllbGRzLFxyXG4gICAgICB0aGlzLmdycFxyXG4gICAgKTtcclxuICAgIGNvbHVtbkZpZWxkcyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKChkYXRhKSA9PiB7XHJcblxyXG4gICAgICAgICAgY29uc3QgZ3JpZFNldHRpbmcgPSB0aGlzLmdldEdyaWRTZXR0aW5ncygpO1xyXG4gICAgICAgICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5maWVsZFtcIkZpZWxkRWxlbWVudE5hbWVcIl07XHJcbiAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLmdldEdyaWRDb2x1bW5zKFxyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5zLFxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLFxyXG4gICAgICAgICAgICBncmlkU2V0dGluZyxcclxuICAgICAgICAgICAgdGhpcy51c2FibGVDb2x1bW5zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5nZXRGaWx0ZXJQYXJhbXNDb2x1bW5zKCk7XHJcbiAgICAgICAgICB0aGlzLmdldEZpbHRlcigpO1xyXG4gICAgICAgICAgLy90aGlzLmdldFNvcnRpbmcoKTtcclxuICAgICAgICAgIC8vdGhpcy5nZXRHcmFudFR5cGUoKTtcclxuICAgICAgICAgIC8vdGhpcy5zZXRIaWRkZW5Db2x1bW4oZ3JpZFNldHRpbmcpO1xyXG4gICAgICAgICAgLy90aGlzLnBhcmFtcy5yZWZlcklkID0gdGhpcy5nZXRGaWVsZFJlZmVyZW5jZUlkKCkgfHwgdGhpcy5ncnAucmVmZXJlbmNlSWQgfHwgbnVsbDtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5nZXREYXRhQmluZGluZygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YUJpbmRpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICB0aGlzLnBhcmFtLnBhZ2VTaXplID0gdGhpcy5maWVsZC5QYWdlU2l6ZSA/PyA1MDtcclxuICAgICAgaWYgKHRoaXMuZmllbGQuRXh0ZXJuYWxQYWdpbmF0aW9uKSB7XHJcbiAgICAgICAgLy8gRm9yIFBPU1QgbWV0aG9kIFBhZ2UgV2ViQVBJXHJcbiAgICAgICAgdGhpcy53ZWJhcGlTZXJ2aWNlXHJcbiAgICAgICAgICAucG9zdEFwaShcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXBpUG9zdFVybCxcclxuICAgICAgICAgICAgdGhpcy5wYXJhbSxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBkZWxheSgyNTAwKVxyXG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHsgZGF0YTogZGF0YS5kYXRhU2V0LCB0b3RhbDogZGF0YS50b3RhbENvdW50IH07XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzID0geyBkYXRhOiBkYXRhLmRhdGFTZXQsIHRvdGFsOiBkYXRhLnRvdGFsQ291bnQgfTtcclxuICAgICAgICAgICAgaWYgKGRhdGEuZGF0YVNldC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZWNvcmRzU3VtbWFyeSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLlJlc291cmNlVVJMQWx0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXROZXdTdXJ2ZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3RoaXMuYWdncmVnYXRlSGFuZGxpbmcoZGF0YS5kYXRhU2V0KTtcclxuICAgICAgICAgICAgLy90aGlzLmdyaWQuZGF0YSA9IHsgZGF0YTogZGF0YS5kYXRhU2V0LCB0b3RhbDogZGF0YS50b3RhbENvdW50IH07XHJcbiAgICAgICAgICAgIC8vdGhpcy5ncmlkLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vdGhpcy5ub3RpZnlEYXRhQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBGb3IgR0VUIG1ldGhvZFxyXG4gICAgICAgIHRoaXMud2ViYXBpU2VydmljZVxyXG4gICAgICAgICAgLmdldEFwaSh0aGlzLnJlc291cmNlVVJMLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCB0cnVlKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgX2RhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgX3RvdGFsQ291bnQgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRhdGEuZGF0YVNldCkge1xyXG4gICAgICAgICAgICAgIF9kYXRhID0gZGF0YS5kYXRhU2V0O1xyXG4gICAgICAgICAgICAgIF90b3RhbENvdW50ID0gZGF0YS50b3RhbENvdW50O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIF9kYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICBfdG90YWxDb3VudCA9IGRhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1BhbmVsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvL3RoaXMuYWdncmVnYXRlSGFuZGxpbmcoX2RhdGEpO1xyXG4gICAgICAgICAgICAvL3RoaXMuZ3JpZC5kYXRhID0geyBkYXRhOiBfZGF0YSwgdG90YWw6IF90b3RhbENvdW50IH07XHJcbiAgICAgICAgICAgIC8vdGhpcy5ncmlkLnBhZ2VTaXplID0gX3RvdGFsQ291bnQ7XHJcbiAgICAgICAgICAgIC8vdGhpcy5ncmlkLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy90aGlzLm5vdGlmeURhdGFDaGFuZ2UoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkcyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgICB0aGlzLmZpZWxkLkRhdGFTb3VyY2UsXHJcbiAgICAgICAgdGhpcy5ncnBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJlY29yZHNTdW1tYXJ5KCkge1xyXG4gICAgbGV0IFN1cnZleUlkcyA9IFtdO1xyXG5cclxuICAgIHRoaXMucmVzcG9uc2VEYXRhLmRhdGEuZm9yRWFjaCh2YWx1ZSA9PiB7XHJcbiAgICAgIFN1cnZleUlkcy5wdXNoKHZhbHVlLklkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2ViYXBpU2VydmljZVxyXG4gICAgICAucG9zdEFwaShcclxuICAgICAgICB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoJ3Bwc2Fwc3VydmV5c3VtbWFyeWluZm9VUkwnKSxcclxuICAgICAgICBTdXJ2ZXlJZHMsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICB0cnVlXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YS5kYXRhLmZvckVhY2godmFsdWUgPT4ge1xyXG4gICAgICAgICAgZGF0YS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBpZiAoeC5TdXJ2ZXlJZCA9PSB2YWx1ZS5JZCkge1xyXG4gICAgICAgICAgICAgIHZhbHVlWyd2YWx1ZSddID0gTnVtYmVyLmlzTmFOKCgoeC5Ub3RhbFRha2VuUXVlc3Rpb25zIC8geC5Ub3RhbFF1ZXN0aW9ucykgKiAxMDApKSA/IDAgOiBNYXRoLnJvdW5kKCgoeC5Ub3RhbFRha2VuUXVlc3Rpb25zIC8geC5Ub3RhbFF1ZXN0aW9ucykgKiAxMDApKTtcclxuICAgICAgICAgICAgICAvLyB2YWx1ZVsndmFsdWUnXSA9IDEwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldE5ld1N1cnZleSgpIHtcclxuICAgIGxldCByZXF1ZXN0Qm9keSA9IHtcclxuICAgICAgY29sdW1uczogXCJQYXJ0bmVyTWlsbElkLFN1cnZleVRlbXBsYXRlSWQsV0ZTX1N0YXR1c0NvZGUsV0ZTX1N0YXR1c05hbWVcIixcclxuICAgICAgcGFnZVNpemU6IHRoaXMuZmllbGQuUGFnZVNpemUgPz8gNTAsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMud2ViYXBpU2VydmljZVxyXG4gICAgICAucG9zdEFwaShcclxuICAgICAgICB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRQYWdlVXJsKHRoaXMuZGF0YS5SZXNvdXJjZVVSTEFsdCksXHJcbiAgICAgICAgcmVxdWVzdEJvZHksXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICB0cnVlXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIGRhdGEuZGF0YVNldC5mb3JFYWNoKHZhbHVlID0+IHtcclxuICAgICAgICAgIHZhbHVlWyd2YWx1ZSddID0gMDtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLmRhdGEucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcy50b3RhbCArPSAxO1xyXG5cclxuICAgICAgICAgIC8vZGF0YS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgLy8gIGlmICh4LlN1cnZleUlkID09IHZhbHVlLklkKSB7XHJcbiAgICAgICAgICAvLyAgICB2YWx1ZVsndmFsdWUnXSA9IE51bWJlci5pc05hTigoKHguVG90YWxUYWtlblF1ZXN0aW9ucyAvIHguVG90YWxRdWVzdGlvbnMpICogMTAwKSkgPyAwIDogTWF0aC5yb3VuZCgoKHguVG90YWxUYWtlblF1ZXN0aW9ucyAvIHguVG90YWxRdWVzdGlvbnMpICogMTAwKSk7XHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99KVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0IGZpZWxkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcclxuICB9XHJcblxyXG4gIGdldCBncnAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncm91cDtcclxuICB9XHJcblxyXG4gIGdldCBwYXJhbSgpOiBaR3JpZFBvc3RBcGlQYXJhbXMge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRHcmlkU2V0dGluZ3MoKTogWkdyaWRDb2x1bW5TZXR0aW5nc1tdIHtcclxuICAgIGNvbnN0IF9zdG9yYWdlS2V5ID0gJ2lvbmljLWZpZWxkOjonICsgdGhpcy5hdXRoU2VydmljZS5lMVRva2VuLnVzZXJOYW1lO1xyXG4gICAgY29uc3QgX2dyaWROYW1lID0gdGhpcy5maWVsZC5OYW1lICsgJzo6JyArIHRoaXMuZmllbGQuVmFsdWU7XHJcblxyXG4gICAgLy8gRmluZCBhbnkgc2V0dGluZyBmcm9tIGxvY2Fsc3RvcmFnZS4uXHJcbiAgICBsZXQgX2FyckdyaWRDYWNoaW5nOiBHcmlkQ2FjaGluZ1tdID0gdGhpcy56R3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UuZ2V0KF9zdG9yYWdlS2V5KTtcclxuICAgIGlmIChfYXJyR3JpZENhY2hpbmcgJiYgX2FyckdyaWRDYWNoaW5nWzBdKSB7XHJcbiAgICAgIGNvbnN0IF9ncmlkQ2FjaGluZzogR3JpZENhY2hpbmcgPSBfYXJyR3JpZENhY2hpbmcuZmluZCh4ID0+IHhbJ2RhdGFGb3JtRmllbGRzJ10gPT09IF9ncmlkTmFtZSk7XHJcblxyXG4gICAgICBpZiAoX2dyaWRDYWNoaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIF9ncmlkQ2FjaGluZy5ncmlkU2V0dGluZ3MuY29sdW1uc0NvbmZpZy5zb3J0KChhLCBiKSA9PiBhLm9yZGVySW5kZXggLSBiLm9yZGVySW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZpbHRlclBhcmFtc0J5UGFyZW50UmVmSWQoKSB7XHJcbiAgICAvLyBVc2UgZmllbGQgb3duIHJlZmVyZW5jZUlkIGlmIGF2YWlsYWJsZVxyXG4gICAgY29uc3QgcmVmSWQgPSB0aGlzLmdldEZpZWxkUmVmZXJlbmNlSWQoKSB8fCB0aGlzLmdycC5yZWZlcmVuY2VJZDtcclxuICAgIGNvbnN0IHJlZkZpZWxkID0gdGhpcy5maWVsZC5SZWZlcmVuY2VGaWVsZCB8fCB0aGlzLmdycC5wYXJlbnRSZWZlcmVuY2VGaWVsZDtcclxuICAgIGlmIChyZWZJZCAmJiB0aGlzLmdycC5wYXJlbnRSZWZlcmVuY2VGaWVsZCkge1xyXG4gICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHtcclxuICAgICAgICBrZXk6IHJlZkZpZWxkLFxyXG4gICAgICAgIG9wczogXCI9XCIsXHJcbiAgICAgICAgdmFsdWU6IHJlZklkLFxyXG4gICAgICB9O1xyXG4gICAgICAvLyBpZiAodGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmZpbmQoeCA9PiB4LmtleSA9PT0gZmlsdGVyVmFsdWUua2V5KSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucGFyYW1zLmZpbHRlclBhcmFtcy5wdXNoKGZpbHRlclZhbHVlKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZFJlZmVyZW5jZUlkKCkge1xyXG4gICAgbGV0IGZpZWxkUmVmZXJlbmNlSWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZmllbGQuUmVmZXJlbmNlSWQpIHtcclxuICAgICAgZmllbGRSZWZlcmVuY2VJZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgICB0aGlzLmZpZWxkLlJlZmVyZW5jZUlkLFxyXG4gICAgICAgIHRoaXMuZ3JwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGRSZWZlcmVuY2VJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsdGVyUGFyYW1zQ29sdW1ucygpIHtcclxuICAgIGNvbnN0IGNvbEZpZWxkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1ucy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudmFsdWVFeHByKSB7XHJcbiAgICAgICAgY29sRmllbGRzLnB1c2goZmllbGQudmFsdWVFeHByICsgXCIgYXMgXCIgKyBmaWVsZC5maWVsZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sRmllbGRzLnB1c2goZmllbGQuZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoY29sRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKGNvbEZpZWxkcy5pbmRleE9mKFwiSWRcIikgPT09IC0xKSB7XHJcbiAgICAgICAgY29sRmllbGRzLnB1c2goXCJJZFwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCB0bXBHcmlkQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgdG1wR3JpZENvbHVtbi5wdXNoKGNvbEZpZWxkcy5qb2luKFwiLFwiKSk7XHJcbiAgICBpZiAodGhpcy51c2FibGVDb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdG1wR3JpZENvbHVtbi5wdXNoKHRoaXMudXNhYmxlQ29sdW1ucy5qb2luKFwiLFwiKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhcmFtcy5jb2x1bW5zID0gdG1wR3JpZENvbHVtbi5qb2luKFwiLFwiKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZ3JvdXA7XHJcbiAgICB0aGlzLmdyb3VwLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBpZiAoZXZlbnQuV0ZTX1N0YXR1c05hbWUgPT0gJ05ldycpIHtcclxuICAgICAgbGV0IHBhcmFtID0ge1xyXG4gICAgICAgIFVzZXJJZDogdGhpcy5ncm91cFsnUFNBUFVTRVJJRCddLFxyXG4gICAgICAgIFN1cnZleU1pbGxJZDogZXZlbnQuSWRcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy53ZWJhcGlTZXJ2aWNlXHJcbiAgICAgICAgLnBvc3RBcGkoXHJcbiAgICAgICAgICB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoJ3Bwc2Fwc3VydmV5Y3JlYXRlVVJMJyksXHJcbiAgICAgICAgICBwYXJhbSxcclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICB0cnVlXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXAuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhLkVkaXRDbGlja1VSTCkge1xyXG4gICAgICAgICAgICAvLyBUT0RPOlxyXG4gICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZGF0YS5FZGl0Q2xpY2tVUkwsIGRhdGFJdGVtLklkXSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbEZpZWxkcyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuQ29sdW1uRmllbGRzLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiemdyaWQtY2VsbENsaWNrXCIsXHJcbiAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuRWRpdENsaWNrVVJMLFxyXG4gICAgICAgICAgICAgIGRhdGE6IGV2ZW50LFxyXG4gICAgICAgICAgICAgIGNvbHVtbkZpZWxkcyQ6IGNvbEZpZWxkc1xyXG4gICAgICAgICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5ncm91cC5lZGl0TW9kZWxVUkwsIGRhdGEuSWQsICdlZGl0J10sIHtcclxuICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3VwLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLkVkaXRDbGlja1VSTCkge1xyXG4gICAgICAgIC8vIFRPRE86XHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZGF0YS5FZGl0Q2xpY2tVUkwsIGRhdGFJdGVtLklkXSk7XHJcbiAgICAgICAgY29uc3QgY29sRmllbGRzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICAgIHR5cGU6IFwiemdyaWQtY2VsbENsaWNrXCIsXHJcbiAgICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5FZGl0Q2xpY2tVUkwsXHJcbiAgICAgICAgICBkYXRhOiBldmVudCxcclxuICAgICAgICAgIGNvbHVtbkZpZWxkcyQ6IGNvbEZpZWxkc1xyXG4gICAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5ncm91cC5lZGl0TW9kZWxVUkwsIGV2ZW50LklkLCAnZWRpdCddLCB7XHJcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcsIGZvbnRBd2VTb21lU2VydmljZT86IEZvbnRBd2VTb21lU2VydmljZSkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuZ2V0Rm9udEF3ZXNvbWUoaWNvbk5hbWUsIGZvbnRBd2VTb21lU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbHRlcigpIHtcclxuICAgIGlmICh0aGlzLnBhcmFtcy5maWx0ZXJzICYmIHRoaXMuZmllbGQuRmlsdGVycykge1xyXG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJzID0gdGhpcy5wYXJhbXMuZmlsdGVycyArIFwiICYmIFwiICsgdGhpcy5maWVsZC5GaWx0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5wYXJhbXMuZmlsdGVycyAmJiB0aGlzLmZpZWxkLkZpbHRlcnMpIHtcclxuICAgICAgdGhpcy5wYXJhbXMuZmlsdGVycyA9IHRoaXMuZmllbGQuRmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5maWVsZC5GaWx0ZXJzICYmIHRoaXMuZmllbGQuRmlsdGVycy5pbmRleE9mKFwiZ3JvdXAuXCIpICE9PSAtMSkge1xyXG4gICAgICBjb25zdCBmaWx0ZXJLZXlWYWxQYWlycyA9IHRoaXMuZmllbGQuRmlsdGVycy5zcGxpdChcIiBcIik7XHJcbiAgICAgIGNvbnN0IGdycFZhbHVlcyA9IGZpbHRlcktleVZhbFBhaXJzLmZpbHRlcihcclxuICAgICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC50cmltKCkuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTFcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGdycFZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcclxuICAgICAgICBjb25zdCBhY3R1YWxWYWwgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodmFsLCB0aGlzLmdycCk7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMuZmlsdGVycyA9IHRoaXMucGFyYW1zLmZpbHRlcnMucmVwbGFjZSh2YWwsIGFjdHVhbFZhbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Lmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5zY3JvbGxWaWV3Q2FyZHMuZGF0YSA9IHRoaXMucmVzcG9uc2VEYXRhLmRhdGE7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLnRvdGFsID0gdGhpcy5yZXNwb25zZURhdGEudG90YWw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLmRhdGEgPSB0aGlzLnJlc3BvbnNlRGF0YS5kYXRhLmZpbHRlcih4ID0+IGV2ZW50LmluY2x1ZGVzKHguV0ZTX1N0YXR1c05hbWUpKTtcclxuICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLnRvdGFsID0gdGhpcy5yZXNwb25zZURhdGEuZGF0YS5maWx0ZXIoeCA9PiBldmVudC5pbmNsdWRlcyh4LldGU19TdGF0dXNOYW1lKSkubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tPGtlbmRvLW11bHRpc2VsZWN0IFtkYXRhXT1cImZpbHRlckl0ZW1zXCIgW3ZhbHVlXT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cIidTdXJ2ZXkgU3RhdHVzJ1wiIFtmaWx0ZXJhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIj48L2tlbmRvLW11bHRpc2VsZWN0PlxyXG4mbmJzcDstLT5cclxuPGRpdiBjbGFzcz1cInN1cnZleS1jYXJkLWxpc3RcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXJkIG9mIHNjcm9sbFZpZXdDYXJkcy5kYXRhXCI+XHJcbiAgICA8c2Nyb2xsdmlldy1jYXJkIFtjYXJkXT1cImNhcmRcIj48L3Njcm9sbHZpZXctY2FyZD5cclxuICAgIDxrZW5kby1jYXJkIGNsYXNzPVwiY3VzdG9tLWNhcmQtZHJhZnRcIiAqbmdJZj1cImNhcmQuV0ZTX1N0YXR1c05hbWUgPT0gJ0RyYWZ0J1wiIFt3aWR0aF09XCInMjUwcHgnXCI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWhlYWRlciBjbGFzcz1cImstaGJveFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8aDEga2VuZG9DYXJkVGl0bGU+e3sgY2FyZC5TdXJ2ZXlUZW1wbGF0ZU5hbWUgfX08L2gxPlxyXG4gICAgICAgICAgPHAga2VuZG9DYXJkU3VidGl0bGU+U3VydmV5IERvYyBObzoge3tjYXJkLkRvY3VtZW50Tm99fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9rZW5kby1jYXJkLWhlYWRlcj5cclxuICAgICAgPGtlbmRvLWNhcmQtYm9keSBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIE1pbGwgTmFtZTogIHt7Y2FyZC5QYXJ0bmVyTWlsbE5hbWV9fVxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIFN1cnZleSBTdGF0dXM6IHt7Y2FyZC5XRlNfU3RhdHVzTmFtZX19XHJcbiAgICAgIDwva2VuZG8tY2FyZC1ib2R5PlxyXG4gICAgICA8a2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICAgICAgU3VydmV5IFByb2dyZXNzaW9uOlxyXG4gICAgICAgIDxrZW5kby1wcm9ncmVzc2JhciBzdHlsZT1cIndpZHRoOiAyMTBweDsgYm9yZGVyLXJhZGl1czoxMHB4XCIgW3ZhbHVlXT1cImNhcmQudmFsdWVcIiBbbGFiZWxdPVwibGFiZWxcIiBbcHJvZ3Jlc3NDc3NTdHlsZV09XCJwcm9ncmVzc1N0eWxlc1wiPlxyXG4gICAgICAgIDwva2VuZG8tcHJvZ3Jlc3NiYXI+XHJcblxyXG4gICAgICAgIDxrZW5kby1jYXJkLWFjdGlvbnMgY2xhc3M9XCJrLWhib3gtYWN0aW9uQnRuXCIgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2xheW91dF09XCInZW5kJ1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0KGNhcmQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPkNvbnRpbnVlICZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3BsYXknLCBmb250QXdlU29tZVNlcnZpY2UpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9rZW5kby1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICA8L2tlbmRvLWNhcmQ+XHJcblxyXG4gICAgPGtlbmRvLWNhcmQgY2xhc3M9XCJjdXN0b20tY2FyZC1zdWJtaXRcIiAqbmdJZj1cImNhcmQuV0ZTX1N0YXR1c05hbWUgPT0gJ1N1Ym1pdHRlZCdcIiBbd2lkdGhdPVwiJzI1MHB4J1wiPlxyXG4gICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhib3hcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgxIGtlbmRvQ2FyZFRpdGxlPnt7IGNhcmQuU3VydmV5VGVtcGxhdGVOYW1lIH19PC9oMT5cclxuICAgICAgICAgIDxwIGtlbmRvQ2FyZFN1YnRpdGxlPlN1cnZleSBEb2MgTm86IHt7Y2FyZC5Eb2N1bWVudE5vfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICBNaWxsIE5hbWU6ICB7e2NhcmQuUGFydG5lck1pbGxOYW1lfX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICBTdXJ2ZXkgU3RhdHVzOiB7e2NhcmQuV0ZTX1N0YXR1c05hbWV9fVxyXG4gICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPGtlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIFN1cnZleSBQcm9ncmVzc2lvbjpcclxuICAgICAgICA8a2VuZG8tcHJvZ3Jlc3NiYXIgc3R5bGU9XCJ3aWR0aDogMjEwcHg7IGJvcmRlci1yYWRpdXM6MTBweFwiIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3Byb2dyZXNzQ3NzU3R5bGVdPVwicHJvZ3Jlc3NTdHlsZXNcIj5cclxuICAgICAgICA8L2tlbmRvLXByb2dyZXNzYmFyPlxyXG4gICAgICAgIDxrZW5kby1jYXJkLWFjdGlvbnMgY2xhc3M9XCJrLWhib3gtYWN0aW9uQnRuXCIgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2xheW91dF09XCInZW5kJ1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0KGNhcmQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPlZpZXcgJm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJnZXRGb250QXdlc29tZSgnZmlsZS1hbHQnLCBmb250QXdlU29tZVNlcnZpY2UpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9rZW5kby1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICA8L2tlbmRvLWNhcmQ+XHJcblxyXG4gICAgPGtlbmRvLWNhcmQgY2xhc3M9XCJjdXN0b20tY2FyZC1uZXdcIiAqbmdJZj1cImNhcmQuV0ZTX1N0YXR1c05hbWUgPT0gJ05ldydcIiBbd2lkdGhdPVwiJzI1MHB4J1wiPlxyXG4gICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhib3hcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgxIGtlbmRvQ2FyZFRpdGxlPnt7IGNhcmQuU3VydmV5VGVtcGxhdGVOYW1lIH19PC9oMT5cclxuICAgICAgICAgIDxwIGtlbmRvQ2FyZFN1YnRpdGxlPnt7Y2FyZC5Eb2N1bWVudE5vfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICBNaWxsIE5hbWU6ICB7e2NhcmQuUGFydG5lck1pbGxOYW1lfX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICBTdXJ2ZXkgU3RhdHVzOiB7e2NhcmQuV0ZTX1N0YXR1c05hbWV9fVxyXG4gICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPGtlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIFN1cnZleSBQcm9ncmVzc2lvbjpcclxuICAgICAgICA8a2VuZG8tcHJvZ3Jlc3NiYXIgc3R5bGU9XCJ3aWR0aDogMjEwcHg7IGJvcmRlci1yYWRpdXM6MTBweFwiIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3Byb2dyZXNzQ3NzU3R5bGVdPVwicHJvZ3Jlc3NTdHlsZXNcIj5cclxuICAgICAgICA8L2tlbmRvLXByb2dyZXNzYmFyPlxyXG4gICAgICAgIDxrZW5kby1jYXJkLWFjdGlvbnMgY2xhc3M9XCJrLWhib3gtYWN0aW9uQnRuXCIgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2xheW91dF09XCInZW5kJ1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0KGNhcmQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPlN0YXJ0ICZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3BsYXknLCBmb250QXdlU29tZVNlcnZpY2UpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9rZW5kby1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1mb290ZXI+XHJcbiAgICA8L2tlbmRvLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -2,25 +2,27 @@ import { Component } from "@angular/core";
|
|
|
2
2
|
import { InputFieldBase } from "../components/inputfieldbase.component";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../services/zcomponent.service";
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
import * as i3 from "@
|
|
7
|
-
import * as i4 from "@angular
|
|
8
|
-
import * as i5 from "@angular/
|
|
9
|
-
import * as i6 from "@angular/
|
|
10
|
-
import * as i7 from "
|
|
5
|
+
import * as i2 from "mmhglobal-zcore";
|
|
6
|
+
import * as i3 from "@ionic/angular";
|
|
7
|
+
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
10
|
+
import * as i7 from "@angular/flex-layout/extended";
|
|
11
|
+
import * as i8 from "../pipe/htmlSanitize.pipe";
|
|
11
12
|
export class ZlabelComponent extends InputFieldBase {
|
|
12
|
-
constructor(compService) {
|
|
13
|
+
constructor(compService, fontAweSomeService) {
|
|
13
14
|
super(compService);
|
|
15
|
+
this.fontAweSomeService = fontAweSomeService;
|
|
14
16
|
this.labelText = "";
|
|
15
17
|
}
|
|
16
18
|
ngOnInit() {
|
|
17
19
|
super.initComponent().subscribe();
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
|
-
ZlabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZlabelComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
ZlabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZlabelComponent, selector: "app-zlabel", usesInheritance: true, ngImport: i0, template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style.--min-height]=\"data.Height\"\r\n [style.cursor]=\"data.OnItemClick ? 'pointer' : 'auto'\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n (click)=\"onItemClick($event, data)\">\r\n <div class=\"content-container e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <fa-icon class=\"e1tag-style2\" [icon]=\"getFontAwesome(componentProperties.icon)\" *ngIf=\"componentProperties.icon\"\r\n [style]=\"componentProperties.style.style2\"></fa-icon>\r\n <ion-label *ngIf=\"componentProperties.label && !data.IsHtml\" class=\"ion-text-wrap e1tag-style3\" Position=\"Fixed\"\r\n [color]=\"data.Color\" [style]=\"componentProperties.style.style3\">\r\n {{componentProperties.label}}</ion-label>\r\n <div *ngIf=\"componentProperties.label && data.IsHtml\" [innerHTML]=\"componentProperties.label | htmlSanitize\"\r\n class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></div>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}.medium-list{--min-height: 20px;padding:5px 0}ion-item{font-size:var(--content-font-size)}.content-container{width:100%}\n"], components: [{ type:
|
|
22
|
+
ZlabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZlabelComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
ZlabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZlabelComponent, selector: "app-zlabel", usesInheritance: true, ngImport: i0, template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style.--min-height]=\"data.Height\"\r\n [style.cursor]=\"data.OnItemClick ? 'pointer' : 'auto'\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n (click)=\"onItemClick($event, data)\">\r\n <div class=\"content-container e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <fa-icon class=\"e1tag-style2\" [icon]=\"getFontAwesome(componentProperties.icon, fontAweSomeService)\" *ngIf=\"componentProperties.icon\"\r\n [style]=\"componentProperties.style.style2\"></fa-icon>\r\n <ion-label *ngIf=\"componentProperties.label && !data.IsHtml\" class=\"ion-text-wrap e1tag-style3\" Position=\"Fixed\"\r\n [color]=\"data.Color\" [style]=\"componentProperties.style.style3\">\r\n {{componentProperties.label}}</ion-label>\r\n <div *ngIf=\"componentProperties.label && data.IsHtml\" [innerHTML]=\"componentProperties.label | htmlSanitize\"\r\n class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></div>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}.medium-list{--min-height: 20px;padding:5px 0}ion-item{font-size:var(--content-font-size)}.content-container{width:100%}\n"], components: [{ type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "htmlSanitize": i8.HtmlSanitizePipe } });
|
|
22
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZlabelComponent, decorators: [{
|
|
23
25
|
type: Component,
|
|
24
|
-
args: [{ selector: 'app-zlabel', template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style.--min-height]=\"data.Height\"\r\n [style.cursor]=\"data.OnItemClick ? 'pointer' : 'auto'\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n (click)=\"onItemClick($event, data)\">\r\n <div class=\"content-container e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <fa-icon class=\"e1tag-style2\" [icon]=\"getFontAwesome(componentProperties.icon)\" *ngIf=\"componentProperties.icon\"\r\n [style]=\"componentProperties.style.style2\"></fa-icon>\r\n <ion-label *ngIf=\"componentProperties.label && !data.IsHtml\" class=\"ion-text-wrap e1tag-style3\" Position=\"Fixed\"\r\n [color]=\"data.Color\" [style]=\"componentProperties.style.style3\">\r\n {{componentProperties.label}}</ion-label>\r\n <div *ngIf=\"componentProperties.label && data.IsHtml\" [innerHTML]=\"componentProperties.label | htmlSanitize\"\r\n class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></div>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}.medium-list{--min-height: 20px;padding:5px 0}ion-item{font-size:var(--content-font-size)}.content-container{width:100%}\n"] }]
|
|
25
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
args: [{ selector: 'app-zlabel', template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style.--min-height]=\"data.Height\"\r\n [style.cursor]=\"data.OnItemClick ? 'pointer' : 'auto'\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n (click)=\"onItemClick($event, data)\">\r\n <div class=\"content-container e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <fa-icon class=\"e1tag-style2\" [icon]=\"getFontAwesome(componentProperties.icon, fontAweSomeService)\" *ngIf=\"componentProperties.icon\"\r\n [style]=\"componentProperties.style.style2\"></fa-icon>\r\n <ion-label *ngIf=\"componentProperties.label && !data.IsHtml\" class=\"ion-text-wrap e1tag-style3\" Position=\"Fixed\"\r\n [color]=\"data.Color\" [style]=\"componentProperties.style.style3\">\r\n {{componentProperties.label}}</ion-label>\r\n <div *ngIf=\"componentProperties.label && data.IsHtml\" [innerHTML]=\"componentProperties.label | htmlSanitize\"\r\n class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></div>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}.medium-list{--min-height: 20px;padding:5px 0}ion-item{font-size:var(--content-font-size)}.content-container{width:100%}\n"] }]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3psYWJlbC96bGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxhYmVsL3psYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7OztBQVF4RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBR2pELFlBQ0UsV0FBOEIsRUFDdkIsa0JBQXNDO1FBRTdDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUZYLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFKeEMsY0FBUyxHQUFHLEVBQUUsQ0FBQztJQU90QixDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs2R0FaVSxlQUFlO2lHQUFmLGVBQWUseUVDVjVCLDByQ0FlQTs0RkRMYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvbnRBd2VTb21lU2VydmljZSwgWkNvbXBvbmVudCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96bGFiZWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFpsYWJlbENvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBwdWJsaWMgbGFiZWxUZXh0ID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZm9udEF3ZVNvbWVTZXJ2aWNlOiBGb250QXdlU29tZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24taXRlbSBbZm9ybUdyb3VwXT1cImZvcm1cIlxyXG4gICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCJcclxuICBbbmdDbGFzc109XCJnZXRDbGFzcyhmb3JtLCBkYXRhKVwiIFtzdHlsZS4tLW1pbi1oZWlnaHRdPVwiZGF0YS5IZWlnaHRcIlxyXG4gIFtzdHlsZS5jdXJzb3JdPVwiZGF0YS5Pbkl0ZW1DbGljayA/ICdwb2ludGVyJyA6ICdhdXRvJ1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiXHJcbiAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgZGF0YSlcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXIgZTF0YWctc3R5bGUxXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCI+XHJcbiAgICA8ZmEtaWNvbiBjbGFzcz1cImUxdGFnLXN0eWxlMlwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGNvbXBvbmVudFByb3BlcnRpZXMuaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiICpuZ0lmPVwiY29tcG9uZW50UHJvcGVydGllcy5pY29uXCJcclxuICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+PC9mYS1pY29uPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWwgJiYgIWRhdGEuSXNIdG1sXCIgY2xhc3M9XCJpb24tdGV4dC13cmFwIGUxdGFnLXN0eWxlM1wiIFBvc2l0aW9uPVwiRml4ZWRcIlxyXG4gICAgICBbY29sb3JdPVwiZGF0YS5Db2xvclwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPlxyXG4gICAgICB7e2NvbXBvbmVudFByb3BlcnRpZXMubGFiZWx9fTwvaW9uLWxhYmVsPlxyXG4gICAgPGRpdiAqbmdJZj1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWwgJiYgZGF0YS5Jc0h0bWxcIiBbaW5uZXJIVE1MXT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWwgIHwgaHRtbFNhbml0aXplXCJcclxuICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTNcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|
|
@@ -8,8 +8,9 @@ import * as i1 from "../services/zcomponent.service";
|
|
|
8
8
|
import * as i2 from "mmhglobal-zcore";
|
|
9
9
|
import * as i3 from "@progress/telerik-angular-report-viewer";
|
|
10
10
|
export class ZreportComponent extends FieldBase {
|
|
11
|
-
constructor(compService, resourceApiService) {
|
|
11
|
+
constructor(compService, fontAweSomeService, resourceApiService) {
|
|
12
12
|
super(compService);
|
|
13
|
+
this.fontAweSomeService = fontAweSomeService;
|
|
13
14
|
this.resourceApiService = resourceApiService;
|
|
14
15
|
this.title = "Report Viewer";
|
|
15
16
|
this.viewerContainerStyle = {
|
|
@@ -98,8 +99,8 @@ export class ZreportComponent extends FieldBase {
|
|
|
98
99
|
// this.paramToResizeReportViewer = false;
|
|
99
100
|
//}
|
|
100
101
|
}
|
|
101
|
-
getFontAwesome(iconName) {
|
|
102
|
-
return ZComponentHelper.getFontAwesome(iconName);
|
|
102
|
+
getFontAwesome(iconName, fontAweSomeService) {
|
|
103
|
+
return ZComponentHelper.getFontAwesome(iconName, fontAweSomeService);
|
|
103
104
|
}
|
|
104
105
|
resizeViewer(e, args) {
|
|
105
106
|
//console.log("Page ready.");
|
|
@@ -118,16 +119,16 @@ export class ZreportComponent extends FieldBase {
|
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
|
-
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ZComponentService }, { token: i2.ResourceApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
+
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i2.ResourceApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
123
|
ZreportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZreportComponent, selector: "app-zreport", host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["reportViewer1"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div width=\"100%\" height=\"800px\">\r\n <!--<ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.refreshReport()\">\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Refresh</span>\r\n </ion-button>\r\n\r\n <ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.commands.print.exec()\">\r\n <fa-icon [icon]=\"getFontAwesome('print')\"></fa-icon>\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Print</span>\r\n </ion-button>-->\r\n\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"ready\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [exportBegin]=\"exportBeginHandler\"\r\n [exportEnd]=\"exportEndHandler\"\r\n [pageReady]=\"onPageReady\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"], components: [{ type: i3.TelerikReportViewerComponent, selector: "tr-viewer", inputs: ["keepClientAlive", "id", "serviceUrl", "reportServer", "templateUrl", "initialPageAreaImageUrl", "reportSource", "sendEmail", "parameters", "scale", "scaleMode", "viewMode", "pageMode", "persistSession", "parameterEditors", "authenticationToken", "printMode", "selector", "disabledButtonClass", "checkedButtonClass", "enableAccessibility", "searchMetadataOnDemand", "parametersAreaVisible", "documentMapVisible", "ready", "error", "parametersAreaPosition", "documentMapAreaPosition", "exportBegin", "exportEnd", "sendEmailBegin", "sendEmailEnd", "pageReady", "printBegin", "printEnd", "renderingBegin", "renderingEnd", "updateUi", "interactiveActionExecuting", "interactiveActionEnter", "interactiveActionLeave", "viewerToolTipOpening", "containerStyle"] }] });
|
|
123
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZreportComponent, decorators: [{
|
|
124
125
|
type: Component,
|
|
125
126
|
args: [{ selector: "app-zreport", template: "<div width=\"100%\" height=\"800px\">\r\n <!--<ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.refreshReport()\">\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Refresh</span>\r\n </ion-button>\r\n\r\n <ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.commands.print.exec()\">\r\n <fa-icon [icon]=\"getFontAwesome('print')\"></fa-icon>\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Print</span>\r\n </ion-button>-->\r\n\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"ready\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [exportBegin]=\"exportBeginHandler\"\r\n [exportEnd]=\"exportEndHandler\"\r\n [pageReady]=\"onPageReady\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"] }]
|
|
126
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.ResourceApiService }]; }, propDecorators: { viewer: [{
|
|
127
|
+
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.ResourceApiService }]; }, propDecorators: { viewer: [{
|
|
127
128
|
type: ViewChild,
|
|
128
129
|
args: ['reportViewer1', { static: false }]
|
|
129
130
|
}], onResize: [{
|
|
130
131
|
type: HostListener,
|
|
131
132
|
args: ['window:resize', ['$event']]
|
|
132
133
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBNEIsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUlwSCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFZOUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFnQjdDLFlBQVksV0FBOEIsRUFBVSxrQkFBc0M7UUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFBNUQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWIxRixVQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ2pCLHlCQUFvQixHQUFHO1lBQzVCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE9BQU87WUFDZixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7U0FDakMsQ0FBQztRQUVLLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDbkIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFbEgsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lB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QU41QixTQUFTOytCQUNFLGFBQWE7eUlBTXdCLE1BQU07c0JBQXBELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFrRTdDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFRlbGVyaWtSZXBvcnRWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiQHByb2dyZXNzL3RlbGVyaWstYW5ndWxhci1yZXBvcnQtdmlld2VyXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFJlc291cmNlQXBpU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcbi8vIGltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpyZXBvcnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pyZXBvcnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4venJlcG9ydC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAvLyBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacmVwb3J0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdyZXBvcnRWaWV3ZXIxJywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZXdlcjogVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudDtcclxuXHJcbiAgdGl0bGUgPSBcIlJlcG9ydCBWaWV3ZXJcIjtcclxuICBwdWJsaWMgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBbJ2ZvbnQtZmFtaWx5J106ICdtcyBzYW5zIHNlcmlmJ1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBpc1Zpc2libGUgPSB0cnVlO1xyXG4gIHB1YmxpYyByZXNvdXJjZVVSTCA9IG51bGw7XHJcbiAgcHVibGljIFJlcG9ydFNvdXJjZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSwgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSkgeyBzdXBlcihjb21wU2VydmljZSkgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5yZXNvdXJjZVVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCh0aGlzLmRhdGEuUmVzb3VyY2VVUkwpO1xyXG4gICAgICBpZiAoIXRoaXMucmVzb3VyY2VVUkwpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEhdGhpcy5kYXRhLklzQXV0b0dlbmVyYXRlUmVwb3J0KSB7XHJcbiAgICAgICAgdGhpcy5SZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTG9jYWxpemF0aW9uLlxyXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBsZXQgcmVzb3VyY2VzID0gJ0xvYWRpbmcuLi4nOyAvLyBEZWZhdWx0LlxyXG5cclxuICAgIHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMgPSBPYmplY3QuYXNzaWduKHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMsIHJlc291cmNlcyk7XHJcbiAgfVxyXG5cclxuICByZWFkeSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlYWR5LlwiKTtcclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUhpc3RvcnlCYWNrJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlSGlzdG9yeUZvcndhcmQnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2hpc3RvcnlGb3J3YXJkJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVSZWZyZXNoJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9yZWZyZXNoJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVTdG9wUmVuZGVyaW5nJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9zdG9wUmVuZGVyaW5nJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvRmlyc3RQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvUHJldlBhZ2UnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9QcmV2UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlR29Ub05leHRQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvTmV4dFBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUdvVG9MYXN0UGFnZSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVQcmludFByZXZpZXcnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVByaW50UHJldmlldyddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlRXhwb3J0J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9leHBvcnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVByaW50J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9wcmludCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVEb2N1bWVudE1hcCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVab29tSW4nXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3pvb21JbiddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlWm9vbU91dCddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbU91dCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlVG9nZ2xlWm9vbU1vZGUnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVpvb21Nb2RlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVNlYXJjaERpYWxvZyddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVJlYWR5KGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICAvLyBkb2VzbnQgc2VlbSB0byB3b3JrIGluIGFuZ3VsYXIgMTNcclxuICAgIC8vdGhpcy5yZXNpemVWaWV3ZXIoZSwgYXJncyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlc2l6ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgdmlld2VyVG9vbFRpcE9wZW5pbmcoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCd2aWV3ZXJUb29sVGlwT3BlbmluZyAnICsgYXJncy50b29sVGlwLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QmVnaW5IYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBiZWdpbi5cIik7XHJcbiAgfVxyXG5cclxuICBleHBvcnRFbmRIYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBlbmQuXCIpO1xyXG4gIH1cclxuXHJcbiAgb25SZW5kZXJpbmdFbmQoZTogYW55LCBhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIE9jY3VycyBhZnRlciByZW5kZXJpbmcgdGhlIHJlcG9ydC5cclxuICAgIGNvbnNvbGUubG9nKFwiUmVuZGVyaW5nIGVuZGVkLlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZW5lcmF0ZVJlcG9ydCgpIHtcclxuICAgIGNvbnN0IHJzID0gdGhpcy5ncm91cFtcIlJlcG9ydFNvdXJjZVwiXTtcclxuICAgIHRoaXMucmVzb3VyY2VVUkwgPSByc1sndXJsJ107XHJcbiAgICB0aGlzLnZpZXdlci5zZXRSZXBvcnRTb3VyY2UocnMpO1xyXG4gICAgdGhpcy52aWV3ZXIucmVmcmVzaFJlcG9ydCgpO1xyXG5cclxuXHJcbiAgICAvL2lmICh0aGlzLnZpZXdlclsnaGVpZ2h0J10pIHtcclxuICAgIC8vICB0aGlzLnZpZXdlclsnaGVpZ2h0J10oMTApO1xyXG4gICAgLy99XHJcblxyXG4gICAgLy92YXIgZG9jdW1lbnRNYXBTcGxpdHRlciA9ICQoXCIudHJ2LWRvY3VtZW50LW1hcC1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgIC8vZG9jdW1lbnRNYXBTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcblxyXG4gICAgLy92YXIgcGFyYW1ldGVyU3BsaXR0ZXIgPSAkKFwiLnRydi1wYXJhbWV0ZXJzLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgLy9wYXJhbWV0ZXJTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcbiAgICBcclxuXHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ0F1dG9SZXNpemUnXSkge1xyXG4gICAgLy8gIHRoaXMucGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IHRydWU7XHJcbiAgICAvL30gZWxzZSB7XHJcbiAgICAvLyAgdGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyID0gZmFsc2U7XHJcbiAgICAvL31cclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplVmlld2VyKGU/OiBhbnksIGFyZ3M/OiBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJQYWdlIHJlYWR5LlwiKTtcclxuICAgIGlmICh0aGlzLnBhcmFtVG9SZXNpemVSZXBvcnRWaWV3ZXIpIHtcclxuICAgICAgLy9jdXJyZW50bHkgZG9lc24ndCBzZWVtIHRvIHdvcmsuXHJcbiAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSAkKFwiLnRydi1wYWdlcy1hcmVhIC50cnYtcGFnZS13cmFwcGVyXCIpLmhlaWdodCgpICsgJChcIi50cnYtbmF2XCIpLm91dGVySGVpZ2h0KCkgKyAyOyAvLyBDYWxjdWxhdGUgdGhlIHJlcG9ydCBwYWdlIGhlaWdodFxyXG4gICAgICBjb25zdCB2aWV3ZXIgPSAkKFwiI3JlcG9ydFZpZXdlcjFcIik7XHJcbiAgICAgIGNvbnN0IHZpZXdlckhlaWdodCA9IHZpZXdlci5oZWlnaHQoKTtcclxuXHJcbiAgICAgIGlmICh2aWV3ZXJIZWlnaHQgIT09IHBhZ2VIZWlnaHQpIHtcclxuICAgICAgICB2aWV3ZXIuaGVpZ2h0KHBhZ2VIZWlnaHQpO1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50TWFwU3BsaXR0ZXIgPSAkKFwiLnRydi1kb2N1bWVudC1tYXAtc3BsaXR0ZXJcIikuZGF0YShcImtlbmRvU3BsaXR0ZXJcIik7XHJcbiAgICAgICAgZG9jdW1lbnRNYXBTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlclNwbGl0dGVyID0gJChcIi50cnYtcGFyYW1ldGVycy1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgICAgICBwYXJhbWV0ZXJTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCI4MDBweFwiPlxyXG4gIDwhLS08aW9uLWJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3Ryb25nPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlJlcG9ydFZpZXdlci5yZWZyZXNoUmVwb3J0KClcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7XCI+PC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj5SZWZyZXNoPC9zcGFuPlxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgPGlvbi1idXR0b24gY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0cm9uZz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSZXBvcnRWaWV3ZXIuY29tbWFuZHMucHJpbnQuZXhlYygpXCI+XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJnZXRGb250QXdlc29tZSgncHJpbnQnKVwiPjwvZmEtaWNvbj5cclxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7XCI+PC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj5QcmludDwvc3Bhbj5cclxuICA8L2lvbi1idXR0b24+LS0+XHJcblxyXG4gIDx0ci12aWV3ZXIgI3JlcG9ydFZpZXdlcjFcclxuICAgICAgICAgICAgIFtjb250YWluZXJTdHlsZV09XCJ2aWV3ZXJDb250YWluZXJTdHlsZVwiXHJcbiAgICAgICAgICAgICBbc2VydmljZVVybF09XCJyZXNvdXJjZVVSTFwiXHJcbiAgICAgICAgICAgICBbcmVwb3J0U291cmNlXT1cIlJlcG9ydFNvdXJjZVwiXHJcbiAgICAgICAgICAgICBbdmlld01vZGVdPVwiJ0lOVEVSQUNUSVZFJ1wiXHJcbiAgICAgICAgICAgICBbc2NhbGVNb2RlXT1cIidTUEVDSUZJQydcIlxyXG4gICAgICAgICAgICAgW3NjYWxlXT1cIjEuMFwiXHJcbiAgICAgICAgICAgICBbZW5hYmxlQWNjZXNzaWJpbGl0eV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICBbcmVhZHldPVwicmVhZHlcIlxyXG4gICAgICAgICAgICAgW3ZpZXdlclRvb2xUaXBPcGVuaW5nXT1cInZpZXdlclRvb2xUaXBPcGVuaW5nXCJcclxuICAgICAgICAgICAgIFtleHBvcnRCZWdpbl09XCJleHBvcnRCZWdpbkhhbmRsZXJcIlxyXG4gICAgICAgICAgICAgW2V4cG9ydEVuZF09XCJleHBvcnRFbmRIYW5kbGVyXCJcclxuICAgICAgICAgICAgIFtwYWdlUmVhZHldPVwib25QYWdlUmVhZHlcIlxyXG4gICAgICAgICAgICAgW3JlbmRlcmluZ0VuZF09XCJvblJlbmRlcmluZ0VuZFwiPlxyXG4gIDwvdHItdmlld2VyPlxyXG48L2Rpdj5cclxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBNEIsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUlwSCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUEwQyxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFZOUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFnQjdDLFlBQ0UsV0FBOEIsRUFDdkIsa0JBQXNDLEVBQ3JDLGtCQUFzQztRQUU5QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFIWCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFoQmhELFVBQUssR0FBRyxlQUFlLENBQUM7UUFDakIseUJBQW9CLEdBQUc7WUFDNUIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsT0FBTztZQUNmLENBQUMsYUFBYSxDQUFDLEVBQUUsZUFBZTtTQUNqQyxDQUFDO1FBRUssY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNuQiw4QkFBeUIsR0FBRyxLQUFLLENBQUM7SUFRMUMsQ0FBQztJQUVELFFBQVE7UUFDTixL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QUNILENBQUM7OzhHQTVJVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixpUENuQjdCLG1vREEwQ0E7NEZEdkJhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxhQUFhOzBLQU13QixNQUFNO3NCQUFwRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBd0U3QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIEhvc3RMaXN0ZW5lciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBUZWxlcmlrUmVwb3J0Vmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIkBwcm9ncmVzcy90ZWxlcmlrLWFuZ3VsYXItcmVwb3J0LXZpZXdlclwiO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGb250QXdlU29tZVNlcnZpY2UsIFJlc291cmNlQXBpU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcbi8vIGltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpyZXBvcnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pyZXBvcnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4venJlcG9ydC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAvLyBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacmVwb3J0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdyZXBvcnRWaWV3ZXIxJywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZXdlcjogVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudDtcclxuXHJcbiAgdGl0bGUgPSBcIlJlcG9ydCBWaWV3ZXJcIjtcclxuICBwdWJsaWMgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBbJ2ZvbnQtZmFtaWx5J106ICdtcyBzYW5zIHNlcmlmJ1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBpc1Zpc2libGUgPSB0cnVlO1xyXG4gIHB1YmxpYyByZXNvdXJjZVVSTCA9IG51bGw7XHJcbiAgcHVibGljIFJlcG9ydFNvdXJjZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcFNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5yZXNvdXJjZVVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCh0aGlzLmRhdGEuUmVzb3VyY2VVUkwpO1xyXG4gICAgICBpZiAoIXRoaXMucmVzb3VyY2VVUkwpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEhdGhpcy5kYXRhLklzQXV0b0dlbmVyYXRlUmVwb3J0KSB7XHJcbiAgICAgICAgdGhpcy5SZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTG9jYWxpemF0aW9uLlxyXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBsZXQgcmVzb3VyY2VzID0gJ0xvYWRpbmcuLi4nOyAvLyBEZWZhdWx0LlxyXG5cclxuICAgIHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMgPSBPYmplY3QuYXNzaWduKHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMsIHJlc291cmNlcyk7XHJcbiAgfVxyXG5cclxuICByZWFkeSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlYWR5LlwiKTtcclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUhpc3RvcnlCYWNrJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlSGlzdG9yeUZvcndhcmQnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2hpc3RvcnlGb3J3YXJkJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVSZWZyZXNoJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9yZWZyZXNoJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVTdG9wUmVuZGVyaW5nJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9zdG9wUmVuZGVyaW5nJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvRmlyc3RQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvUHJldlBhZ2UnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9QcmV2UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlR29Ub05leHRQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvTmV4dFBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUdvVG9MYXN0UGFnZSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVQcmludFByZXZpZXcnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVByaW50UHJldmlldyddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlRXhwb3J0J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9leHBvcnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVByaW50J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9wcmludCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVEb2N1bWVudE1hcCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVab29tSW4nXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3pvb21JbiddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlWm9vbU91dCddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbU91dCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlVG9nZ2xlWm9vbU1vZGUnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVpvb21Nb2RlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVNlYXJjaERpYWxvZyddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVJlYWR5KGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICAvLyBkb2VzbnQgc2VlbSB0byB3b3JrIGluIGFuZ3VsYXIgMTNcclxuICAgIC8vdGhpcy5yZXNpemVWaWV3ZXIoZSwgYXJncyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlc2l6ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgdmlld2VyVG9vbFRpcE9wZW5pbmcoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCd2aWV3ZXJUb29sVGlwT3BlbmluZyAnICsgYXJncy50b29sVGlwLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QmVnaW5IYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBiZWdpbi5cIik7XHJcbiAgfVxyXG5cclxuICBleHBvcnRFbmRIYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBlbmQuXCIpO1xyXG4gIH1cclxuXHJcbiAgb25SZW5kZXJpbmdFbmQoZTogYW55LCBhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIE9jY3VycyBhZnRlciByZW5kZXJpbmcgdGhlIHJlcG9ydC5cclxuICAgIGNvbnNvbGUubG9nKFwiUmVuZGVyaW5nIGVuZGVkLlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZW5lcmF0ZVJlcG9ydCgpIHtcclxuICAgIGNvbnN0IHJzID0gdGhpcy5ncm91cFtcIlJlcG9ydFNvdXJjZVwiXTtcclxuICAgIHRoaXMucmVzb3VyY2VVUkwgPSByc1sndXJsJ107XHJcbiAgICB0aGlzLnZpZXdlci5zZXRSZXBvcnRTb3VyY2UocnMpO1xyXG4gICAgdGhpcy52aWV3ZXIucmVmcmVzaFJlcG9ydCgpO1xyXG5cclxuXHJcbiAgICAvL2lmICh0aGlzLnZpZXdlclsnaGVpZ2h0J10pIHtcclxuICAgIC8vICB0aGlzLnZpZXdlclsnaGVpZ2h0J10oMTApO1xyXG4gICAgLy99XHJcblxyXG4gICAgLy92YXIgZG9jdW1lbnRNYXBTcGxpdHRlciA9ICQoXCIudHJ2LWRvY3VtZW50LW1hcC1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgIC8vZG9jdW1lbnRNYXBTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcblxyXG4gICAgLy92YXIgcGFyYW1ldGVyU3BsaXR0ZXIgPSAkKFwiLnRydi1wYXJhbWV0ZXJzLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgLy9wYXJhbWV0ZXJTcGxpdHRlci5yZXNpemUodHJ1ZSk7XHJcbiAgICBcclxuXHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ0F1dG9SZXNpemUnXSkge1xyXG4gICAgLy8gIHRoaXMucGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IHRydWU7XHJcbiAgICAvL30gZWxzZSB7XHJcbiAgICAvLyAgdGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyID0gZmFsc2U7XHJcbiAgICAvL31cclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcsIGZvbnRBd2VTb21lU2VydmljZT86IEZvbnRBd2VTb21lU2VydmljZSkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuZ2V0Rm9udEF3ZXNvbWUoaWNvbk5hbWUsIGZvbnRBd2VTb21lU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZVZpZXdlcihlPzogYW55LCBhcmdzPzogYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiUGFnZSByZWFkeS5cIik7XHJcbiAgICBpZiAodGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyKSB7XHJcbiAgICAgIC8vY3VycmVudGx5IGRvZXNuJ3Qgc2VlbSB0byB3b3JrLlxyXG4gICAgICBjb25zdCBwYWdlSGVpZ2h0ID0gJChcIi50cnYtcGFnZXMtYXJlYSAudHJ2LXBhZ2Utd3JhcHBlclwiKS5oZWlnaHQoKSArICQoXCIudHJ2LW5hdlwiKS5vdXRlckhlaWdodCgpICsgMjsgLy8gQ2FsY3VsYXRlIHRoZSByZXBvcnQgcGFnZSBoZWlnaHRcclxuICAgICAgY29uc3Qgdmlld2VyID0gJChcIiNyZXBvcnRWaWV3ZXIxXCIpO1xyXG4gICAgICBjb25zdCB2aWV3ZXJIZWlnaHQgPSB2aWV3ZXIuaGVpZ2h0KCk7XHJcblxyXG4gICAgICBpZiAodmlld2VySGVpZ2h0ICE9PSBwYWdlSGVpZ2h0KSB7XHJcbiAgICAgICAgdmlld2VyLmhlaWdodChwYWdlSGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkb2N1bWVudE1hcFNwbGl0dGVyID0gJChcIi50cnYtZG9jdW1lbnQtbWFwLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgICAgIGRvY3VtZW50TWFwU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJTcGxpdHRlciA9ICQoXCIudHJ2LXBhcmFtZXRlcnMtc3BsaXR0ZXJcIikuZGF0YShcImtlbmRvU3BsaXR0ZXJcIik7XHJcbiAgICAgICAgcGFyYW1ldGVyU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiODAwcHhcIj5cclxuICA8IS0tPGlvbi1idXR0b24gY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0cm9uZz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSZXBvcnRWaWV3ZXIucmVmcmVzaFJlcG9ydCgpXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+UmVmcmVzaDwvc3Bhbj5cclxuICA8L2lvbi1idXR0b24+XHJcblxyXG4gIDxpb24tYnV0dG9uIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiUmVwb3J0Vmlld2VyLmNvbW1hbmRzLnByaW50LmV4ZWMoKVwiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3ByaW50JylcIj48L2ZhLWljb24+XHJcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+UHJpbnQ8L3NwYW4+XHJcbiAgPC9pb24tYnV0dG9uPi0tPlxyXG5cclxuICA8dHItdmlld2VyICNyZXBvcnRWaWV3ZXIxXHJcbiAgICAgICAgICAgICBbY29udGFpbmVyU3R5bGVdPVwidmlld2VyQ29udGFpbmVyU3R5bGVcIlxyXG4gICAgICAgICAgICAgW3NlcnZpY2VVcmxdPVwicmVzb3VyY2VVUkxcIlxyXG4gICAgICAgICAgICAgW3JlcG9ydFNvdXJjZV09XCJSZXBvcnRTb3VyY2VcIlxyXG4gICAgICAgICAgICAgW3ZpZXdNb2RlXT1cIidJTlRFUkFDVElWRSdcIlxyXG4gICAgICAgICAgICAgW3NjYWxlTW9kZV09XCInU1BFQ0lGSUMnXCJcclxuICAgICAgICAgICAgIFtzY2FsZV09XCIxLjBcIlxyXG4gICAgICAgICAgICAgW2VuYWJsZUFjY2Vzc2liaWxpdHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgW3JlYWR5XT1cInJlYWR5XCJcclxuICAgICAgICAgICAgIFt2aWV3ZXJUb29sVGlwT3BlbmluZ109XCJ2aWV3ZXJUb29sVGlwT3BlbmluZ1wiXHJcbiAgICAgICAgICAgICBbZXhwb3J0QmVnaW5dPVwiZXhwb3J0QmVnaW5IYW5kbGVyXCJcclxuICAgICAgICAgICAgIFtleHBvcnRFbmRdPVwiZXhwb3J0RW5kSGFuZGxlclwiXHJcbiAgICAgICAgICAgICBbcGFnZVJlYWR5XT1cIm9uUGFnZVJlYWR5XCJcclxuICAgICAgICAgICAgIFtyZW5kZXJpbmdFbmRdPVwib25SZW5kZXJpbmdFbmRcIj5cclxuICA8L3RyLXZpZXdlcj5cclxuPC9kaXY+XHJcbiJdfQ==
|