vcomply-workflow-engine 2.9.61 → 2.9.63
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/bundles/vcomply-workflow-engine.umd.js +79 -32
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.js +19 -4
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ngfactory.js +86 -32
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.js +7 -3
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.ngfactory.js +7 -7
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow.component.js +4 -3
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow.component.ngfactory.js +3 -3
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.js +2 -2
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ngfactory.js +2 -2
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.js +2 -2
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngfactory.js +2 -2
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.js +14 -14
- package/esm2015/lib/sharedComponents/link-program/restapi.service.js +8 -8
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +31 -4
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +261 -296
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +79 -32
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +3 -0
- package/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.d.ts +1 -0
- package/lib/sharedComponents/approval-workflow/approval-workflow.component.d.ts +1 -0
- package/lib/sharedComponents/link-program/restapi.service.d.ts +1 -1
- package/lib/workflow-policy/workflow-policy.component.d.ts +4 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
- package/lib/ui-kit/directive/directive.module.ts +0 -17
- package/lib/ui-kit/directive/stop-propagation.directive.spec.ts +0 -8
- package/lib/ui-kit/directive/stop-propagation.directive.ts +0 -15
|
@@ -60,6 +60,18 @@ export class ApprovalCreateFormComponent {
|
|
|
60
60
|
this.selectedCategoryId = category.map((cat) => cat.item_id);
|
|
61
61
|
console.log('this.selectedCategoryId', this.selectedCategoryId);
|
|
62
62
|
}
|
|
63
|
+
saveCategoryList(event) {
|
|
64
|
+
this.selectedCat = event;
|
|
65
|
+
this.filterSelectedCategory(event);
|
|
66
|
+
this.enablePolicyCategory = false;
|
|
67
|
+
console.log('category list saveCategoryList', event);
|
|
68
|
+
console.log('category selected', event);
|
|
69
|
+
}
|
|
70
|
+
filterSelectedCategory(selectedCategory) {
|
|
71
|
+
this.filteredCategory = this.selectedCategory.filter((category) => selectedCategory.includes(category._id));
|
|
72
|
+
this.getCategoryId(this.filteredCategory);
|
|
73
|
+
console.log('filteredCategory', this.filteredCategory);
|
|
74
|
+
}
|
|
63
75
|
removeCategory(event) {
|
|
64
76
|
var _a;
|
|
65
77
|
console.log('this.filteredCategory 1', this.filteredCategory);
|
|
@@ -67,6 +79,10 @@ export class ApprovalCreateFormComponent {
|
|
|
67
79
|
(_a = this.filteredCategory) === null || _a === void 0 ? void 0 : _a.splice(categoryIndex, 1);
|
|
68
80
|
console.log('this.filteredCategory 2', this.filteredCategory);
|
|
69
81
|
}
|
|
82
|
+
closeCategoryList() {
|
|
83
|
+
console.log('close category list', this.createDescription);
|
|
84
|
+
this.enablePolicyCategory = false;
|
|
85
|
+
}
|
|
70
86
|
enableCategory(event) {
|
|
71
87
|
this.enablePolicyCategory = event;
|
|
72
88
|
console.log('selectedCat', this.selectedCat);
|
|
@@ -144,11 +160,10 @@ export class ApprovalCreateFormComponent {
|
|
|
144
160
|
this.generatePayload();
|
|
145
161
|
}
|
|
146
162
|
generatePayload() {
|
|
147
|
-
var _a;
|
|
148
163
|
const payload = {
|
|
149
164
|
workflow_module: 'POLICY',
|
|
150
165
|
workflow_name: this.workflowName,
|
|
151
|
-
category_id:
|
|
166
|
+
category_id: this.selectedCategoryId,
|
|
152
167
|
approval_workflow: this.approvalWorkflows,
|
|
153
168
|
created_by: this.authService.getMemberId(),
|
|
154
169
|
organisation_id: this.authService.getOrganizationId(),
|
|
@@ -199,7 +214,7 @@ export class ApprovalCreateFormComponent {
|
|
|
199
214
|
ApprovalCreateFormComponent.decorators = [
|
|
200
215
|
{ type: Component, args: [{
|
|
201
216
|
selector: 'app-approval-create-form',
|
|
202
|
-
template: "<div class=\"approval-workflow-dialog\">\r\n <div\r\n class=\"approval-workflow-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <button (click)=\"closeForm()\" class=\"back-btn vx-p-0 vx-m-0\">\r\n <i class=\"icons vx-mr-1\"></i></button\r\n >Select Approval Workflow\r\n </div>\r\n </div>\r\n <div class=\"approval-workflow-dialog-body\">\r\n <app-no-data\r\n *ngIf=\"!approverWorkFlowList.length && !enableApprovalCreate\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval-workflow.svg'\r\n \"\r\n [noDataText]=\"\r\n 'You did not set any approval workflow.<br>Click on the <strong>Create An Approval Workflow</strong> button to begin.'\r\n \"\r\n [noDataButton]=\"'CREATE AN APPROVAL WORKFLOW'\"\r\n [button]=\"'approval'\"\r\n (buttonAction)=\"createApprovalAction($event)\"\r\n ></app-no-data>\r\n\r\n <div\r\n *ngIf=\"enableApprovalCreate || enableCreateForm\"\r\n class=\"approval-workflow-dialog-body-inner vx-d-flex vx-align-center vx-justify-center\"\r\n >\r\n <div class=\"approval-workflow-form\">\r\n <!-- Workflow Name -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n WORKFLOW NAME <span class=\"required vx-fs-14 vx-fw-500\">*</span>\r\n </div>\r\n <input\r\n class=\"textField\"\r\n type=\"text\"\r\n [(ngModel)]=\"workflowName\"\r\n placeholder=\"Name of the approval workflow\"\r\n />\r\n <div class=\"vx-mt-2\">\r\n <marx-editor\r\n [editorConfig]=\"description\"\r\n [(ngModel)]=\"createDescription\"\r\n ></marx-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Category -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n SELECT POLICY CATEGORY\r\n </div>\r\n\r\n <div\r\n *ngIf=\"selectedCategory?.length > 0\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let category of selectedCategory;\r\n let catIndex = index\r\n \"\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"category?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ category?.item_name }}</span\r\n >\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Approval Workflow -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n APPROVERS & APPROVAL WORKFLOW\r\n <span class=\"required vx-fs-14 vx-fw-500\">*</span>\r\n </div>\r\n <div\r\n *ngIf=\"approvalWorkflows?.length === 0\"\r\n (click)=\"addLevelsClicked(true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div\r\n class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n Select approvers and select the order of approval\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"approvalWorkflows?.length > 0\">\r\n <div\r\n *ngFor=\"\r\n let approvalWorkflow of approvalWorkflows;\r\n let i = index\r\n \"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"approvalWorkflow?.alias_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ approvalWorkflow?.alias_name }}\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n {{ approvalWorkflow?.type }}\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2 vx-ml-2\"\r\n >\r\n <i\r\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1 vx-ml-1\"\r\n ></i\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n 1\r\n </div>\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ approvalWorkflow?.approvers[0]?.member_name }}</span\r\n >\r\n <button\r\n *ngIf=\"approvalWorkflow?.approvers?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ approvalWorkflow?.approvers?.length - 1 }}\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let approver of approvalWorkflow?.approvers\r\n | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"approver?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n <span\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >Final</span\r\n >\r\n {{ approver?.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"editApproval(approvalWorkflow, i)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n (click)=\"deleteLevel(i)\"\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <button\r\n *ngIf=\"approvalWorkflows?.length > 0\"\r\n (click)=\"addLevelsClicked(true)\"\r\n class=\"addMoreBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-1\"\r\n >\r\n + ADD MORE LEVELS\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <vui-floating-bar\r\n *ngIf=\"enableApprovalCreate || enableCreateForm\"\r\n [nextDisabled]=\"\r\n workflowName?.trim() === '' || approvalWorkflows?.length === 0\r\n \"\r\n (closeList)=\"closeCreateForm()\"\r\n (closeEvent)=\"nextClick()\"\r\n ></vui-floating-bar>\r\n </div>\r\n</div>\r\n\r\n<!-- [selectedItems]=\"policyForm.selectedCategories\" -->\r\n\r\n<app-select-approvers\r\n *ngIf=\"enableApprovalLevel\"\r\n [allApprovers]=\"allApprovers\"\r\n (closeSelectApprover)=\"closeSelectApprover()\"\r\n (selectedApprover)=\"selectedApprover($event)\"\r\n [levels]=\"levels\"\r\n [editApprovalData]=\"editApprovalData\"\r\n></app-select-approvers>\r\n",
|
|
217
|
+
template: "<div class=\"approval-workflow-dialog\">\r\n <div\r\n class=\"approval-workflow-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <button (click)=\"closeForm()\" class=\"back-btn vx-p-0 vx-m-0\">\r\n <i class=\"icons vx-mr-1\"></i></button\r\n >Select Approval Workflow\r\n </div>\r\n </div>\r\n <div class=\"approval-workflow-dialog-body\">\r\n <app-no-data\r\n *ngIf=\"!approverWorkFlowList.length && !enableApprovalCreate\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval-workflow.svg'\r\n \"\r\n [noDataText]=\"\r\n 'You did not set any approval workflow.<br>Click on the <strong>Create An Approval Workflow</strong> button to begin.'\r\n \"\r\n [noDataButton]=\"'CREATE AN APPROVAL WORKFLOW'\"\r\n [button]=\"'approval'\"\r\n (buttonAction)=\"createApprovalAction($event)\"\r\n ></app-no-data>\r\n\r\n <div\r\n *ngIf=\"enableApprovalCreate || enableCreateForm\"\r\n class=\"approval-workflow-dialog-body-inner vx-d-flex vx-align-center vx-justify-center\"\r\n >\r\n <div class=\"approval-workflow-form\">\r\n <!-- Workflow Name -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n WORKFLOW NAME <span class=\"required vx-fs-14 vx-fw-500\">*</span>\r\n </div>\r\n <input\r\n class=\"textField\"\r\n type=\"text\"\r\n [(ngModel)]=\"workflowName\"\r\n placeholder=\"Name of the approval workflow\"\r\n />\r\n <div class=\"vx-mt-2\">\r\n <marx-editor\r\n [editorConfig]=\"description\"\r\n [(ngModel)]=\"createDescription\"\r\n ></marx-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Policy Category -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n SELECT POLICY CATEGORY\r\n <span class=\"required vx-fs-14 vx-fw-500\">*</span>\r\n </div>\r\n <div\r\n *ngIf=\"filteredCategory?.length === 0\"\r\n (click)=\"enableCategory(true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div\r\n class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n Select the policy category that this approval<br />workflow\r\n applies to\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"filteredCategory?.length > 0\"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let category of filteredCategory | slice : 0 : 1;\r\n let catIndex = index\r\n \"\r\n >\r\n <i\r\n (click)=\"removeCategory(category)\"\r\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1 vx-ml-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"category?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ category?.item_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n *ngIf=\"filteredCategory?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"policyOwnerPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ filteredCategory?.length - 1 }}\r\n </button>\r\n </div>\r\n <app-popover #policyOwnerPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let category of filteredCategory | slice : 1\">\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"category?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i (click)=\"removeCategory(category)\" class=\"icons\"\r\n ></i\r\n >\r\n {{ category?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <button\r\n filteredCategory\r\n (click)=\"enableCategory(true)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Approval Workflow -->\r\n <div class=\"approval-workflow-form-row vx-mb-5\">\r\n <div class=\"form-left\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg\"\r\n />\r\n </div>\r\n <div class=\"form-right\">\r\n <div\r\n class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\r\n >\r\n APPROVERS & APPROVAL WORKFLOW\r\n <span class=\"required vx-fs-14 vx-fw-500\">*</span>\r\n </div>\r\n <div\r\n *ngIf=\"approvalWorkflows?.length === 0\"\r\n (click)=\"addLevelsClicked(true)\"\r\n class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\r\n [class.disabled]=\"false\"\r\n >\r\n <div\r\n class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\r\n >\r\n Select approvers and select the order of approval\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"approvalWorkflows?.length > 0\">\r\n <div\r\n *ngFor=\"\r\n let approvalWorkflow of approvalWorkflows;\r\n let i = index\r\n \"\r\n class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\r\n >\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <div class=\"level-left vx-d-flex vx-align-center\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\r\n [appTooltip]=\"approvalWorkflow?.alias_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ approvalWorkflow?.alias_name }}\r\n </div>\r\n <div\r\n class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\r\n >\r\n {{ approvalWorkflow?.type }}\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2 vx-ml-2\"\r\n >\r\n <i\r\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1 vx-ml-1\"\r\n ></i\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n 1\r\n </div>\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ approvalWorkflow?.approvers[0]?.member_name }}</span\r\n >\r\n <button\r\n *ngIf=\"approvalWorkflow?.approvers?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"workflowPopover.popover()\"\r\n placement=\"right\"\r\n >\r\n + {{ approvalWorkflow?.approvers?.length - 1 }}\r\n </button>\r\n </div>\r\n <app-popover #workflowPopover [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let approver of approvalWorkflow?.approvers\r\n | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span\r\n class=\"value\"\r\n [appTooltip]=\"approver?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n <i class=\"icons\"></i>\r\n <span\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >Final</span\r\n >\r\n {{ approver?.member_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"editApproval(approvalWorkflow, i)\"\r\n class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> EDIT\r\n </button>\r\n <button\r\n (click)=\"deleteLevel(i)\"\r\n class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <button\r\n *ngIf=\"approvalWorkflows?.length > 0\"\r\n (click)=\"addLevelsClicked(true)\"\r\n class=\"addMoreBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-1\"\r\n >\r\n + ADD MORE LEVELS\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <vui-floating-bar\r\n *ngIf=\"enableApprovalCreate || enableCreateForm\"\r\n [nextDisabled]=\"\r\n workflowName?.trim() === '' ||\r\n approvalWorkflows?.length === 0 ||\r\n filteredCategory?.length === 0\r\n \"\r\n (closeList)=\"closeCreateForm()\"\r\n (closeEvent)=\"nextClick()\"\r\n ></vui-floating-bar>\r\n </div>\r\n</div>\r\n\r\n<!-- [selectedItems]=\"policyForm.selectedCategories\" -->\r\n\r\n<app-select-approvers\r\n *ngIf=\"enableApprovalLevel\"\r\n [allApprovers]=\"allApprovers\"\r\n (closeSelectApprover)=\"closeSelectApprover()\"\r\n (selectedApprover)=\"selectedApprover($event)\"\r\n [levels]=\"levels\"\r\n [editApprovalData]=\"editApprovalData\"\r\n></app-select-approvers>\r\n\r\n<app-checkbox-list\r\n *ngIf=\"enablePolicyCategory\"\r\n [config]=\"categoryConfig\"\r\n [twoColumn]=\"false\"\r\n [itemsList]=\"selectedCategory\"\r\n [identifierKey]=\"'_id'\"\r\n [displayKey]=\"'item_name'\"\r\n [tooltipKey]=\"'item_name'\"\r\n (saveList)=\"saveCategoryList($event)\"\r\n (closeList)=\"closeCategoryList()\"\r\n [selectedItems]=\"filteredCategory\"\r\n>\r\n</app-checkbox-list>\r\n",
|
|
203
218
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .approval-workflow-dialog{position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .approval-workflow-dialog:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .approval-workflow-dialog-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .approval-workflow-dialog-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .approval-workflow-dialog-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .approval-workflow-dialog-body-inner{height:calc(100vh - 10.75rem);overflow:hidden;overflow-y:auto;margin-bottom:1rem;padding-right:.5rem;width:calc(100% + .5rem)}::ng-deep .approval-workflow-dialog-body-inner::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .approval-workflow-dialog-body-inner::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .approval-workflow-dialog-body-inner::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form{width:30.75rem;max-height:calc(100vh - 10.75rem)}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row{position:relative}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row .form-left{position:absolute;top:30px;left:0}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row .form-left img{width:2.5rem;height:2.5rem}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row .form-right{padding-left:3.75rem}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row .form-right .label-heading .required{color:#eb2424;position:relative;top:-.125rem}::ng-deep .approval-workflow-dialog-body-inner .approval-workflow-form-row .form-right button.addMoreBtn{background:transparent;border-radius:0;border:none}::ng-deep .approval-workflow-dialog-body vui-floating-bar .reviewer-floating-bar{padding:0!important}\n"]
|
|
204
219
|
},] }
|
|
205
220
|
];
|
|
@@ -216,4 +231,4 @@ ApprovalCreateFormComponent.propDecorators = {
|
|
|
216
231
|
selectedCategory: [{ type: Input }],
|
|
217
232
|
saveApprovalWorkflow: [{ type: Output }]
|
|
218
233
|
};
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC1jcmVhdGUtZm9ybS9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQU8xRSxNQUFNLE9BQU8sMkJBQTJCO0lBa0N0QyxZQUNVLFdBQXdCLEVBQ3hCLGFBQTRCO1FBRDVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkN0Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsMEJBQXFCLEdBQVUsRUFBRSxDQUFDO1FBQ2xDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUM5QixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0IsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixtQkFBYyxHQUFHO1lBQ2YsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixvQkFBb0IsRUFBRSxtQkFBbUI7WUFDekMsa0JBQWtCLEVBQUUscUJBQXFCO1lBQ3pDLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxhQUFhLEVBQUUs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LE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxNQUFNLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxHQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7WUF4UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLCtyV0FBb0Q7O2FBRXJEOzs7WUFQUSxXQUFXO1lBQ1gsYUFBYTs7O21CQWdDbkIsS0FBSzs4QkFDTCxLQUFLO21DQUNMLEtBQUs7K0JBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7bUNBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAndmNvbXBseS1lZGl0b3InO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hcHByb3ZhbC1jcmVhdGUtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcHJvdmFsLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwcm92YWxDcmVhdGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBlbmFibGVBcHByb3ZhbENyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVuYWJsZUFwcHJvdmFsTGV2ZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVQb2xpY3lDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdvcmtmbG93TmFtZTogc3RyaW5nID0gJyc7XHJcbiAgc2VsZWN0QXBwcm92YWxQYXlsb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGNyZWF0ZUFwcHJvdmFsUGF5bG9hZDogYW55W10gPSBbXTtcclxuICBhcHByb3ZhbFdvcmtmbG93czogYW55W10gPSBbXTtcclxuICBmaWx0ZXJlZENhdGVnb3J5OiBhbnlbXSA9IFtdO1xyXG4gIGxldmVsczogbnVtYmVyID0gMTtcclxuICBjYXRlZ29yeUNvbmZpZyA9IHtcclxuICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgQ2F0ZWdvcnknLFxyXG4gICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdDYXRlZ29yeSBzZWxlY3RlZCcsXHJcbiAgICBmbG9hdGluZ1RleHRQbHVyYWw6ICdDYXRlZ29yaWVzIHNlbGVjdGVkJyxcclxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIENhdGVnb3J5JyxcclxuICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgd29ya2Zsb3c6ICdwb2xpY3knLFxyXG4gIH07XHJcbiAgc2VsZWN0ZWRDYXQ6IGFueVtdID0gW107XHJcbiAgZWRpdEFwcHJvdmFsRGF0YTogYW55W10gPSBbXTtcclxuICBlZGl0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIGNyZWF0ZURlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICBzZWxlY3RlZENhdGVnb3J5SWQ6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIG1vZGU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgYXBwcm92ZXJEZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgYXBwcm92ZXJXb3JrRmxvd0xpc3QhOiBhbnk7XHJcbiAgQElucHV0KCkgZW5hYmxlQ3JlYXRlRm9ybSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWxsQXBwcm92ZXJzITogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnkhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlQXBwcm92YWxXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdBZGQgYSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBwb2xpY3knLFxyXG4gIH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICd3b3JrZmxvd05hbWUgeHh5eScsXHJcbiAgICAgIHRoaXMud29ya2Zsb3dOYW1lLFxyXG4gICAgICB0aGlzLmFwcHJvdmVyRGV0YWlscyxcclxuICAgICAgdGhpcy5tb2RlXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coJ2FwcHJvdmFsV29ya2Zsb3dzIHRvIGRpc3BsYXkgb24gaW5pdCcsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MpO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUFwcHJvdmVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVBcHByb3ZhbEFjdGlvbihldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnY3JlYXRlQXBwcm92YWxBY3Rpb24nLCBldmVudCk7XHJcbiAgICBpZiAoZXZlbnQudG9Mb3dlckNhc2UoKSA9PT0gJ2FwcHJvdmFsJykge1xyXG4gICAgICB0aGlzLmVuYWJsZUFwcHJvdmFsQ3JlYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZExldmVsc0NsaWNrZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmFibGVBcHByb3ZhbExldmVsID0gZXZlbnQ7XHJcbiAgICBpZiAoZXZlbnQpIHRoaXMubGV2ZWxzKys7XHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeUlkKGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkID0gY2F0ZWdvcnkubWFwKChjYXQ6IGFueSkgPT4gY2F0Lml0ZW1faWQpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkJywgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2F0ZWdvcnkoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZmlsdGVyZWRDYXRlZ29yeSAxJywgdGhpcy5maWx0ZXJlZENhdGVnb3J5KTtcclxuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkuZmluZEluZGV4KFxyXG4gICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnk/Lml0ZW1faWQgPT09IGV2ZW50Py5pdGVtX2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5Py5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5maWx0ZXJlZENhdGVnb3J5IDInLCB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgZW5hYmxlQ2F0ZWdvcnkoZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZW5hYmxlUG9saWN5Q2F0ZWdvcnkgPSBldmVudDtcclxuICAgIGNvbnNvbGUubG9nKCdzZWxlY3RlZENhdCcsIHRoaXMuc2VsZWN0ZWRDYXQpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTZWxlY3RBcHByb3ZlcigpIHtcclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRBcHByb3ZlcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdEFwcHJvdmFsUGF5bG9hZCA9IGV2ZW50O1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICdjbG9zZSBzZWxlY3RlZCcsXHJcbiAgICAgIHRoaXMuc2VsZWN0QXBwcm92YWxQYXlsb2FkLFxyXG4gICAgICB0aGlzLmVkaXRJbmRleCxcclxuICAgICAgdGhpcy5lZGl0QXBwcm92YWxEYXRhXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coJ2FwcHJvdmFsV29ya2Zsb3dzIHNlbGVjdGVkQXBwcm92ZXInLCB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzKTtcclxuICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8uc3BsaWNlKHRoaXMuZWRpdEluZGV4LCAxKTtcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8uc3BsaWNlKHRoaXMuZWRpdEluZGV4LCAwLCBldmVudFswXSk7XHJcbiAgICAgIHRoaXMuZWRpdEluZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMuZWRpdEFwcHJvdmFsRGF0YSA9IFtdO1xyXG4gICAgICBjb25zb2xlLmxvZygnIGhpIGluIGlmJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGkgaW4gZWxzZScpO1xyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLnB1c2goZXZlbnRbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTGV2ZWwoaW5kZXg6IGFueSkge1xyXG4gICAgLy8gQXBwcm92ZXIgTGV2ZWwgZGVsZXRlXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5hcHByb3ZhbFdvcmtmbG93cycsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MsIGluZGV4KTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAndGhpcy5hcHByb3ZhbFdvcmtmbG93cyBhZnRlciBzcGxpY2UnLFxyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLFxyXG4gICAgICBpbmRleFxyXG4gICAgKTtcclxuICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydsZXZlbDEnXSA9PT1cclxuICAgICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzW2luZGV4XVsnYWxpYXNfbmFtZSddXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydhbGlhc19uYW1lJ10gPSBgTGV2ZWwgJHtpICsgMX1gO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydsZXZlbDEnXSA9IGBMZXZlbCAke2kgKyAxfWA7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5hcHByb3ZhbFdvcmtmbG93cyBhZnRlciBkZWxldGUnLCB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzKTtcclxuICAgIC8vIGRlbGV0ZSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzW2BsZXZlbCR7aSArIDF9YF07XHJcbiAgICAvLyBjb25zdCBuZXdPYmo6IGFueSA9IHt9O1xyXG4gICAgLy8gT2JqZWN0LmtleXModGhpcy5hcHByb3ZhbFdvcmtmbG93cykuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHsgLy8gUmVuYW1pbmcgdGhlIGtleXMgb2YgdGhlIG9iamVjdCBpbiBzZXF1ZW50aWFsIG9yZGVyXHJcbiAgICAvLyAgICAgY29uc3Qga2V5ID0gaXRlbS5zdWJzdHJpbmcoMCwgaXRlbS5sYXN0SW5kZXhPZignbCcpICsgMSkuY29uY2F0KGAke2luZGV4ICsgMX1gKTtcclxuICAgIC8vICAgICBuZXdPYmpba2V5XSA9IHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaXRlbV07XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSBPYmplY3QuYXNzaWduKHt9LCBuZXdPYmopO1xyXG4gICAgLy8gdGhpcy5sZXZlbHMtLTtcclxuICAgIC8vIHRoaXMuY2hlY2tMZXZlbCgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tMZXZlbCgpIHtcclxuICAgIGlmICh0aGlzLmxldmVscyA9PT0gMCkge1xyXG4gICAgICB0aGlzLmxldmVscyA9IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlZGl0QXBwcm92YWwoYXBwcm92YWw6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5lZGl0QXBwcm92YWxEYXRhID0gW2FwcHJvdmFsXTtcclxuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmVuYWJsZUFwcHJvdmFsTGV2ZWwgPSB0cnVlO1xyXG4gICAgY29uc29sZS5sb2coJ2FwcHJvdmFsIHdvcmtmbG93ICcsIHRoaXMuZWRpdEFwcHJvdmFsRGF0YSwgdGhpcy5lZGl0SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDcmVhdGVGb3JtKCkge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuYXBwcm92YWxXb3JrZmxvd3Mgb24gbmV4dCBjbGljaycsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MpO1xyXG4gIH1cclxuXHJcbiAgbmV4dENsaWNrKCkge1xyXG4gICAgdGhpcy5yZW1vdmVNZW1iZXJOYW1lS2V5KCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZW1iZXJOYW1lS2V5KCkge1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cyA9IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MubWFwKFxyXG4gICAgICAoe1xyXG4gICAgICAgIGFwcHJvdmVycyxcclxuICAgICAgICAuLi5yZXN0XHJcbiAgICAgIH06IHtcclxuICAgICAgICBhcHByb3ZlcnM6IEFycmF5PHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgfSkgPT4gKHtcclxuICAgICAgICAuLi5yZXN0LFxyXG4gICAgICAgIGFwcHJvdmVyczogYXBwcm92ZXJzLm1hcChcclxuICAgICAgICAgICh7IG1lbWJlcl9uYW1lLCAuLi5yZXN0IH06IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+ICh7IC4uLnJlc3QgfSlcclxuICAgICAgICApLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAndGhpcy5hcHByb3ZhbFdvcmtmbG93cyByZW1vdmVNZW1iZXJOYW1lS2V5JyxcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1xyXG4gICAgKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYXlsb2FkKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICB3b3JrZmxvd19tb2R1bGU6ICdQT0xJQ1knLFxyXG4gICAgICB3b3JrZmxvd19uYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcclxuICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVswXT8uaXRlbV9pZCxcclxuICAgICAgYXBwcm92YWxfd29ya2Zsb3c6IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MsXHJcbiAgICAgIGNyZWF0ZWRfYnk6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKSxcclxuICAgICAgb3JnYW5pc2F0aW9uX2lkOiB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCksXHJcbiAgICAgIGRlbGV0ZV9mbGFnOiAwLFxyXG4gICAgICBJc19hcHByb3ZhbDogMSxcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5fZWRpdFdvcmtmbG93KHBheWxvYWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jcmVhdGVOZXdXb3JrZmxvdyhwYXlsb2FkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZU5ld1dvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlLmNyZWF0ZUFwcHJvdmFsV29ya2Zsb3cocGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KHRydWUpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdwb2xpY3kgY3JlYXRlJywgcmVzKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIF9lZGl0V29ya2Zsb3cocGF5bG9hZDogYW55KSB7XHJcbiAgICB0aGlzLnBvbGljeVNlcnZpY2VcclxuICAgICAgLmVkaXRBcHByb3ZhbFdvcmtmbG93KHBheWxvYWQsIHRoaXMuYXBwcm92ZXJEZXRhaWxzLl9pZClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNhdmVBcHByb3ZhbFdvcmtmbG93LmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygncG9saWN5IGNyZWF0ZScsIHJlcyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwb3B1bGF0ZUFwcHJvdmVyKCkge1xyXG4gICAgY29uc3QgeyB3b3JrZmxvd19uYW1lLCBhcHByb3ZhbF93b3JrZmxvdywgZGVzY3JpcHRpb24gfSA9XHJcbiAgICAgIHRoaXMuYXBwcm92ZXJEZXRhaWxzO1xyXG4gICAgdGhpcy53b3JrZmxvd05hbWUgPSB3b3JrZmxvd19uYW1lO1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cyA9IGFwcHJvdmFsX3dvcmtmbG93O1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGb3JtKCkge1xyXG4gICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC1jcmVhdGUtZm9ybS9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQU8xRSxNQUFNLE9BQU8sMkJBQTJCO0lBa0N0QyxZQUNVLFdBQXdCLEVBQ3hCLGFBQTRCO1FBRDVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkN0Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsMEJBQXFCLEdBQVUsRUFBRSxDQUFDO1FBQ2xDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUM5QixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0IsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixtQkFBYyxHQUFHO1lBQ2YsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixvQkFBb0IsRUFBRSxtQkFBbUI7WUFDekMsa0JBQWtCLEVBQUUscUJBQXFCO1lBQ3pDLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxhQUFhLEVBQUUs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QUFXLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7O1lBN1FGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxvMWNBQW9EOzthQUVyRDs7O1lBUFEsV0FBVztZQUNYLGFBQWE7OzttQkFnQ25CLEtBQUs7OEJBQ0wsS0FBSzttQ0FDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLO21DQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb2xpY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcG9saWN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYXBwcm92YWwtY3JlYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsQ3JlYXRlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZW5hYmxlQXBwcm92YWxDcmVhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVBcHByb3ZhbExldmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW5hYmxlUG9saWN5Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3b3JrZmxvd05hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdEFwcHJvdmFsUGF5bG9hZDogYW55W10gPSBbXTtcclxuICBjcmVhdGVBcHByb3ZhbFBheWxvYWQ6IGFueVtdID0gW107XHJcbiAgYXBwcm92YWxXb3JrZmxvd3M6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRDYXRlZ29yeTogYW55W10gPSBbXTtcclxuICBsZXZlbHM6IG51bWJlciA9IDE7XHJcbiAgY2F0ZWdvcnlDb25maWcgPSB7XHJcbiAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IENhdGVnb3J5JyxcclxuICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgZmxvYXRpbmdUZXh0UGx1cmFsOiAnQ2F0ZWdvcmllcyBzZWxlY3RlZCcsXHJcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBDYXRlZ29yeScsXHJcbiAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgIHdvcmtmbG93OiAncG9saWN5JyxcclxuICB9O1xyXG4gIHNlbGVjdGVkQ2F0OiBhbnlbXSA9IFtdO1xyXG4gIGVkaXRBcHByb3ZhbERhdGE6IGFueVtdID0gW107XHJcbiAgZWRpdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICBjcmVhdGVEZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgc2VsZWN0ZWRDYXRlZ29yeUlkOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBtb2RlOiAnQ1JFQVRFJyB8ICdFRElUJyA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGFwcHJvdmVyRGV0YWlsczogYW55O1xyXG4gIEBJbnB1dCgpIGFwcHJvdmVyV29ya0Zsb3dMaXN0ITogYW55O1xyXG4gIEBJbnB1dCgpIGVuYWJsZUNyZWF0ZUZvcm0hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFsbEFwcHJvdmVycyE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5ITogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZUFwcHJvdmFsV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoaXMgcG9saWN5JyxcclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAnd29ya2Zsb3dOYW1lIHh4eXknLFxyXG4gICAgICB0aGlzLndvcmtmbG93TmFtZSxcclxuICAgICAgdGhpcy5hcHByb3ZlckRldGFpbHMsXHJcbiAgICAgIHRoaXMubW9kZVxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdhcHByb3ZhbFdvcmtmbG93cyB0byBkaXNwbGF5IG9uIGluaXQnLCB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVBcHByb3ZlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQXBwcm92YWxBY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2NyZWF0ZUFwcHJvdmFsQWN0aW9uJywgZXZlbnQpO1xyXG4gICAgaWYgKGV2ZW50LnRvTG93ZXJDYXNlKCkgPT09ICdhcHByb3ZhbCcpIHtcclxuICAgICAgdGhpcy5lbmFibGVBcHByb3ZhbENyZWF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRMZXZlbHNDbGlja2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGV2ZW50O1xyXG4gICAgaWYgKGV2ZW50KSB0aGlzLmxldmVscysrO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlJZChjYXRlZ29yeTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCA9IGNhdGVnb3J5Lm1hcCgoY2F0OiBhbnkpID0+IGNhdC5pdGVtX2lkKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCcsIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkKTtcclxuICB9XHJcblxyXG4gIHNhdmVDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdCA9IGV2ZW50O1xyXG4gICAgdGhpcy5maWx0ZXJTZWxlY3RlZENhdGVnb3J5KGV2ZW50KTtcclxuICAgIHRoaXMuZW5hYmxlUG9saWN5Q2F0ZWdvcnkgPSBmYWxzZTtcclxuICAgIGNvbnNvbGUubG9nKCdjYXRlZ29yeSBsaXN0IHNhdmVDYXRlZ29yeUxpc3QnLCBldmVudCk7XHJcbiAgICBjb25zb2xlLmxvZygnY2F0ZWdvcnkgc2VsZWN0ZWQnLCBldmVudCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJTZWxlY3RlZENhdGVnb3J5KHNlbGVjdGVkQ2F0ZWdvcnk6IGFueSkge1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5ID0gdGhpcy5zZWxlY3RlZENhdGVnb3J5LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgc2VsZWN0ZWRDYXRlZ29yeS5pbmNsdWRlcyhjYXRlZ29yeS5faWQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRDYXRlZ29yeUlkKHRoaXMuZmlsdGVyZWRDYXRlZ29yeSk7XHJcbiAgICBjb25zb2xlLmxvZygnZmlsdGVyZWRDYXRlZ29yeScsIHRoaXMuZmlsdGVyZWRDYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDYXRlZ29yeShldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5maWx0ZXJlZENhdGVnb3J5IDEnLCB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkpO1xyXG4gICAgY29uc3QgY2F0ZWdvcnlJbmRleCA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yeS5maW5kSW5kZXgoXHJcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeT8uaXRlbV9pZCA9PT0gZXZlbnQ/Lml0ZW1faWRcclxuICAgICk7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnk/LnNwbGljZShjYXRlZ29yeUluZGV4LCAxKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkgMicsIHRoaXMuZmlsdGVyZWRDYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNhdGVnb3J5TGlzdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdjbG9zZSBjYXRlZ29yeSBsaXN0JywgdGhpcy5jcmVhdGVEZXNjcmlwdGlvbik7XHJcbiAgICB0aGlzLmVuYWJsZVBvbGljeUNhdGVnb3J5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBlbmFibGVDYXRlZ29yeShldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5lbmFibGVQb2xpY3lDYXRlZ29yeSA9IGV2ZW50O1xyXG4gICAgY29uc29sZS5sb2coJ3NlbGVjdGVkQ2F0JywgdGhpcy5zZWxlY3RlZENhdCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVNlbGVjdEFwcHJvdmVyKCkge1xyXG4gICAgdGhpcy5lbmFibGVBcHByb3ZhbExldmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEFwcHJvdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0QXBwcm92YWxQYXlsb2FkID0gZXZlbnQ7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ2Nsb3NlIHNlbGVjdGVkJyxcclxuICAgICAgdGhpcy5zZWxlY3RBcHByb3ZhbFBheWxvYWQsXHJcbiAgICAgIHRoaXMuZWRpdEluZGV4LFxyXG4gICAgICB0aGlzLmVkaXRBcHByb3ZhbERhdGFcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZygnYXBwcm92YWxXb3JrZmxvd3Mgc2VsZWN0ZWRBcHByb3ZlcicsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MpO1xyXG4gICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5zcGxpY2UodGhpcy5lZGl0SW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5zcGxpY2UodGhpcy5lZGl0SW5kZXgsIDAsIGV2ZW50WzBdKTtcclxuICAgICAgdGhpcy5lZGl0SW5kZXggPSAtMTtcclxuICAgICAgdGhpcy5lZGl0QXBwcm92YWxEYXRhID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKCcgaGkgaW4gaWYnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaSBpbiBlbHNlJyk7XHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MucHVzaChldmVudFswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbmFibGVBcHByb3ZhbExldmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZWxldGVMZXZlbChpbmRleDogYW55KSB7XHJcbiAgICAvLyBBcHByb3ZlciBMZXZlbCBkZWxldGVcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFwcHJvdmFsV29ya2Zsb3dzJywgdGhpcy5hcHByb3ZhbFdvcmtmbG93cywgaW5kZXgpO1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICd0aGlzLmFwcHJvdmFsV29ya2Zsb3dzIGFmdGVyIHNwbGljZScsXHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MsXHJcbiAgICAgIGluZGV4XHJcbiAgICApO1xyXG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2xldmVsMSddID09PVxyXG4gICAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydhbGlhc19uYW1lJ11cclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2FsaWFzX25hbWUnXSA9IGBMZXZlbCAke2kgKyAxfWA7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2xldmVsMSddID0gYExldmVsICR7aSArIDF9YDtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFwcHJvdmFsV29ya2Zsb3dzIGFmdGVyIGRlbGV0ZScsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MpO1xyXG4gICAgLy8gZGVsZXRlIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbYGxldmVsJHtpICsgMX1gXTtcclxuICAgIC8vIGNvbnN0IG5ld09iajogYW55ID0ge307XHJcbiAgICAvLyBPYmplY3Qua2V5cyh0aGlzLmFwcHJvdmFsV29ya2Zsb3dzKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4geyAvLyBSZW5hbWluZyB0aGUga2V5cyBvZiB0aGUgb2JqZWN0IGluIHNlcXVlbnRpYWwgb3JkZXJcclxuICAgIC8vICAgICBjb25zdCBrZXkgPSBpdGVtLnN1YnN0cmluZygwLCBpdGVtLmxhc3RJbmRleE9mKCdsJykgKyAxKS5jb25jYXQoYCR7aW5kZXggKyAxfWApO1xyXG4gICAgLy8gICAgIG5ld09ialtrZXldID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpdGVtXTtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gdGhpcy5hcHByb3ZhbFdvcmtmbG93cyA9IE9iamVjdC5hc3NpZ24oe30sIG5ld09iaik7XHJcbiAgICAvLyB0aGlzLmxldmVscy0tO1xyXG4gICAgLy8gdGhpcy5jaGVja0xldmVsKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0xldmVsKCkge1xyXG4gICAgaWYgKHRoaXMubGV2ZWxzID09PSAwKSB7XHJcbiAgICAgIHRoaXMubGV2ZWxzID0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVkaXRBcHByb3ZhbChhcHByb3ZhbDogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICB0aGlzLmVkaXRBcHByb3ZhbERhdGEgPSBbYXBwcm92YWxdO1xyXG4gICAgdGhpcy5lZGl0SW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IHRydWU7XHJcbiAgICBjb25zb2xlLmxvZygnYXBwcm92YWwgd29ya2Zsb3cgJywgdGhpcy5lZGl0QXBwcm92YWxEYXRhLCB0aGlzLmVkaXRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNyZWF0ZUZvcm0oKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5hcHByb3ZhbFdvcmtmbG93cyBvbiBuZXh0IGNsaWNrJywgdGhpcy5hcHByb3ZhbFdvcmtmbG93cyk7XHJcbiAgfVxyXG5cclxuICBuZXh0Q2xpY2soKSB7XHJcbiAgICB0aGlzLnJlbW92ZU1lbWJlck5hbWVLZXkoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU1lbWJlck5hbWVLZXkoKSB7XHJcbiAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5tYXAoXHJcbiAgICAgICh7XHJcbiAgICAgICAgYXBwcm92ZXJzLFxyXG4gICAgICAgIC4uLnJlc3RcclxuICAgICAgfToge1xyXG4gICAgICAgIGFwcHJvdmVyczogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT47XHJcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgICB9KSA9PiAoe1xyXG4gICAgICAgIC4uLnJlc3QsXHJcbiAgICAgICAgYXBwcm92ZXJzOiBhcHByb3ZlcnMubWFwKFxyXG4gICAgICAgICAgKHsgbWVtYmVyX25hbWUsIC4uLnJlc3QgfTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT4gKHsgLi4ucmVzdCB9KVxyXG4gICAgICAgICksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICd0aGlzLmFwcHJvdmFsV29ya2Zsb3dzIHJlbW92ZU1lbWJlck5hbWVLZXknLFxyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBheWxvYWQoKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlUGF5bG9hZCgpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIHdvcmtmbG93X21vZHVsZTogJ1BPTElDWScsXHJcbiAgICAgIHdvcmtmbG93X25hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxyXG4gICAgICBjYXRlZ29yeV9pZDogdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQsXHJcbiAgICAgIGFwcHJvdmFsX3dvcmtmbG93OiB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLFxyXG4gICAgICBjcmVhdGVkX2J5OiB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCksXHJcbiAgICAgIG9yZ2FuaXNhdGlvbl9pZDogdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpLFxyXG4gICAgICBkZWxldGVfZmxhZzogMCxcclxuICAgICAgSXNfYXBwcm92YWw6IDEsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMuX2VkaXRXb3JrZmxvdyhwYXlsb2FkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlTmV3V29ya2Zsb3cocGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVOZXdXb3JrZmxvdyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIHRoaXMucG9saWN5U2VydmljZS5jcmVhdGVBcHByb3ZhbFdvcmtmbG93KHBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2ZUFwcHJvdmFsV29ya2Zsb3cuZW1pdCh0cnVlKTtcclxuICAgICAgICBjb25zb2xlLmxvZygncG9saWN5IGNyZWF0ZScsIHJlcyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBfZWRpdFdvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlXHJcbiAgICAgIC5lZGl0QXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkLCB0aGlzLmFwcHJvdmVyRGV0YWlscy5faWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3BvbGljeSBjcmVhdGUnLCByZXMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcG9wdWxhdGVBcHByb3ZlcigpIHtcclxuICAgIGNvbnN0IHsgd29ya2Zsb3dfbmFtZSwgYXBwcm92YWxfd29ya2Zsb3csIGRlc2NyaXB0aW9uIH0gPVxyXG4gICAgICB0aGlzLmFwcHJvdmVyRGV0YWlscztcclxuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gd29ya2Zsb3dfbmFtZTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSBhcHByb3ZhbF93b3JrZmxvdztcclxuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGNsb3NlRm9ybSgpIHtcclxuICAgIHRoaXMuc2F2ZUFwcHJvdmFsV29ya2Zsb3cuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|