vcomply-workflow-engine 6.1.45 → 6.1.47

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.
@@ -9,19 +9,44 @@ import * as i4 from "../popover/popover.directive";
9
9
  export class AvatarV2Component {
10
10
  constructor(config) {
11
11
  this.avatarList = [];
12
+ this.type = 'MULTI_AVATAR';
12
13
  this.imagePath = '';
14
+ this.sliceCount = 3;
15
+ this.popoverSliceCount = 3;
16
+ this.showPopover = false;
13
17
  this.env = config?.envConfig;
14
18
  this.imagePath = this.env?.s3Url + this.env?.s3Bucket + '/profile_pic/thumb/';
15
19
  }
20
+ ngOnInit() {
21
+ console.log('avatarList', this.avatarList);
22
+ this.getSliceCount();
23
+ }
24
+ getSliceCount() {
25
+ if (this.type === 'SINGLE_AVATAR' && this.avatarList?.length > 1) {
26
+ this.sliceCount = 0;
27
+ this.popoverSliceCount = 0;
28
+ this.showPopover = true;
29
+ }
30
+ else {
31
+ if (this.avatarList?.length > 3) {
32
+ this.showPopover = true;
33
+ }
34
+ else {
35
+ this.showPopover = false;
36
+ }
37
+ }
38
+ }
16
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarV2Component, deps: [{ token: i1.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AvatarV2Component, isStandalone: true, selector: "lib-avatar-v2", inputs: { avatarList: "avatarList" }, ngImport: i0, template: "<div class=\"vx-avatar md vx-d-flex vx-align-center\">\n\n <ng-container *ngFor=\"let eachAvatar of avatarList | slice:0:3\">\n <div class=\" shortName vx-p-3\">\n <img *ngIf=\"eachAvatar?.imagePath; else avatar\" [src]=\"imagePath + eachAvatar?.imagePath\"\n [alt]=\"eachAvatar?.shortName\" [appTooltip]=\"eaeachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\" />\n <ng-template #avatar>\n <span *ngIf=\"!eachAvatar?.avatar\" [appTooltip]=\"eachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ eachAvatar?.shortName\n }}</span>\n </ng-template>\n </div>\n\n </ng-container>\n\n <span *ngIf=\"avatarList?.length > 3\" appPopover (click)=\"users.popover()\" placement=\"left\">+{{ avatarList?.length-\n 1 }}</span>\n\n\n</div>\n\n<app-popover #users>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let user of avatarList | slice: 3\" appTooltip=\"{{ user?.name }}\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n <div class=\"avatar-card\">\n <div class=\"avatar\">\n <ng-container *ngIf=\"!user?.avatar\">{{\n user?.shortName\n }}</ng-container>\n <img *ngIf=\"user?.avatar\" [src]=\"user?.avatar\" alt=\"\" width=\"24\" height=\"24\" />\n </div>\n <span class=\"value\">{{ user?.name }}</span>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";.shortName{height:24px;width:24px!important;overflow:hidden;color:#fff;font-size:10px;border-radius:50%;text-transform:uppercase;background:#1e5dd3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i3.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }] }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AvatarV2Component, isStandalone: true, selector: "lib-avatar-v2", inputs: { avatarList: "avatarList", type: "type" }, ngImport: i0, template: "<div class=\"vx-avatar-group \">\n\n <ng-container *ngFor=\"let eachAvatar of avatarList | slice:0:sliceCount\">\n <div class=\"vx-avatar md\">\n <img *ngIf=\"eachAvatar?.imagePath; else avatar\" [src]=\"imagePath + eachAvatar?.imagePath\"\n [alt]=\"eachAvatar?.shortName\" [appTooltip]=\"eaeachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\" />\n <ng-template #avatar>\n <span *ngIf=\"!eachAvatar?.avatar\" [appTooltip]=\"eachAvatar?.name\" [tooltipMandatory]=\"true\"\n class=\"blue\">{{ eachAvatar?.shortName\n }}</span>\n </ng-template>\n </div>\n\n </ng-container>\n <div *ngIf=\"showPopover \" appPopover (click)=\"users.popover()\" placement=\"left\" class=\"vx-avatar md multi-user\">\n <span class=\"user\">\n <i class=\"icons user-icons vx-fs-12\">&#xea35;</i>\n <span class=\"count vx-txt-white vx-d-flex vx-align-center vx-justify-center\">{{ avatarList?.length -\n popoverSliceCount\n }}</span>\n </span>\n </div>\n\n\n</div>\n\n<app-popover #users>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let user of avatarList | slice: popoverSliceCount\" appTooltip=\"{{ user?.name }}\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n <div class=\"avatar-card\">\n <div class=\"avatar\">\n <ng-container *ngIf=\"!user?.avatar\">{{\n user?.shortName\n }}</ng-container>\n <img *ngIf=\"user?.avatar\" [src]=\"user?.avatar\" alt=\"\" width=\"24\" height=\"24\" />\n </div>\n <span class=\"value\">{{ user?.name }}</span>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";.multi-user{background:#f9f9fa;border:2px solid #F2F2F5}.multi-user .user{background:transparent;position:relative;cursor:pointer}.multi-user .user .user-icons{color:#565a6f;position:absolute}.multi-user .user .count{background:#1e5dd3;border:2px solid #FFFFFF;border-radius:20px;min-width:1.125rem;height:1rem;position:absolute;top:unset;bottom:-.125rem;right:-10px;width:auto;padding:0 .125rem;font-size:9px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i3.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }] }); }
18
41
  }
19
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarV2Component, decorators: [{
20
43
  type: Component,
21
- args: [{ selector: 'lib-avatar-v2', standalone: true, imports: [CommonModule, PopoverModule], template: "<div class=\"vx-avatar md vx-d-flex vx-align-center\">\n\n <ng-container *ngFor=\"let eachAvatar of avatarList | slice:0:3\">\n <div class=\" shortName vx-p-3\">\n <img *ngIf=\"eachAvatar?.imagePath; else avatar\" [src]=\"imagePath + eachAvatar?.imagePath\"\n [alt]=\"eachAvatar?.shortName\" [appTooltip]=\"eaeachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\" />\n <ng-template #avatar>\n <span *ngIf=\"!eachAvatar?.avatar\" [appTooltip]=\"eachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ eachAvatar?.shortName\n }}</span>\n </ng-template>\n </div>\n\n </ng-container>\n\n <span *ngIf=\"avatarList?.length > 3\" appPopover (click)=\"users.popover()\" placement=\"left\">+{{ avatarList?.length-\n 1 }}</span>\n\n\n</div>\n\n<app-popover #users>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let user of avatarList | slice: 3\" appTooltip=\"{{ user?.name }}\" placement=\"bottom-left\"\n delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n <div class=\"avatar-card\">\n <div class=\"avatar\">\n <ng-container *ngIf=\"!user?.avatar\">{{\n user?.shortName\n }}</ng-container>\n <img *ngIf=\"user?.avatar\" [src]=\"user?.avatar\" alt=\"\" width=\"24\" height=\"24\" />\n </div>\n <span class=\"value\">{{ user?.name }}</span>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";.shortName{height:24px;width:24px!important;overflow:hidden;color:#fff;font-size:10px;border-radius:50%;text-transform:uppercase;background:#1e5dd3}\n"] }]
44
+ args: [{ selector: 'lib-avatar-v2', standalone: true, imports: [CommonModule, PopoverModule], template: "<div class=\"vx-avatar-group \">\n\n <ng-container *ngFor=\"let eachAvatar of avatarList | slice:0:sliceCount\">\n <div class=\"vx-avatar md\">\n <img *ngIf=\"eachAvatar?.imagePath; else avatar\" [src]=\"imagePath + eachAvatar?.imagePath\"\n [alt]=\"eachAvatar?.shortName\" [appTooltip]=\"eaeachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\" />\n <ng-template #avatar>\n <span *ngIf=\"!eachAvatar?.avatar\" [appTooltip]=\"eachAvatar?.name\" [tooltipMandatory]=\"true\"\n class=\"blue\">{{ eachAvatar?.shortName\n }}</span>\n </ng-template>\n </div>\n\n </ng-container>\n <div *ngIf=\"showPopover \" appPopover (click)=\"users.popover()\" placement=\"left\" class=\"vx-avatar md multi-user\">\n <span class=\"user\">\n <i class=\"icons user-icons vx-fs-12\">&#xea35;</i>\n <span class=\"count vx-txt-white vx-d-flex vx-align-center vx-justify-center\">{{ avatarList?.length -\n popoverSliceCount\n }}</span>\n </span>\n </div>\n\n\n</div>\n\n<app-popover #users>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let user of avatarList | slice: popoverSliceCount\" appTooltip=\"{{ user?.name }}\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n <div class=\"avatar-card\">\n <div class=\"avatar\">\n <ng-container *ngIf=\"!user?.avatar\">{{\n user?.shortName\n }}</ng-container>\n <img *ngIf=\"user?.avatar\" [src]=\"user?.avatar\" alt=\"\" width=\"24\" height=\"24\" />\n </div>\n <span class=\"value\">{{ user?.name }}</span>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";.multi-user{background:#f9f9fa;border:2px solid #F2F2F5}.multi-user .user{background:transparent;position:relative;cursor:pointer}.multi-user .user .user-icons{color:#565a6f;position:absolute}.multi-user .user .count{background:#1e5dd3;border:2px solid #FFFFFF;border-radius:20px;min-width:1.125rem;height:1rem;position:absolute;top:unset;bottom:-.125rem;right:-10px;width:auto;padding:0 .125rem;font-size:9px}\n"] }]
22
45
  }], ctorParameters: function () { return [{ type: i1.Configurations, decorators: [{
23
46
  type: Optional
24
47
  }] }]; }, propDecorators: { avatarList: [{
25
48
  type: Input
49
+ }], type: [{
50
+ type: Input
26
51
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3VpLWtpdC9hdmF0YXItdjIvYXZhdGFyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3VpLWtpdC9hdmF0YXItdjIvYXZhdGFyLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFVMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUk3QixZQUE0QixNQUF1QjtRQUgxQyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFJdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEdBQUcscUJBQXFCLENBQUM7SUFDL0UsQ0FBQzsrR0FSVyxpQkFBaUI7bUdBQWpCLGlCQUFpQiwrR0NaOUIsOHdEQXVDYyx5UkQvQkYsWUFBWSxvVEFBRSxhQUFhOzs0RkFJMUIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDOzswQkFRdEIsUUFBUTs0Q0FIaEIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hdmF0YXItdjInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQb3BvdmVyTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci12Mi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci12Mi5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclYyQ29tcG9uZW50IHtcbiBASW5wdXQoKSBhdmF0YXJMaXN0OiBhbnlbXSA9IFtdO1xuIGltYWdlUGF0aDogc3RyaW5nID0gJyc7XG4gZW52OiBhbnk7XG4gY29uc3RydWN0b3IoICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4pIHtcbiAgdGhpcy5lbnYgPSBjb25maWc/LmVudkNvbmZpZztcbiAgdGhpcy5pbWFnZVBhdGggPSB0aGlzLmVudj8uczNVcmwgKyB0aGlzLmVudj8uczNCdWNrZXQgKyAnL3Byb2ZpbGVfcGljL3RodW1iLyc7XG4gfVxufVxuIiwiPGRpdiBjbGFzcz1cInZ4LWF2YXRhciBtZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlYWNoQXZhdGFyIG9mIGF2YXRhckxpc3QgfCBzbGljZTowOjNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiBzaG9ydE5hbWUgdngtcC0zXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiZWFjaEF2YXRhcj8uaW1hZ2VQYXRoOyBlbHNlIGF2YXRhclwiIFtzcmNdPVwiaW1hZ2VQYXRoICsgZWFjaEF2YXRhcj8uaW1hZ2VQYXRoXCJcbiAgICAgICAgICAgICAgICBbYWx0XT1cImVhY2hBdmF0YXI/LnNob3J0TmFtZVwiIFthcHBUb29sdGlwXT1cImVhZWFjaEF2YXRhcj8ubmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYXZhdGFyPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWVhY2hBdmF0YXI/LmF2YXRhclwiIFthcHBUb29sdGlwXT1cImVhY2hBdmF0YXI/Lm5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57eyBlYWNoQXZhdGFyPy5zaG9ydE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHNwYW4gKm5nSWY9XCJhdmF0YXJMaXN0Py5sZW5ndGggPiAzXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlcnMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwibGVmdFwiPit7eyBhdmF0YXJMaXN0Py5sZW5ndGgtXG4gICAgICAgIDEgfX08L3NwYW4+XG5cblxuPC9kaXY+XG5cbjxhcHAtcG9wb3ZlciAjdXNlcnM+XG4gICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHVzZXIgb2YgYXZhdGFyTGlzdCB8IHNsaWNlOiAzXCIgYXBwVG9vbHRpcD1cInt7IHVzZXI/Lm5hbWUgfX1cIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXI/LmF2YXRhclwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uc2hvcnROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VyPy5hdmF0YXJcIiBbc3JjXT1cInVzZXI/LmF2YXRhclwiIGFsdD1cIlwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgdXNlcj8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L2FwcC1wb3BvdmVyPiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3VpLWtpdC9hdmF0YXItdjIvYXZhdGFyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3VpLWtpdC9hdmF0YXItdjIvYXZhdGFyLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFVMUQsTUFBTSxPQUFPLGlCQUFpQjtJQVE3QixZQUE0QixNQUF1QjtRQVAxQyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLFNBQUksR0FBcUMsY0FBYyxDQUFDO1FBQ2pFLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEdBQUcscUJBQXFCLENBQUM7SUFDL0UsQ0FBQztJQUVBLFFBQVE7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjthQUFNO1lBQ0wsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQzFCO1NBQ0Y7SUFDSCxDQUFDOytHQWhDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2SENaOUIsOC9EQTRDYywraEJEcENGLFlBQVksb1RBQUUsYUFBYTs7NEZBSTFCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzs7MEJBWXRCLFFBQVE7NENBUGhCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3B0aW9uYWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXZhdGFyLXYyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9wb3Zlck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXItdjIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXItdjIuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJWMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gQElucHV0KCkgYXZhdGFyTGlzdDogYW55W10gPSBbXTtcbiBASW5wdXQoKSB0eXBlOiAnU0lOR0xFX0FWQVRBUicgfCAnTVVMVElfQVZBVEFSJyA9ICdNVUxUSV9BVkFUQVInO1xuIGltYWdlUGF0aDogc3RyaW5nID0gJyc7XG4gZW52OiBhbnk7XG4gc2xpY2VDb3VudDogbnVtYmVyID0gMztcbiBwb3BvdmVyU2xpY2VDb3VudDogbnVtYmVyID0gMztcbiBzaG93UG9wb3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuIGNvbnN0cnVjdG9yKCAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuKSB7XG4gIHRoaXMuZW52ID0gY29uZmlnPy5lbnZDb25maWc7XG4gIHRoaXMuaW1hZ2VQYXRoID0gdGhpcy5lbnY/LnMzVXJsICsgdGhpcy5lbnY/LnMzQnVja2V0ICsgJy9wcm9maWxlX3BpYy90aHVtYi8nO1xuIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhdmF0YXJMaXN0Jyx0aGlzLmF2YXRhckxpc3QpO1xuICAgICAgdGhpcy5nZXRTbGljZUNvdW50KCk7XG4gIH1cblxuXG4gIGdldFNsaWNlQ291bnQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ1NJTkdMRV9BVkFUQVInICYmIHRoaXMuYXZhdGFyTGlzdD8ubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zbGljZUNvdW50ID0gMDtcbiAgICAgIHRoaXMucG9wb3ZlclNsaWNlQ291bnQgPSAwO1xuICAgICAgdGhpcy5zaG93UG9wb3ZlciA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKHRoaXMuYXZhdGFyTGlzdD8ubGVuZ3RoID4gMykge1xuICAgICAgICB0aGlzLnNob3dQb3BvdmVyID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInZ4LWF2YXRhci1ncm91cCBcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVhY2hBdmF0YXIgb2YgYXZhdGFyTGlzdCB8IHNsaWNlOjA6c2xpY2VDb3VudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtYXZhdGFyIG1kXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiZWFjaEF2YXRhcj8uaW1hZ2VQYXRoOyBlbHNlIGF2YXRhclwiIFtzcmNdPVwiaW1hZ2VQYXRoICsgZWFjaEF2YXRhcj8uaW1hZ2VQYXRoXCJcbiAgICAgICAgICAgICAgICBbYWx0XT1cImVhY2hBdmF0YXI/LnNob3J0TmFtZVwiIFthcHBUb29sdGlwXT1cImVhZWFjaEF2YXRhcj8ubmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYXZhdGFyPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWVhY2hBdmF0YXI/LmF2YXRhclwiIFthcHBUb29sdGlwXT1cImVhY2hBdmF0YXI/Lm5hbWVcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJibHVlXCI+e3sgZWFjaEF2YXRhcj8uc2hvcnROYW1lXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1BvcG92ZXIgXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlcnMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwibGVmdFwiIGNsYXNzPVwidngtYXZhdGFyIG1kIG11bHRpLXVzZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHVzZXItaWNvbnMgdngtZnMtMTJcIj4mI3hlYTM1OzwvaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj57eyBhdmF0YXJMaXN0Py5sZW5ndGggLVxuICAgICAgICAgICAgICAgIHBvcG92ZXJTbGljZUNvdW50XG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuXG48L2Rpdj5cblxuPGFwcC1wb3BvdmVyICN1c2Vycz5cbiAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdXNlciBvZiBhdmF0YXJMaXN0IHwgc2xpY2U6IHBvcG92ZXJTbGljZUNvdW50XCIgYXBwVG9vbHRpcD1cInt7IHVzZXI/Lm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXI/LmF2YXRhclwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uc2hvcnROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VyPy5hdmF0YXJcIiBbc3JjXT1cInVzZXI/LmF2YXRhclwiIGFsdD1cIlwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgdXNlcj8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L2FwcC1wb3BvdmVyPiJdfQ==