vcomply-workflow-engine 6.5.9 → 6.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +3 -5
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +5 -3
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -2
- package/esm2022/lib/workflow-services/responsibility.service.mjs +2 -2
- package/fesm2022/vcomply-workflow-engine.mjs +7 -8
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/interfaces/responsibilty.interface.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWx0eS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9pbnRlcmZhY2VzL3Jlc3BvbnNpYmlsdHkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRnJlcXVlbmN5IHtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXNzaWduZWUge1xuICB0eXBlOiAnYWxsJyB8ICdhbnknO1xuICB1c2VySWQ6IG51bWJlcltdO1xuICB1c2VyR3JvdXBJZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBSZXNwb25zaWJpbGl0eUNlbnRlciB7XG4gIHR5cGU6ICdhbnknIHwgJ2FsbCc7XG4gIGlkOiBudW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIFJldmlld2VyRnJlcXVlbmN5IHtcbiAgY29tcGxldGVCeTogbnVtYmVyO1xuICBlbmRBZnRlcjogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUmV2aWV3ZXIge1xuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnYW55JztcbiAgZnJlcXVlbmN5OiBSZXZpZXdlckZyZXF1ZW5jeTtcbiAgdXNlcklkOiBudW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIE92ZXJzZWVyR3JvdXAge1xuICB1c2VySWQ6IG51bWJlcltdO1xuICB1c2VyR3JvdXBJZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBPdmVyc2VlciB7XG4gIHN1Y2Nlc3M6IE92ZXJzZWVyR3JvdXA7XG4gIGZhaWw6IE92ZXJzZWVyR3JvdXA7XG59XG5cbmludGVyZmFjZSBDb2xsYWJvcmF0b3Ige1xuICB1c2VySWQ6IG51bWJlcltdO1xuICB1c2VyR3JvdXBJZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBFdmlkZW5jZUZvcm1hdCB7XG4gIHR5cGU6ICdsaW5rJyB8ICdmaWxlJyB8ICcnO1xuICBkYXRhOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIEV2aWRlbmNlIHtcbiAgcmVxdWlyZWQ6ICcwIHwgMSc7XG4gIGZvcm1hdDogRXZpZGVuY2VGb3JtYXQ7XG59XG5cbmludGVyZmFjZSBQcm9ncmFtIHtcbiAgaWQ6IG51bWJlcltdO1xuICB0YWdzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNpYmlsaXR5IHtcbiAgdGl0bGU6IHN0cmluZztcbiAga2V5OiBudW1iZXI7XG4gIHJpc2tDbGFzczogJ2xvdycgfCAnbG93X21lZGl1bScgfCAnbWVkaXVtX2hpZ2gnIHwgJ2hpZ2gnO1xuICBub3Rlczogc3RyaW5nO1xuICBvYmplY3RpdmU6IHN0cmluZztcbiAgZnJlcXVlbmN5OiBGcmVxdWVuY3k7XG4gIGFzc2lnbm9yOiBudW1iZXI7XG4gIGFzc2lnbmVlOiBBc3NpZ25lZTtcbiAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IFJlc3BvbnNpYmlsaXR5Q2VudGVyIHwgdW5kZWZpbmVkO1xuICByZXZpZXdlcjogUmV2aWV3ZXIgfCB1bmRlZmluZWQ7XG4gIG92ZXJzZWVyOiBPdmVyc2VlciB8IHVuZGVmaW5lZDtcbiAgZXZpZGVuY2U6IEV2aWRlbmNlO1xuICBwcm9ncmFtOiBQcm9ncmFtO1xuICBncmNPYmplY3RJZDogYW55W107XG4gIGFzc2Vzc21lbnRJZDogc3RyaW5nO1xuICBpZD86IG51bWJlcjtcbiAgY3VzdG9tRmllbGQ6IGFueVtdO1xufSJdfQ==
|
|
@@ -40,11 +40,9 @@ export class FloatingBarComponent {
|
|
|
40
40
|
getDisplayValue(element) {
|
|
41
41
|
return element?.[this.displayElementKey];
|
|
42
42
|
}
|
|
43
|
-
// Method to check if value is array
|
|
44
43
|
isArray(value) {
|
|
45
44
|
return Array.isArray(value);
|
|
46
45
|
}
|
|
47
|
-
// Method to log what's actually being rendered in the template
|
|
48
46
|
logRenderedValue(value) {
|
|
49
47
|
return value;
|
|
50
48
|
}
|
|
@@ -75,11 +73,11 @@ export class FloatingBarComponent {
|
|
|
75
73
|
this.workflowTypeChanged.emit(event);
|
|
76
74
|
}
|
|
77
75
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatingBarComponent, selector: "app-floating-bar", inputs: { selectedData: "selectedData", selectedGroups: "selectedGroups", displayElementKey: "displayElementKey", elementId: "elementId", singularText: "singularText", pluralText: "pluralText", showNextButton: "showNextButton", showFrequencyText: "showFrequencyText", showWorkflow: "showWorkflow", workflowText: "workflowText", currentFrequency: "currentFrequency", isDisabled: "isDisabled", workflowList: "workflowList", selectedWorkflow: "selectedWorkflow", workflowPlaceHolder: "workflowPlaceHolder", mode: "mode", defaultSelectedValue: ["defaultSelected", "defaultSelectedValue"], groupsEnabled: "groupsEnabled", isResponsibility: "isResponsibility", nonRemovableUsersList: "nonRemovableUsersList", removePosition: "removePosition" }, outputs: { closeEvent: "closeEvent", deleteEvent: "deleteEvent", closeList: "closeList", deleteGroupEvent: "deleteGroupEvent", workflowTypeChanged: "workflowTypeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"getDisplayValue(element)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ logRenderedValue(element[displayElementKey]) }}</span\n >\n <!-- Only render slice pipe for arrays, not strings -->\n <ng-container\n *ngIf=\"\n isArray(element[displayElementKey]) &&\n element[displayElementKey] &&\n element[displayElementKey].length > 0\n \"\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"logRenderedValue(lastItem)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ logRenderedValue(lastItem) }}\n </span>\n </ng-container>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\"></i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\"></i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\"></i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.DataTypePipe, name: "dataType" }] }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatingBarComponent, selector: "app-floating-bar", inputs: { selectedData: "selectedData", selectedGroups: "selectedGroups", displayElementKey: "displayElementKey", elementId: "elementId", singularText: "singularText", pluralText: "pluralText", showNextButton: "showNextButton", showFrequencyText: "showFrequencyText", showWorkflow: "showWorkflow", workflowText: "workflowText", currentFrequency: "currentFrequency", isDisabled: "isDisabled", workflowList: "workflowList", selectedWorkflow: "selectedWorkflow", workflowPlaceHolder: "workflowPlaceHolder", mode: "mode", defaultSelectedValue: ["defaultSelected", "defaultSelectedValue"], groupsEnabled: "groupsEnabled", isResponsibility: "isResponsibility", nonRemovableUsersList: "nonRemovableUsersList", removePosition: "removePosition" }, outputs: { closeEvent: "closeEvent", deleteEvent: "deleteEvent", closeList: "closeList", deleteGroupEvent: "deleteGroupEvent", workflowTypeChanged: "workflowTypeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"getDisplayValue(element)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ logRenderedValue(element[displayElementKey]) }}</span\n >\n <ng-container\n *ngIf=\"\n isArray(element[displayElementKey]) &&\n element[displayElementKey] &&\n element[displayElementKey].length > 0\n \"\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"logRenderedValue(lastItem)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ logRenderedValue(lastItem) }}\n </span>\n </ng-container>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\"></i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\"></i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\"></i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.DataTypePipe, name: "dataType" }] }); }
|
|
79
77
|
}
|
|
80
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingBarComponent, decorators: [{
|
|
81
79
|
type: Component,
|
|
82
|
-
args: [{ selector: 'app-floating-bar', template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"getDisplayValue(element)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ logRenderedValue(element[displayElementKey]) }}</span\n >\n <!-- Only render slice pipe for arrays, not strings -->\n <ng-container\n *ngIf=\"\n isArray(element[displayElementKey]) &&\n element[displayElementKey] &&\n element[displayElementKey].length > 0\n \"\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"logRenderedValue(lastItem)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ logRenderedValue(lastItem) }}\n </span>\n </ng-container>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\"></i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\"></i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\"></i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"] }]
|
|
80
|
+
args: [{ selector: 'app-floating-bar', template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"getDisplayValue(element)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ logRenderedValue(element[displayElementKey]) }}</span\n >\n <ng-container\n *ngIf=\"\n isArray(element[displayElementKey]) &&\n element[displayElementKey] &&\n element[displayElementKey].length > 0\n \"\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"logRenderedValue(lastItem)\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ logRenderedValue(lastItem) }}\n </span>\n </ng-container>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n ></i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\"></i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n ></i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\"></i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\"></i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"] }]
|
|
83
81
|
}], ctorParameters: function () { return []; }, propDecorators: { selectedData: [{
|
|
84
82
|
type: Input
|
|
85
83
|
}], selectedGroups: [{
|
|
@@ -134,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
134
132
|
}], workflowTypeChanged: [{
|
|
135
133
|
type: Output
|
|
136
134
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZmxvYXRpbmctYmFyL2Zsb2F0aW5nLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU92QixNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixJQUE4QixvQkFBb0IsQ0FBQyxLQUFVO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBV0Q7UUEvQlMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRztZQUN0QixZQUFZO1lBQ1osd0NBQXdDO1NBQ3pDLENBQUM7UUFHTyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ2pDLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBS2pCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVsQywwQkFBcUIsR0FBUSxFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELHdCQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLEtBQUksQ0FBQztJQUVoQixlQUFlLENBQUMsT0FBWTtRQUMxQixPQUFPLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsT0FBTyxDQUFDLEtBQVU7UUFDaEIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixJQUFJO1FBQ0YsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkMsWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxRTthQUFNO1lBQ0wsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELG1CQUFtQixDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELG9CQUFvQixDQUFDLEtBQVU7UUFDN0IsV0FBVztJQUNiLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFVO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FsRlUsb0JBQW9CO21HQUFwQixvQkFBb0IsNjlCQ2RqQyxrN1hBaVZBOzs0RkRuVWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFLbkIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFd0Isb0JBQW9CO3NCQUFqRCxLQUFLO3VCQUFDLGlCQUFpQjtnQkFHZixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZsb2F0aW5nLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0YTogYW55O1xuICBASW5wdXQoKSBzZWxlY3RlZEdyb3VwczogYW55O1xuICBASW5wdXQoKSBkaXNwbGF5RWxlbWVudEtleSA9ICcnO1xuICBASW5wdXQoKSBlbGVtZW50SWQ6IGFueSA9ICcnO1xuICBASW5wdXQoKSBzaW5ndWxhclRleHQgPSAnJztcbiAgQElucHV0KCkgcGx1cmFsVGV4dCA9ICcnO1xuICBASW5wdXQoKSBzaG93TmV4dEJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGcmVxdWVuY3lUZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dXb3JrZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3JrZmxvd1RleHQgPSAnJztcbiAgQElucHV0KCkgY3VycmVudEZyZXF1ZW5jeSA9ICcnO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdvcmtmbG93TGlzdCA9IFtcbiAgICAnU0VRVUVOVElBTCcsXG4gICAgJ0FOWSBSRVZJRVdFUiBDQU4gTUFSSyBUSElTIEFTIFJFVklFV0VEJyxcbiAgXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRXb3JrZmxvdzogYW55O1xuICBASW5wdXQoKSB3b3JrZmxvd1BsYWNlSG9sZGVyOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICdDUkVBVEUnO1xuICBkZWZhdWx0U2VsZWN0ZWQ6IGFueSA9IHt9O1xuICBASW5wdXQoJ2RlZmF1bHRTZWxlY3RlZCcpIHNldCBkZWZhdWx0U2VsZWN0ZWRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWQgPSB2YWx1ZSA/IHZhbHVlIDoge307XG4gIH1cbiAgQElucHV0KCkgZ3JvdXBzRW5hYmxlZDogYW55O1xuICBASW5wdXQoKSBpc1Jlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcmVtb3ZlUG9zaXRpb246IGFueTtcbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgd29ya2Zsb3dUeXBlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7fVxuICBcbiAgZ2V0RGlzcGxheVZhbHVlKGVsZW1lbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ/Llt0aGlzLmRpc3BsYXlFbGVtZW50S2V5XTtcbiAgfVxuICBcbiAgLy8gTWV0aG9kIHRvIGNoZWNrIGlmIHZhbHVlIGlzIGFycmF5XG4gIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgfVxuICBcbiAgLy8gTWV0aG9kIHRvIGxvZyB3aGF0J3MgYWN0dWFsbHkgYmVpbmcgcmVuZGVyZWQgaW4gdGhlIHRlbXBsYXRlXG4gIGxvZ1JlbmRlcmVkVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5leHQoKSB7XG4gICAgbGV0IHNlbGVjdGVkRGF0YTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZWN0ZWREYXRhID0geyB1c2VyczogdGhpcy5zZWxlY3RlZERhdGEsIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkRGF0YTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoc2VsZWN0ZWREYXRhKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRlbGV0ZUV2ZW50LmVtaXQoaW5kZXgpO1xuICB9XG4gIGRlbGV0ZVNlbGVjdGVkR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZGVsZXRlR3JvdXBFdmVudC5lbWl0KGluZGV4KTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlTGlzdC5lbWl0KCk7XG4gIH1cbiAgc2VsZWN0ZWRXb3JrZmxvd1R5cGUoZXZlbnQ6IGFueSkge1xuICAgIC8vIGRlYnVnZ2VyXG4gIH1cblxuICBzZWxlY3RlZFdvcmtmbG93Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLndvcmtmbG93VHlwZUNoYW5nZWQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1c2VyR3JvdXAtZmxvYXRpbmctYmFyXCI+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyR3JvdXAtZmxvYXRpbmctYmFyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHVzZXItZ3JvdXAtbGVmdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRGF0YS5sZW5ndGggPiAwICYmICFncm91cHNFbmFibGVkXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZERhdGE/LnNsaWNlKDAsIDEpOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudCAmJiAhaXNSZXNwb25zaWJpbGl0eVwiPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSkgJiZcbiAgICAgICAgICAgICAgICAgIHJlbW92ZVBvc2l0aW9uICE9ICdyaWdodCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzdGVwXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3cgPT0gJ1NFUVVFTlRJQUwnICYmIHNob3dXb3JrZmxvd1wiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGEubGVuZ3RoIDw9IDIgJiZcbiAgICAgICAgICAgICAgICAgIGkgPT0gc2VsZWN0ZWREYXRhLmxlbmd0aCAtIDEgJiZcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgID8gXCJGaW5hbFwiXG4gICAgICAgICAgICAgICAgICAgIDogaSArIDFcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfCBkYXRhVHlwZSkgIT09ICdvYmplY3QnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZ2V0RGlzcGxheVZhbHVlKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgbG9nUmVuZGVyZWRWYWx1ZShlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSkgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8IS0tIE9ubHkgcmVuZGVyIHNsaWNlIHBpcGUgZm9yIGFycmF5cywgbm90IHN0cmluZ3MgLS0+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgaXNBcnJheShlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSkgJiZcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldICYmXG4gICAgICAgICAgICAgICAgICBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XS5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXG4gICAgICAgICAgICAgICAgICAgICAgfCBzbGljZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XS5sZW5ndGggLSAxIGFzIGxhc3RJdGVtXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nUmVuZGVyZWRWYWx1ZShsYXN0SXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9nUmVuZGVyZWRWYWx1ZShsYXN0SXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTFcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSkgJiZcbiAgICAgICAgICAgICAgICAgIHJlbW92ZVBvc2l0aW9uID09ICdyaWdodCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAxIHx8IChpc1Jlc3BvbnNpYmlsaXR5ICYmIHNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgIFtjbGFzcy5ncmVlbkJnXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJ1c2VyUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXNSZXNwb25zaWJpbGl0eSA/IHNlbGVjdGVkRGF0YT8ubGVuZ3RoIDogc2VsZWN0ZWREYXRhPy5zbGljZSgxKT8ubGVuZ3RoIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgc2VsZWN0ZWREYXRhPy5sZW5ndGggPT09IDEgPyBzaW5ndWxhclRleHQgOiBwbHVyYWxUZXh0XG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxpIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChzZWxlY3RlZERhdGFbMF0pXCIgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIlxuICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7IHNlbGVjdGVkRGF0YVswXVtkaXNwbGF5RWxlbWVudEtleV0gfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWREYXRhWzBdW2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAoY2xpY2spPVwiVXNlcldpdGhGZWF0dXJlRmxhZ1BvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZERhdGE/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm5hbWUgdXNlckdyb3VwLW5hbWVcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwICYmIGdyb3Vwc0VuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyR3JvdXAtdGV4dFwiICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwiXCJcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlckdyb3VwLXRleHRcIiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+VXNlcnNcbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkR3JvdXAoc2VsZWN0ZWRHcm91cHNbMF0pXCJcbiAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICBhcHBUb29sdGlwPVwie3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgZ3JvdXBcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJncm91cFBvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZEdyb3Vwcy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiICpuZ0lmPVwic2VsZWN0ZWRHcm91cHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxID8gXCIgVXNlciBHcm91cHMgc2VsZWN0ZWQgXCIgOiBcIlwiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZyZXF1ZW5jeVRleHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgdngtbWwtMFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICA+WW91IGhhdmUgc2VsZWN0ZWRcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7IGN1cnJlbnRGcmVxdWVuY3kgfX08L3NwYW4+XG4gICAgICAgICAgICBmcmVxdWVuY3kuPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2VudGVyXCJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgbW9kZSA9PT0gJ0NSRUFURScpIHx8XG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgd29ya2Zsb3dMaXN0LmluY2x1ZGVzKCdST1VORC1ST0JJTicpKVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIHt7IHdvcmtmbG93VGV4dCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd1RleHQgPT0gJ0FwcHJvdmFsIFdvcmtmbG93J1wiXG4gICAgICAgICAgbGliUG9wb3ZlckhvdmVyXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiPlxuICAgICAgICAgICAgWW91IGNhbiBzZWxlY3QgZnJvbSB0aGUgZm9sbG93aW5nIHRocmVlIG9wdGlvbnM6PGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPlNlcXVlbnRpYWw6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd291bGQgYmUgc2VudCBmb3IgYXBwcm92YWxcbiAgICAgICAgICAgIG9uZSBhdCBhIHRpbWUgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYnkgeW91LjxiciAvPlxuICAgICAgICAgICAgPHN0cm9uZz5Sb3VuZC1yb2Jpbjo8L3N0cm9uZz4gVGhlIHBvbGljeSB3aWxsIGJlIHNlbnQgZm9yIGFwcHJvdmFsXG4gICAgICAgICAgICB0byBhbGwgYXBwcm92ZXJzIGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIsIGl0IGlzIG1hbmRhdG9yeSBmb3IgYWxsXG4gICAgICAgICAgICBhcHByb3ZlcnMgdG8gdGFrZSBhY3Rpb24uPGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPkFueSBPbmU6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd2lsbCBiZSBzZW50IGZvciBhcHByb3ZhbCB0b1xuICAgICAgICAgICAgYWxsIGFwcHJvdmVycyBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhbnlvbmUgb2YgdGhlIGFwcHJvdmVyIGFwcHJvdmVzXG4gICAgICAgICAgICB0aGUgcG9saWN5LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYXBwcm92ZWQuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wb3BvdmVyLWhvdmVyPlxuICAgICAgPGNzLXNlbGVjdFxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkV29ya2Zsb3dcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZFdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FwcHJvdmFsIFdvcmtGbG93IConXCJcbiAgICAgICAgW3NldE1heFdpZHRoXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIHdvcmtmbG93TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XG4gICAgICAgICAge3sgZGF0YSB9fVxuICAgICAgICA8L2NzLW9wdGlvbj5cbiAgICAgIDwvY3Mtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiBhcHBSaXBwbGUgY2xhc3M9XCJjYW5jZWxcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInNob3dOZXh0QnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICAgICAgYXBwUmlwcGxlXG4gICAgICA+XG4gICAgICAgIE5leHQgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWU7PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXBwLXBvcG92ZXIgI3VzZXJQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZERhdGE/LnNsaWNlKDEpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpICE9PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInN0ZXBcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3cgPT0gJ1NFUVVFTlRJQUwnICYmIHNob3dXb3JrZmxvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGkgPT0gc2VsZWN0ZWREYXRhLnNsaWNlKDEpLmxlbmd0aCAtIDEgPyBcIkZpbmFsXCIgOiBpICsgMiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAge3sgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cIihlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB8IGRhdGFUeXBlKSA9PT0gJ29iamVjdCdcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ/LmNhdGVnb3J5X2lkICYmXG4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZD8uY2F0ZWdvcnlfaWQgPT09IGVsZW1lbnQ/LmNhdGVnb3J5X2lkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBQUklNQVJZXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG48YXBwLXBvcG92ZXIgI1VzZXJXaXRoRmVhdHVyZUZsYWdQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzZWxlY3RlZERhdGEgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YVtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZGF0YSlcIj4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgPnt7IGRhdGFbZGlzcGxheUVsZW1lbnRLZXldIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2FwcC1wb3BvdmVyPlxuPGFwcC1wb3BvdmVyICNncm91cFBvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXRhIG9mIHNlbGVjdGVkR3JvdXBzIHwgc2xpY2UgOiAxXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cImRhdGFbJ2dyb3VwX25hbWUnXVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWRHcm91cChkYXRhKVwiPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+e3sgZGF0YVtcImdyb3VwX25hbWVcIl0gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZmxvYXRpbmctYmFyL2Zsb2F0aW5nLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU92QixNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixJQUE4QixvQkFBb0IsQ0FBQyxLQUFVO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBV0Q7UUEvQlMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRztZQUN0QixZQUFZO1lBQ1osd0NBQXdDO1NBQ3pDLENBQUM7UUFHTyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ2pDLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBS2pCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVsQywwQkFBcUIsR0FBUSxFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELHdCQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLEtBQUksQ0FBQztJQUVoQixlQUFlLENBQUMsT0FBWTtRQUMxQixPQUFPLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsSUFBSTtRQUNGLElBQUksWUFBWSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLFlBQVksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUU7YUFBTTtZQUNMLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLFdBQVc7SUFDYixDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBaEZVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDY5QkNkakMseTBYQWdWQTs7NEZEbFVhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRXdCLG9CQUFvQjtzQkFBakQsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBR2YsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mbG9hdGluZy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvYXRpbmctYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvYXRpbmctYmFyLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzZWxlY3RlZERhdGE6IGFueTtcbiAgQElucHV0KCkgc2VsZWN0ZWRHcm91cHM6IGFueTtcbiAgQElucHV0KCkgZGlzcGxheUVsZW1lbnRLZXkgPSAnJztcbiAgQElucHV0KCkgZWxlbWVudElkOiBhbnkgPSAnJztcbiAgQElucHV0KCkgc2luZ3VsYXJUZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHBsdXJhbFRleHQgPSAnJztcbiAgQElucHV0KCkgc2hvd05leHRCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RnJlcXVlbmN5VGV4dCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93V29ya2Zsb3cgPSBmYWxzZTtcbiAgQElucHV0KCkgd29ya2Zsb3dUZXh0ID0gJyc7XG4gIEBJbnB1dCgpIGN1cnJlbnRGcmVxdWVuY3kgPSAnJztcbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3JrZmxvd0xpc3QgPSBbXG4gICAgJ1NFUVVFTlRJQUwnLFxuICAgICdBTlkgUkVWSUVXRVIgQ0FOIE1BUksgVEhJUyBBUyBSRVZJRVdFRCcsXG4gIF07XG4gIEBJbnB1dCgpIHNlbGVjdGVkV29ya2Zsb3c6IGFueTtcbiAgQElucHV0KCkgd29ya2Zsb3dQbGFjZUhvbGRlcjogYW55O1xuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnQ1JFQVRFJztcbiAgZGVmYXVsdFNlbGVjdGVkOiBhbnkgPSB7fTtcbiAgQElucHV0KCdkZWZhdWx0U2VsZWN0ZWQnKSBzZXQgZGVmYXVsdFNlbGVjdGVkVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkID0gdmFsdWUgPyB2YWx1ZSA6IHt9O1xuICB9XG4gIEBJbnB1dCgpIGdyb3Vwc0VuYWJsZWQ6IGFueTtcbiAgQElucHV0KCkgaXNSZXNwb25zaWJpbGl0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG5vblJlbW92YWJsZVVzZXJzTGlzdDogYW55ID0gW107XG4gIEBJbnB1dCgpIHJlbW92ZVBvc2l0aW9uOiBhbnk7XG4gIEBPdXRwdXQoKSBjbG9zZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlTGlzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkZWxldGVHcm91cEV2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHdvcmtmbG93VHlwZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSBbXTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge31cbiAgXG4gIGdldERpc3BsYXlWYWx1ZShlbGVtZW50OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBlbGVtZW50Py5bdGhpcy5kaXNwbGF5RWxlbWVudEtleV07XG4gIH1cbiAgXG4gIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgfVxuXG4gIGxvZ1JlbmRlcmVkVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5leHQoKSB7XG4gICAgbGV0IHNlbGVjdGVkRGF0YTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZWN0ZWREYXRhID0geyB1c2VyczogdGhpcy5zZWxlY3RlZERhdGEsIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkRGF0YTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoc2VsZWN0ZWREYXRhKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRlbGV0ZUV2ZW50LmVtaXQoaW5kZXgpO1xuICB9XG4gIGRlbGV0ZVNlbGVjdGVkR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZGVsZXRlR3JvdXBFdmVudC5lbWl0KGluZGV4KTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlTGlzdC5lbWl0KCk7XG4gIH1cbiAgc2VsZWN0ZWRXb3JrZmxvd1R5cGUoZXZlbnQ6IGFueSkge1xuICAgIC8vIGRlYnVnZ2VyXG4gIH1cblxuICBzZWxlY3RlZFdvcmtmbG93Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLndvcmtmbG93VHlwZUNoYW5nZWQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1c2VyR3JvdXAtZmxvYXRpbmctYmFyXCI+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyR3JvdXAtZmxvYXRpbmctYmFyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHVzZXItZ3JvdXAtbGVmdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRGF0YS5sZW5ndGggPiAwICYmICFncm91cHNFbmFibGVkXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZERhdGE/LnNsaWNlKDAsIDEpOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudCAmJiAhaXNSZXNwb25zaWJpbGl0eVwiPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSkgJiZcbiAgICAgICAgICAgICAgICAgIHJlbW92ZVBvc2l0aW9uICE9ICdyaWdodCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzdGVwXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3cgPT0gJ1NFUVVFTlRJQUwnICYmIHNob3dXb3JrZmxvd1wiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGEubGVuZ3RoIDw9IDIgJiZcbiAgICAgICAgICAgICAgICAgIGkgPT0gc2VsZWN0ZWREYXRhLmxlbmd0aCAtIDEgJiZcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgID8gXCJGaW5hbFwiXG4gICAgICAgICAgICAgICAgICAgIDogaSArIDFcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfCBkYXRhVHlwZSkgIT09ICdvYmplY3QnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZ2V0RGlzcGxheVZhbHVlKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgbG9nUmVuZGVyZWRWYWx1ZShlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSkgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGlzQXJyYXkoZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0pICYmXG4gICAgICAgICAgICAgICAgICBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSAmJlxuICAgICAgICAgICAgICAgICAgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XVxuICAgICAgICAgICAgICAgICAgICB8IHNsaWNlXG4gICAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XS5sZW5ndGggLSAxIGFzIGxhc3RJdGVtXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dSZW5kZXJlZFZhbHVlKGxhc3RJdGVtKVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBsb2dSZW5kZXJlZFZhbHVlKGxhc3RJdGVtKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTFcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSkgJiZcbiAgICAgICAgICAgICAgICAgIHJlbW92ZVBvc2l0aW9uID09ICdyaWdodCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAxIHx8IChpc1Jlc3BvbnNpYmlsaXR5ICYmIHNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgIFtjbGFzcy5ncmVlbkJnXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJ1c2VyUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXNSZXNwb25zaWJpbGl0eSA/IHNlbGVjdGVkRGF0YT8ubGVuZ3RoIDogc2VsZWN0ZWREYXRhPy5zbGljZSgxKT8ubGVuZ3RoIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgc2VsZWN0ZWREYXRhPy5sZW5ndGggPT09IDEgPyBzaW5ndWxhclRleHQgOiBwbHVyYWxUZXh0XG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxpIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChzZWxlY3RlZERhdGFbMF0pXCIgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIlxuICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7IHNlbGVjdGVkRGF0YVswXVtkaXNwbGF5RWxlbWVudEtleV0gfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWREYXRhWzBdW2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAoY2xpY2spPVwiVXNlcldpdGhGZWF0dXJlRmxhZ1BvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZERhdGE/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm5hbWUgdXNlckdyb3VwLW5hbWVcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwICYmIGdyb3Vwc0VuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyR3JvdXAtdGV4dFwiICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwiXCJcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlckdyb3VwLXRleHRcIiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+VXNlcnNcbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkR3JvdXAoc2VsZWN0ZWRHcm91cHNbMF0pXCJcbiAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICBhcHBUb29sdGlwPVwie3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgZ3JvdXBcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJncm91cFBvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZEdyb3Vwcy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiICpuZ0lmPVwic2VsZWN0ZWRHcm91cHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxID8gXCIgVXNlciBHcm91cHMgc2VsZWN0ZWQgXCIgOiBcIlwiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZyZXF1ZW5jeVRleHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgdngtbWwtMFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICA+WW91IGhhdmUgc2VsZWN0ZWRcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7IGN1cnJlbnRGcmVxdWVuY3kgfX08L3NwYW4+XG4gICAgICAgICAgICBmcmVxdWVuY3kuPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2VudGVyXCJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgbW9kZSA9PT0gJ0NSRUFURScpIHx8XG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgd29ya2Zsb3dMaXN0LmluY2x1ZGVzKCdST1VORC1ST0JJTicpKVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIHt7IHdvcmtmbG93VGV4dCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd1RleHQgPT0gJ0FwcHJvdmFsIFdvcmtmbG93J1wiXG4gICAgICAgICAgbGliUG9wb3ZlckhvdmVyXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiPlxuICAgICAgICAgICAgWW91IGNhbiBzZWxlY3QgZnJvbSB0aGUgZm9sbG93aW5nIHRocmVlIG9wdGlvbnM6PGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPlNlcXVlbnRpYWw6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd291bGQgYmUgc2VudCBmb3IgYXBwcm92YWxcbiAgICAgICAgICAgIG9uZSBhdCBhIHRpbWUgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYnkgeW91LjxiciAvPlxuICAgICAgICAgICAgPHN0cm9uZz5Sb3VuZC1yb2Jpbjo8L3N0cm9uZz4gVGhlIHBvbGljeSB3aWxsIGJlIHNlbnQgZm9yIGFwcHJvdmFsXG4gICAgICAgICAgICB0byBhbGwgYXBwcm92ZXJzIGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIsIGl0IGlzIG1hbmRhdG9yeSBmb3IgYWxsXG4gICAgICAgICAgICBhcHByb3ZlcnMgdG8gdGFrZSBhY3Rpb24uPGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPkFueSBPbmU6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd2lsbCBiZSBzZW50IGZvciBhcHByb3ZhbCB0b1xuICAgICAgICAgICAgYWxsIGFwcHJvdmVycyBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhbnlvbmUgb2YgdGhlIGFwcHJvdmVyIGFwcHJvdmVzXG4gICAgICAgICAgICB0aGUgcG9saWN5LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYXBwcm92ZWQuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wb3BvdmVyLWhvdmVyPlxuICAgICAgPGNzLXNlbGVjdFxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkV29ya2Zsb3dcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZFdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FwcHJvdmFsIFdvcmtGbG93IConXCJcbiAgICAgICAgW3NldE1heFdpZHRoXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIHdvcmtmbG93TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XG4gICAgICAgICAge3sgZGF0YSB9fVxuICAgICAgICA8L2NzLW9wdGlvbj5cbiAgICAgIDwvY3Mtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiBhcHBSaXBwbGUgY2xhc3M9XCJjYW5jZWxcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInNob3dOZXh0QnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICAgICAgYXBwUmlwcGxlXG4gICAgICA+XG4gICAgICAgIE5leHQgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWU7PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXBwLXBvcG92ZXIgI3VzZXJQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZERhdGE/LnNsaWNlKDEpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpICE9PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInN0ZXBcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3cgPT0gJ1NFUVVFTlRJQUwnICYmIHNob3dXb3JrZmxvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGkgPT0gc2VsZWN0ZWREYXRhLnNsaWNlKDEpLmxlbmd0aCAtIDEgPyBcIkZpbmFsXCIgOiBpICsgMiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAge3sgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cIihlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB8IGRhdGFUeXBlKSA9PT0gJ29iamVjdCdcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ/LmNhdGVnb3J5X2lkICYmXG4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZD8uY2F0ZWdvcnlfaWQgPT09IGVsZW1lbnQ/LmNhdGVnb3J5X2lkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBQUklNQVJZXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG48YXBwLXBvcG92ZXIgI1VzZXJXaXRoRmVhdHVyZUZsYWdQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzZWxlY3RlZERhdGEgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YVtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZGF0YSlcIj4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgPnt7IGRhdGFbZGlzcGxheUVsZW1lbnRLZXldIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2FwcC1wb3BvdmVyPlxuPGFwcC1wb3BvdmVyICNncm91cFBvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXRhIG9mIHNlbGVjdGVkR3JvdXBzIHwgc2xpY2UgOiAxXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cImRhdGFbJ2dyb3VwX25hbWUnXVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWRHcm91cChkYXRhKVwiPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+e3sgZGF0YVtcImdyb3VwX25hbWVcIl0gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG4iXX0=
|