vcomply-workflow-engine 5.0.3 → 5.0.4
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/constants/assessts.constants.mjs +4 -3
- package/esm2022/lib/more-option/more-option.component.mjs +79 -10
- package/esm2022/lib/pipes/pipes.module.mjs +10 -5
- package/esm2022/lib/pipes/user.pipe.mjs +17 -0
- package/esm2022/lib/report-a-case/components/assignee/assignee.component.mjs +42 -6
- package/esm2022/lib/report-a-case/components/case-assignees/case-assignees.component.mjs +131 -25
- package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +157 -11
- package/esm2022/lib/report-a-case/components/case-details/case-details.component.mjs +25 -6
- package/esm2022/lib/report-a-case/components/case-owners/case-owners.component.mjs +222 -0
- package/esm2022/lib/report-a-case/components/case-priority/case-priority.component.mjs +61 -6
- package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +62 -30
- package/esm2022/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.mjs +51 -5
- package/esm2022/lib/report-a-case/components/chip-capsule/chip-capsule.component.mjs +4 -4
- package/esm2022/lib/report-a-case/components/due-date/due-date.component.mjs +196 -20
- package/esm2022/lib/report-a-case/components/form-selectBox/form-selectBox.component.mjs +28 -3
- package/esm2022/lib/report-a-case/components/information-block/information-block.component.mjs +19 -6
- package/esm2022/lib/report-a-case/components/rc-details/rc-details.component.mjs +229 -10
- package/esm2022/lib/report-a-case/components/report-date/report-date.component.mjs +27 -12
- package/esm2022/lib/report-a-case/constants/api.constants.mjs +3 -2
- package/esm2022/lib/report-a-case/constants/report-case.constants.mjs +124 -7
- package/esm2022/lib/report-a-case/report-case.module.mjs +5 -2
- package/esm2022/lib/report-a-case/services/report-a-case.service.mjs +14 -1
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +378 -175
- package/esm2022/lib/services/RBAC.service.mjs +66 -0
- package/esm2022/lib/services/api.service.mjs +32 -0
- package/esm2022/lib/services/report-case-permission.service.mjs +37 -0
- package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +22 -11
- package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +14 -5
- package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list-with-pagination.module.mjs +5 -4
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +55 -29
- package/fesm2022/vcomply-workflow-engine.mjs +2956 -1116
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/constants/assessts.constants.d.ts +1 -0
- package/lib/more-option/more-option.component.d.ts +4 -1
- package/lib/pipes/pipes.module.d.ts +3 -2
- package/lib/pipes/user.pipe.d.ts +7 -0
- package/lib/report-a-case/components/assignee/assignee.component.d.ts +14 -2
- package/lib/report-a-case/components/case-assignees/case-assignees.component.d.ts +43 -5
- package/lib/report-a-case/components/case-category/case-category.component.d.ts +43 -2
- package/lib/report-a-case/components/case-details/case-details.component.d.ts +29 -1
- package/lib/report-a-case/components/case-owners/case-owners.component.d.ts +132 -0
- package/lib/report-a-case/components/case-priority/case-priority.component.d.ts +38 -2
- package/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.d.ts +37 -7
- package/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.d.ts +37 -2
- package/lib/report-a-case/components/case-type-slider/case-type.component.d.ts +24 -0
- package/lib/report-a-case/components/due-date/due-date.component.d.ts +68 -11
- package/lib/report-a-case/components/field-holder/field-holder.component.d.ts +1 -0
- package/lib/report-a-case/components/form-selectBox/form-selectBox.component.d.ts +7 -1
- package/lib/report-a-case/components/information-block/information-block.component.d.ts +6 -0
- package/lib/report-a-case/components/rc-details/rc-details.component.d.ts +40 -1
- package/lib/report-a-case/components/report-date/report-date.component.d.ts +29 -0
- package/lib/report-a-case/constants/api.constants.d.ts +1 -0
- package/lib/report-a-case/constants/report-case.constants.d.ts +120 -2
- package/lib/report-a-case/report-case.module.d.ts +21 -20
- package/lib/report-a-case/services/report-a-case.service.d.ts +3 -0
- package/lib/report-a-case/workflow-case/workflow-case.component.d.ts +125 -48
- package/lib/services/RBAC.service.d.ts +27 -0
- package/lib/services/api.service.d.ts +13 -0
- package/lib/services/report-case-permission.service.d.ts +13 -0
- package/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.d.ts +2 -1
- package/lib/sharedComponents/radio-list-with-pagination/radio-list-with-pagination.module.d.ts +2 -1
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +9 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import { Component, ElementRef, Input, ViewChild, Output, EventEmitter, } from '@angular/core';
|
|
2
|
-
import { REPORT_CASE } from '../../constants/report-case.constants';
|
|
3
|
-
import { HELPER_TEXT } from '../../constants/report-case.constants';
|
|
1
|
+
import { Component, ElementRef, Input, ViewChild, Output, EventEmitter, HostListener, } from '@angular/core';
|
|
2
|
+
import { REPORT_CASE, HELPER_TEXT, EMAIL_REMINDERS, } from '../../constants/report-case.constants';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "../../../
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "
|
|
10
|
-
import * as i6 from "
|
|
4
|
+
import * as i1 from "../../../services/common.service";
|
|
5
|
+
import * as i2 from "../../../sharedComponents/frequency/frequency.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "../../../ui-kit/tooltip/tooltip.directive";
|
|
8
|
+
import * as i5 from "../../../sharedComponents/floating-bar/floating-bar.component";
|
|
9
|
+
import * as i6 from "ng2-date-picker";
|
|
10
|
+
import * as i7 from "@angular/forms";
|
|
11
|
+
import * as i8 from "../../../sharedComponents/v-loader/loader-inline/loader-inline.component";
|
|
12
|
+
import * as i9 from "../assignee/assignee.component";
|
|
11
13
|
export class DueDateComponent {
|
|
12
|
-
|
|
13
|
-
this.
|
|
14
|
+
set initialSelection(value) {
|
|
15
|
+
this.dueDate = value?.resolution_deadline?.due_date;
|
|
16
|
+
this.emailReminder = value?.resolution_deadline?.assignee_remind_before;
|
|
17
|
+
this.escalationEmail = value?.resolution_deadline?.owner_remind_before;
|
|
18
|
+
}
|
|
19
|
+
constructor(commonDateService, frequencyService) {
|
|
20
|
+
this.commonDateService = commonDateService;
|
|
21
|
+
this.frequencyService = frequencyService;
|
|
14
22
|
this.animation = true;
|
|
15
23
|
this.datePickerOverlay = false;
|
|
16
24
|
this.dateConfig = {
|
|
@@ -19,15 +27,65 @@ export class DueDateComponent {
|
|
|
19
27
|
unSelectOnClick: true,
|
|
20
28
|
openOnClick: false,
|
|
21
29
|
openOnFocus: false,
|
|
30
|
+
min: '',
|
|
22
31
|
};
|
|
23
32
|
this.dueDateTexts = REPORT_CASE;
|
|
24
33
|
this.helperText = HELPER_TEXT;
|
|
34
|
+
this.assigneeClicked = false;
|
|
35
|
+
this.assigneeList = [];
|
|
36
|
+
this.assigneeData = {};
|
|
37
|
+
this.currentStageIndex = -1;
|
|
38
|
+
this.activeAssignee = [];
|
|
39
|
+
this.emailReminder = EMAIL_REMINDERS.email_reminder;
|
|
40
|
+
this.escalationEmail = EMAIL_REMINDERS.escalation_email_reminder;
|
|
41
|
+
this.showError = false;
|
|
42
|
+
this.showAssigneeError = false;
|
|
43
|
+
this.userList = [];
|
|
44
|
+
this.groupList = [];
|
|
45
|
+
this.closeDueDateResolution = new EventEmitter();
|
|
46
|
+
this.closeDueDateEvent = new EventEmitter();
|
|
25
47
|
}
|
|
26
48
|
ngOnInit() {
|
|
27
|
-
|
|
49
|
+
this.dateConfig.min = this.frequencyService.formatDate();
|
|
28
50
|
setTimeout(() => {
|
|
29
51
|
this.animation = false;
|
|
30
52
|
}, 300);
|
|
53
|
+
this.setAssigneeList();
|
|
54
|
+
this.initializeEditMode();
|
|
55
|
+
}
|
|
56
|
+
initializeEditMode() {
|
|
57
|
+
if (!this.payload?.caseToWorkflow?.resolution_deadline)
|
|
58
|
+
return;
|
|
59
|
+
const deadline = this.payload.caseToWorkflow.resolution_deadline;
|
|
60
|
+
this.initializeDeadlineValues(deadline);
|
|
61
|
+
this.initializeStageAssignees(deadline);
|
|
62
|
+
}
|
|
63
|
+
initializeDeadlineValues(deadline) {
|
|
64
|
+
this.dueDate = deadline.due_date ? new Date(deadline.due_date) : null;
|
|
65
|
+
this.emailReminder =
|
|
66
|
+
deadline.assignee_remind_before || EMAIL_REMINDERS.email_reminder;
|
|
67
|
+
this.escalationEmail =
|
|
68
|
+
deadline.owner_remind_before || EMAIL_REMINDERS.escalation_email_reminder;
|
|
69
|
+
}
|
|
70
|
+
initializeStageAssignees(deadline) {
|
|
71
|
+
if (!deadline?.stages_assignees?.length)
|
|
72
|
+
return;
|
|
73
|
+
const stageAssigneeMap = this.createStageAssigneeMap(deadline.stages_assignees);
|
|
74
|
+
this.mapWorkflowStages(stageAssigneeMap);
|
|
75
|
+
}
|
|
76
|
+
createStageAssigneeMap(stagesAssignees) {
|
|
77
|
+
return new Map(stagesAssignees.map((stage) => [stage?.stage_id, stage?.assignee_id]));
|
|
78
|
+
}
|
|
79
|
+
mapWorkflowStages(stageAssigneeMap) {
|
|
80
|
+
this.workflowDetails?.stages_assignees?.forEach((workflowStage, index) => {
|
|
81
|
+
const assigneeId = stageAssigneeMap?.get(workflowStage?.stage_id);
|
|
82
|
+
if (!assigneeId)
|
|
83
|
+
return;
|
|
84
|
+
const assignee = this.assigneeList?.find((assignee) => assignee?._id === assigneeId);
|
|
85
|
+
if (assignee) {
|
|
86
|
+
this.assigneeData[index] = [assignee];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
31
89
|
}
|
|
32
90
|
openDatePicker() {
|
|
33
91
|
this.datePicker?.api?.open();
|
|
@@ -62,29 +120,147 @@ export class DueDateComponent {
|
|
|
62
120
|
}
|
|
63
121
|
if (evt?.date?.$d) {
|
|
64
122
|
this.dueDate = evt?.date?.$d;
|
|
123
|
+
this.showError = false;
|
|
65
124
|
}
|
|
66
125
|
this.datePicker?.api?.close();
|
|
67
126
|
}
|
|
68
127
|
closeDueDate() {
|
|
69
128
|
this.closeDueDateEvent.emit();
|
|
70
129
|
}
|
|
71
|
-
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DueDateComponent, selector: "app-due-date", inputs: { payload: "payload", dueDate: "dueDate" }, outputs: { closeDueDateEvent: "closeDueDateEvent" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "datePickerPopUp", first: true, predicate: ["datePicker"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"configure-resolution\" [class.animate]=\"animation\">\r\n <div\r\n class=\"configure-resolution-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 Configure Resolution Deadline & Stage Details\r\n </div>\r\n </div>\r\n <div class=\"configure-resolution-body\">\r\n <div class=\"configure-resolution-body-inner\">\r\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\r\n <app-no-data\r\n *ngIf=\"false\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\r\n \"\r\n [noDataText]=\"'No data to display'\"\r\n ></app-no-data>\r\n\r\n <ng-container>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3 vx-mb-3\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"{{\r\n dueDateTexts.case_details.due_date.deadline_placeholder\r\n }}\"\r\n (click)=\"openDatePicker()\"\r\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"dueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\r\n >\r\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\r\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\r\n [appTooltip]=\"\r\n 'If enabled, this option allows the assignee to revisit and reopen a previously completed stage. The stage will be reset, and the assigned user will need to complete it again.'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div> -->\r\n </div>\r\n <div class=\"configure-resolution-table\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n STAGE NAME\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n TRANSITION STATUS\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.transition_status\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n ASSIGNEE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.assignee\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center deadline\"\r\n >\r\n DEADLINE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.deadline\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div class=\"table-row\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\r\n [appTooltip]=\"'1'\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n 1\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n <div\r\n class=\"value vx-fs-13 vx-pr-2\"\r\n [appTooltip]=\"'Communication and Reporting'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n Communication and Reporting\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n <div class=\"value vx-fs-12\">\r\n In Progress<br /><span class=\"vx-mr-1\">To</span>Closed\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n <div\r\n *ngIf=\"true\"\r\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\r\n >\r\n <div class=\"value vx-fs-13\">Select a User</div>\r\n <i class=\"icons arrow vx-fs-12\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\r\n >\r\n <div\r\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n Samantha Jones\r\n </div>\r\n <button\r\n class=\"edit-btn vx-fs-11 vx-fw-500 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-fs-12 vx-txt-blue vx-mr-1\"></i\r\n >EDIT\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\r\n >\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\r\n [class.disabled]=\"true\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n value=\"30 Dec 2024\"\r\n (click)=\"openDatePicker()\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false; closeDatePicker($event)\r\n \"\r\n [config]=\"dateConfig\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n EMAIL REMINDER CONFIGURATION\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div class=\"divider vx-mb-2\"></div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n REMINDER EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send regular email reminders to the assignee\r\n </div>\r\n <input type=\"number\" value=\"5\" />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the stage deadline.\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n ESCALATION EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send email escalation to the Case Owner\r\n </div>\r\n <input type=\"number\" value=\"2\" />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the overall case\r\n deadline, if the case is still open.\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <app-floating-bar (closeList)=\"closeDueDate()\"></app-floating-bar>\r\n </div>\r\n</div>\r\n", 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 .configure-resolution{background:#fff;position:fixed;inset:0 500px 0 0;z-index:1}::ng-deep .configure-resolution:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .configure-resolution.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .configure-resolution-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .configure-resolution-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .configure-resolution-body-inner{height:calc(100% - 3rem);padding:0 2rem 1rem 0;width:calc(100% + 2rem);overflow-y:auto;scrollbar-width:thin}::ng-deep .configure-resolution-body-inner .divider{background:#e3e3e9;width:100%;height:1px}::ng-deep .configure-resolution-body .label-top .required{color:#c7381b}::ng-deep .configure-resolution-body .toggle-area{cursor:pointer}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch{order:1;width:24px!important;min-width:24px!important;height:16px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-box{background:#cdced6!important;border:1px solid #cdced6!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-ball{height:12px!important;width:12px!important;border:none!important;left:2px!important;top:2px!important;bottom:2px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box{background:#34aa44!important;border-color:#34aa44!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box .switch-ball{left:10px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .value{order:2;color:#000!important;cursor:pointer;font-size:11px!important;margin-left:.5rem;width:unset!important}::ng-deep .configure-resolution-body .toggle-area i.info{cursor:pointer}::ng-deep .configure-resolution-body .case-calendar{background:#fff;border-radius:.25rem;height:2.5rem}::ng-deep .configure-resolution-body .case-calendar-inner{position:relative;width:100%}::ng-deep .configure-resolution-body .case-calendar-inner input{background:transparent;border-radius:.25rem;border:1px solid #cdced6;color:#747576;font-size:13px;font-weight:400;height:2.5rem;line-height:2.5rem;padding:0 .75rem 0 2rem;outline:none;width:100%;transition:all .2s ease-in-out}::ng-deep .configure-resolution-body .case-calendar-inner input::placeholder{color:#a9aab6}::ng-deep .configure-resolution-body .case-calendar-inner input:hover,::ng-deep .configure-resolution-body .case-calendar-inner input:focus{border-color:#1e5dd3}::ng-deep .configure-resolution-body .case-calendar-inner i{display:flex;justify-content:center;align-items:center;height:.75rem;width:.75rem;position:absolute;left:.75rem;top:.125rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner input,::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner i{color:#a9aab6}::ng-deep .configure-resolution-body .email-configure-box{border-radius:.25rem;border:1px solid #dbdbdb;color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box input{-moz-appearance:textfield;border-radius:.25rem;border:1px solid #dbdbdb;color:#343952;display:inline-block;font-size:13px;text-align:center;width:2.25rem;height:1.75rem;padding:.125rem;outline:none}::ng-deep .configure-resolution-body .email-configure-box input::-webkit-inner-spin-button,::ng-deep .configure-resolution-body .email-configure-box input::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .configure-resolution-body .email-configure-box input::placeholder{color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box .black-text{color:#000}::ng-deep .configure-resolution-table{border-radius:.25rem;border:1px solid #f2f2f5;margin-bottom:1.5rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0}::ng-deep .configure-resolution-table .table-header .table-column{color:#787a8c!important;line-height:.75rem!important;min-height:2rem!important}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .configure-resolution-table .table-row:last-of-type .table-column,::ng-deep .configure-resolution-table .table-row:only-child .table-column{border-bottom:none}::ng-deep .configure-resolution-table .table-row .table-column{border-bottom:1px solid #f2f2f5;color:#000;min-height:3.25rem;position:relative;width:100%}::ng-deep .configure-resolution-table .table-row .table-column i.info{cursor:pointer}::ng-deep .configure-resolution-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .configure-resolution-table .table-row .table-column.serial .sr-no{width:1rem;height:3.25rem}::ng-deep .configure-resolution-table .table-row .table-column.stage-name{width:calc(100% - 37rem);min-width:calc(100% - 37rem)}::ng-deep .configure-resolution-table .table-row .table-column.stage-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.status{width:10rem;min-width:10rem}::ng-deep .configure-resolution-table .table-row .table-column.status .value span{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee{width:15rem;min-width:15rem}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box{border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .value{color:#a9aab6}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .arrow{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box{background:#f9f9fa;border-radius:.25rem;border:1px solid #cdced6;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box .value-chip{background:#fff;border-radius:.125rem;border:1px solid #f4f8ff;box-shadow:0 0 2px #1e5dd326;color:#000;height:1.5rem;max-width:9.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box button.edit-btn{background:transparent;border-radius:0;border:none}::ng-deep .configure-resolution-table .table-row .table-column.deadline{width:10rem;min-width:10rem}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\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: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i4.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
|
|
130
|
+
activateSelector(active, stageIndex) {
|
|
131
|
+
this.assigneeClicked = active;
|
|
132
|
+
if (active) {
|
|
133
|
+
this.currentStageIndex = stageIndex ?? -1;
|
|
134
|
+
this.activeAssignee =
|
|
135
|
+
this.currentStageIndex !== -1
|
|
136
|
+
? this.assigneeData[this.currentStageIndex]
|
|
137
|
+
: [];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
setAssigneeList() {
|
|
141
|
+
const assigneeIds = this.payload.caseToWorkflow?.assignees;
|
|
142
|
+
this.assigneeList = this.userList
|
|
143
|
+
?.filter((user) => assigneeIds?.includes(user?._id))
|
|
144
|
+
?.map((user) => {
|
|
145
|
+
const userGroups = this.groupList?.filter((group) => user?.usergroup_id?.includes(group?.group_id));
|
|
146
|
+
return {
|
|
147
|
+
...user,
|
|
148
|
+
associatedGroups: userGroups,
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
selectedAssignee(event) {
|
|
153
|
+
if (this.currentStageIndex !== -1) {
|
|
154
|
+
this.assigneeData[this.currentStageIndex] = event;
|
|
155
|
+
}
|
|
156
|
+
this.assigneeClicked = false;
|
|
157
|
+
if (event?.length > 0) {
|
|
158
|
+
this.showAssigneeError = false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
saveCaseResolutionDeadline() {
|
|
162
|
+
if (!this.isDueDateValid()) {
|
|
163
|
+
this.showError = true;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
else if (!this.areAssigneesValid()) {
|
|
167
|
+
this.showAssigneeError = true;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.showError = false;
|
|
171
|
+
this.showAssigneeError = false;
|
|
172
|
+
this.setPayload();
|
|
173
|
+
this.closeDueDateResolution.emit();
|
|
174
|
+
}
|
|
175
|
+
isDueDateValid() {
|
|
176
|
+
return !!this.dueDate;
|
|
177
|
+
}
|
|
178
|
+
areAssigneesValid() {
|
|
179
|
+
return this.workflowDetails?.stages_assignees?.every((stage, index) => this.assigneeData[index] && this.assigneeData[index]?.length > 0);
|
|
180
|
+
}
|
|
181
|
+
formatDueDate(date) {
|
|
182
|
+
return new Date(date).toISOString();
|
|
183
|
+
}
|
|
184
|
+
setDeadlineReminders() {
|
|
185
|
+
this.payload.caseToWorkflow.resolution_deadline.assignee_remind_before =
|
|
186
|
+
this.emailReminder;
|
|
187
|
+
this.payload.caseToWorkflow.resolution_deadline.owner_remind_before =
|
|
188
|
+
this.escalationEmail;
|
|
189
|
+
}
|
|
190
|
+
setStagesAssignees() {
|
|
191
|
+
return this.workflowDetails?.stages_assignees
|
|
192
|
+
.map((stage, index) => {
|
|
193
|
+
const assigneeData = this.assigneeData[index];
|
|
194
|
+
return assigneeData
|
|
195
|
+
? this.createStageAssignee(stage, assigneeData)
|
|
196
|
+
: null;
|
|
197
|
+
})
|
|
198
|
+
.filter(Boolean);
|
|
199
|
+
}
|
|
200
|
+
createStageAssignee(stage, assigneeData) {
|
|
201
|
+
return {
|
|
202
|
+
stage_id: stage?.stage_id || '',
|
|
203
|
+
assignee_id: assigneeData[0]?._id || '',
|
|
204
|
+
due_date: stage?.due_date || '',
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
setPayload() {
|
|
208
|
+
const formattedDate = this.formatDueDate(this.dueDate);
|
|
209
|
+
this.payload.caseToWorkflow.resolution_deadline.due_date = formattedDate;
|
|
210
|
+
this.setDeadlineReminders();
|
|
211
|
+
const stagesAssignees = this.setStagesAssignees();
|
|
212
|
+
this.payload.caseToWorkflow.resolution_deadline.stages_assignees =
|
|
213
|
+
stagesAssignees;
|
|
214
|
+
this.payload.caseToWorkflow.workflow_id = this.workflowDetails?._id;
|
|
215
|
+
}
|
|
216
|
+
documentClick(event) {
|
|
217
|
+
const datePickerObject = {
|
|
218
|
+
event: event,
|
|
219
|
+
class: 'effective-date',
|
|
220
|
+
popup: this.datePickerPopUp,
|
|
221
|
+
component: this.datePicker,
|
|
222
|
+
overlay: this.datePickerOverlay,
|
|
223
|
+
};
|
|
224
|
+
this.commonDateService.handleDocumentClick(datePickerObject);
|
|
225
|
+
}
|
|
226
|
+
onInputChange() {
|
|
227
|
+
if (this.emailReminder === 0) {
|
|
228
|
+
this.emailReminder = EMAIL_REMINDERS.email_reminder;
|
|
229
|
+
}
|
|
230
|
+
if (this.escalationEmail === 0) {
|
|
231
|
+
this.escalationEmail = EMAIL_REMINDERS.escalation_email_reminder;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DueDateComponent, deps: [{ token: i1.CommonService }, { token: i2.FrequencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DueDateComponent, selector: "app-due-date", inputs: { payload: "payload", dueDate: "dueDate", workflowDetails: "workflowDetails", userList: "userList", groupList: "groupList", initialSelection: "initialSelection" }, outputs: { closeDueDateResolution: "closeDueDateResolution", closeDueDateEvent: "closeDueDateEvent" }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "animation", first: true, predicate: ["datePicker"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"configure-resolution\" [class.animate]=\"animation\">\r\n <div\r\n class=\"configure-resolution-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 Configure Resolution Deadline & Stage Details\r\n </div>\r\n </div>\r\n <div class=\"configure-resolution-body\">\r\n <div class=\"configure-resolution-body-inner\">\r\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\r\n <app-no-data\r\n *ngIf=\"false\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\r\n \"\r\n [noDataText]=\"'No data to display'\"\r\n ></app-no-data>\r\n\r\n <ng-container>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3 vx-mb-3\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"{{\r\n dueDateTexts.case_details.due_date.deadline_placeholder\r\n }}\"\r\n (click)=\"openDatePicker()\"\r\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"dueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\r\n {{ dueDateTexts.errorMessage.dueDate }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\r\n >\r\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\r\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\r\n [appTooltip]=\"\r\n 'If enabled, this option allows the assignee to revisit and reopen a previously completed stage. The stage will be reset, and the assigned user will need to complete it again.'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div> -->\r\n </div>\r\n <div class=\"configure-resolution-table\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n STAGE NAME\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n TRANSITION STATUS\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.transition_status\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n ASSIGNEE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.assignee\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center deadline\"\r\n >\r\n DEADLINE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.deadline\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n *ngFor=\"\r\n let data of workflowDetails?.stages_assignees;\r\n let i = index\r\n \"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\r\n [appTooltip]=\"i + 1\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + 1 }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n <div\r\n class=\"value vx-fs-13 vx-pr-2\"\r\n [appTooltip]=\"data?.name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ data?.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n <div class=\"value vx-fs-12\">\r\n {{ data?.status_transition?.fromName }}<br /><span\r\n class=\"vx-mr-1\"\r\n >To</span\r\n >{{ data?.status_transition?.toName }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n (click)=\"activateSelector(true, i)\"\r\n >\r\n <div\r\n *ngIf=\"!assigneeData[i]?.length\"\r\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\r\n >\r\n <div class=\"value vx-fs-13\">Select a User</div>\r\n <i class=\"icons arrow vx-fs-12\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"assigneeData[i]?.length > 0\"\r\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\r\n >\r\n <div\r\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\r\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ assigneeData[i][0]?.member_name }}\r\n </div>\r\n <button\r\n (click)=\"activateSelector(true, i)\"\r\n class=\"edit-btn vx-fs-11 vx-fw-500 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-fs-12 vx-txt-blue vx-mr-1\"></i\r\n >EDIT\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\r\n >\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\r\n [class.disabled]=\"true\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n value=\"{{ data?.due_date | date : 'dd MMM yyyy' }}\"\r\n (click)=\"openDatePicker()\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false; closeDatePicker($event)\r\n \"\r\n [config]=\"dateConfig\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"showAssigneeError\"\r\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\r\n >\r\n {{ dueDateTexts.errorMessage.stageAssignee }}\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n EMAIL REMINDER CONFIGURATION\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div class=\"divider vx-mb-2\"></div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n REMINDER EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send regular email reminders to the assignee\r\n </div>\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"emailReminder\"\r\n onkeydown=\"return event.key !== '.'\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n (change)=\"onInputChange()\"\r\n />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the stage deadline.\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n ESCALATION EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send email escalation to the Case Owner\r\n </div>\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"escalationEmail\"\r\n onkeydown=\"return event.key !== '.'\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n (change)=\"onInputChange()\"\r\n />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the overall case\r\n deadline, if the case is still open.\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <app-floating-bar\r\n (closeList)=\"closeDueDate()\"\r\n (closeEvent)=\"saveCaseResolutionDeadline()\"\r\n ></app-floating-bar>\r\n </div>\r\n</div>\r\n<app-assignee\r\n *ngIf=\"assigneeClicked\"\r\n [payload]=\"payload\"\r\n [assigneeList]=\"assigneeList\"\r\n [activeAssignee]=\"activeAssignee\"\r\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\r\n (closeEvent)=\"activateSelector(false)\"\r\n></app-assignee>\r\n", 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 .configure-resolution{background:#fff;position:fixed;inset:0 500px 0 0;z-index:1}::ng-deep .configure-resolution:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .configure-resolution.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .configure-resolution-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .configure-resolution-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .configure-resolution-body-inner{height:calc(100% - 3rem);padding:0 2rem 1rem 0;width:calc(100% + 2rem);overflow-y:auto;scrollbar-width:thin}::ng-deep .configure-resolution-body-inner .divider{background:#e3e3e9;width:100%;height:1px}::ng-deep .configure-resolution-body .label-top .required{color:#c7381b}::ng-deep .configure-resolution-body .errorMsg{color:#a82a1d}::ng-deep .configure-resolution-body .toggle-area{cursor:pointer}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch{order:1;width:24px!important;min-width:24px!important;height:16px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-box{background:#cdced6!important;border:1px solid #cdced6!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-ball{height:12px!important;width:12px!important;border:none!important;left:2px!important;top:2px!important;bottom:2px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box{background:#34aa44!important;border-color:#34aa44!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box .switch-ball{left:10px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .value{order:2;color:#000!important;cursor:pointer;font-size:11px!important;margin-left:.5rem;width:unset!important}::ng-deep .configure-resolution-body .toggle-area i.info{cursor:pointer}::ng-deep .configure-resolution-body .case-calendar{background:#fff;border-radius:.25rem;height:2.5rem}::ng-deep .configure-resolution-body .case-calendar-inner{position:relative;width:100%}::ng-deep .configure-resolution-body .case-calendar-inner input{background:transparent;border-radius:.25rem;border:1px solid #cdced6;color:#747576;font-size:13px;font-weight:400;height:2.5rem;line-height:2.5rem;padding:0 .75rem 0 2rem;outline:none;width:100%;transition:all .2s ease-in-out}::ng-deep .configure-resolution-body .case-calendar-inner input::placeholder{color:#a9aab6}::ng-deep .configure-resolution-body .case-calendar-inner input:hover,::ng-deep .configure-resolution-body .case-calendar-inner input:focus{border-color:#1e5dd3}::ng-deep .configure-resolution-body .case-calendar-inner i{display:flex;justify-content:center;align-items:center;height:.75rem;width:.75rem;position:absolute;left:.75rem;top:.125rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner input,::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner i{color:#a9aab6}::ng-deep .configure-resolution-body .email-configure-box{border-radius:.25rem;border:1px solid #dbdbdb;color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box input{-moz-appearance:textfield;border-radius:.25rem;border:1px solid #dbdbdb;color:#343952;display:inline-block;font-size:13px;text-align:center;width:2.25rem;height:1.75rem;padding:.125rem;outline:none}::ng-deep .configure-resolution-body .email-configure-box input::-webkit-inner-spin-button,::ng-deep .configure-resolution-body .email-configure-box input::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .configure-resolution-body .email-configure-box input::placeholder{color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box .black-text{color:#000}::ng-deep .configure-resolution-table{border-radius:.25rem;border:1px solid #f2f2f5;margin-bottom:1.5rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0}::ng-deep .configure-resolution-table .table-header .table-column{color:#787a8c!important;line-height:.75rem!important;min-height:2rem!important}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .configure-resolution-table .table-row:last-of-type .table-column,::ng-deep .configure-resolution-table .table-row:only-child .table-column{border-bottom:none}::ng-deep .configure-resolution-table .table-row .table-column{border-bottom:1px solid #f2f2f5;color:#000;min-height:3.25rem;position:relative;width:100%}::ng-deep .configure-resolution-table .table-row .table-column i.info{cursor:pointer}::ng-deep .configure-resolution-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .configure-resolution-table .table-row .table-column.serial .sr-no{width:1rem;height:3.25rem}::ng-deep .configure-resolution-table .table-row .table-column.stage-name{width:calc(100% - 37rem);min-width:calc(100% - 37rem)}::ng-deep .configure-resolution-table .table-row .table-column.stage-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.status{width:10rem;min-width:10rem}::ng-deep .configure-resolution-table .table-row .table-column.status .value span{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee{width:15rem;min-width:15rem}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box{border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .value{color:#a9aab6}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .arrow{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box{background:#f9f9fa;border-radius:.25rem;border:1px solid #cdced6;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box .value-chip{background:#fff;border-radius:.125rem;border:1px solid #f4f8ff;box-shadow:0 0 2px #1e5dd326;color:#000;height:1.5rem;max-width:9.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box button.edit-btn{background:transparent;border-radius:0;border:none}::ng-deep .configure-resolution-table .table-row .table-column.deadline{width:10rem;min-width:10rem}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i6.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i9.AssigneeComponent, selector: "app-assignee", inputs: ["assigneeList", "activeAssignee", "payload"], outputs: ["closeEvent", "selectedAssigneeEvent"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
73
236
|
}
|
|
74
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DueDateComponent, decorators: [{
|
|
75
238
|
type: Component,
|
|
76
|
-
args: [{ selector: 'app-due-date', template: "<div class=\"configure-resolution\" [class.animate]=\"animation\">\r\n <div\r\n class=\"configure-resolution-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 Configure Resolution Deadline & Stage Details\r\n </div>\r\n </div>\r\n <div class=\"configure-resolution-body\">\r\n <div class=\"configure-resolution-body-inner\">\r\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\r\n <app-no-data\r\n *ngIf=\"false\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\r\n \"\r\n [noDataText]=\"'No data to display'\"\r\n ></app-no-data>\r\n\r\n <ng-container>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3 vx-mb-3\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"{{\r\n dueDateTexts.case_details.due_date.deadline_placeholder\r\n }}\"\r\n (click)=\"openDatePicker()\"\r\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"dueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\r\n >\r\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\r\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\r\n [appTooltip]=\"\r\n 'If enabled, this option allows the assignee to revisit and reopen a previously completed stage. The stage will be reset, and the assigned user will need to complete it again.'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div> -->\r\n </div>\r\n <div class=\"configure-resolution-table\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n STAGE NAME\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n TRANSITION STATUS\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.transition_status\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n ASSIGNEE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.assignee\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center deadline\"\r\n >\r\n DEADLINE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.deadline\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div class=\"table-row\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\r\n [appTooltip]=\"'1'\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n 1\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n <div\r\n class=\"value vx-fs-13 vx-pr-2\"\r\n [appTooltip]=\"'Communication and Reporting'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n Communication and Reporting\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n <div class=\"value vx-fs-12\">\r\n In Progress<br /><span class=\"vx-mr-1\">To</span>Closed\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n <div\r\n *ngIf=\"true\"\r\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\r\n >\r\n <div class=\"value vx-fs-13\">Select a User</div>\r\n <i class=\"icons arrow vx-fs-12\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"false\"\r\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\r\n >\r\n <div\r\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\r\n [appTooltip]=\"'Samantha Jones'\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n Samantha Jones\r\n </div>\r\n <button\r\n class=\"edit-btn vx-fs-11 vx-fw-500 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-fs-12 vx-txt-blue vx-mr-1\"></i\r\n >EDIT\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\r\n >\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\r\n [class.disabled]=\"true\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n value=\"30 Dec 2024\"\r\n (click)=\"openDatePicker()\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false; closeDatePicker($event)\r\n \"\r\n [config]=\"dateConfig\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n EMAIL REMINDER CONFIGURATION\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div class=\"divider vx-mb-2\"></div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n REMINDER EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send regular email reminders to the assignee\r\n </div>\r\n <input type=\"number\" value=\"5\" />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the stage deadline.\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n ESCALATION EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send email escalation to the Case Owner\r\n </div>\r\n <input type=\"number\" value=\"2\" />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the overall case\r\n deadline, if the case is still open.\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <app-floating-bar (closeList)=\"closeDueDate()\"></app-floating-bar>\r\n </div>\r\n</div>\r\n", 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 .configure-resolution{background:#fff;position:fixed;inset:0 500px 0 0;z-index:1}::ng-deep .configure-resolution:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .configure-resolution.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .configure-resolution-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .configure-resolution-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .configure-resolution-body-inner{height:calc(100% - 3rem);padding:0 2rem 1rem 0;width:calc(100% + 2rem);overflow-y:auto;scrollbar-width:thin}::ng-deep .configure-resolution-body-inner .divider{background:#e3e3e9;width:100%;height:1px}::ng-deep .configure-resolution-body .label-top .required{color:#c7381b}::ng-deep .configure-resolution-body .toggle-area{cursor:pointer}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch{order:1;width:24px!important;min-width:24px!important;height:16px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-box{background:#cdced6!important;border:1px solid #cdced6!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-ball{height:12px!important;width:12px!important;border:none!important;left:2px!important;top:2px!important;bottom:2px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box{background:#34aa44!important;border-color:#34aa44!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box .switch-ball{left:10px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .value{order:2;color:#000!important;cursor:pointer;font-size:11px!important;margin-left:.5rem;width:unset!important}::ng-deep .configure-resolution-body .toggle-area i.info{cursor:pointer}::ng-deep .configure-resolution-body .case-calendar{background:#fff;border-radius:.25rem;height:2.5rem}::ng-deep .configure-resolution-body .case-calendar-inner{position:relative;width:100%}::ng-deep .configure-resolution-body .case-calendar-inner input{background:transparent;border-radius:.25rem;border:1px solid #cdced6;color:#747576;font-size:13px;font-weight:400;height:2.5rem;line-height:2.5rem;padding:0 .75rem 0 2rem;outline:none;width:100%;transition:all .2s ease-in-out}::ng-deep .configure-resolution-body .case-calendar-inner input::placeholder{color:#a9aab6}::ng-deep .configure-resolution-body .case-calendar-inner input:hover,::ng-deep .configure-resolution-body .case-calendar-inner input:focus{border-color:#1e5dd3}::ng-deep .configure-resolution-body .case-calendar-inner i{display:flex;justify-content:center;align-items:center;height:.75rem;width:.75rem;position:absolute;left:.75rem;top:.125rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner input,::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner i{color:#a9aab6}::ng-deep .configure-resolution-body .email-configure-box{border-radius:.25rem;border:1px solid #dbdbdb;color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box input{-moz-appearance:textfield;border-radius:.25rem;border:1px solid #dbdbdb;color:#343952;display:inline-block;font-size:13px;text-align:center;width:2.25rem;height:1.75rem;padding:.125rem;outline:none}::ng-deep .configure-resolution-body .email-configure-box input::-webkit-inner-spin-button,::ng-deep .configure-resolution-body .email-configure-box input::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .configure-resolution-body .email-configure-box input::placeholder{color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box .black-text{color:#000}::ng-deep .configure-resolution-table{border-radius:.25rem;border:1px solid #f2f2f5;margin-bottom:1.5rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0}::ng-deep .configure-resolution-table .table-header .table-column{color:#787a8c!important;line-height:.75rem!important;min-height:2rem!important}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .configure-resolution-table .table-row:last-of-type .table-column,::ng-deep .configure-resolution-table .table-row:only-child .table-column{border-bottom:none}::ng-deep .configure-resolution-table .table-row .table-column{border-bottom:1px solid #f2f2f5;color:#000;min-height:3.25rem;position:relative;width:100%}::ng-deep .configure-resolution-table .table-row .table-column i.info{cursor:pointer}::ng-deep .configure-resolution-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .configure-resolution-table .table-row .table-column.serial .sr-no{width:1rem;height:3.25rem}::ng-deep .configure-resolution-table .table-row .table-column.stage-name{width:calc(100% - 37rem);min-width:calc(100% - 37rem)}::ng-deep .configure-resolution-table .table-row .table-column.stage-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.status{width:10rem;min-width:10rem}::ng-deep .configure-resolution-table .table-row .table-column.status .value span{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee{width:15rem;min-width:15rem}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box{border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .value{color:#a9aab6}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .arrow{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box{background:#f9f9fa;border-radius:.25rem;border:1px solid #cdced6;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box .value-chip{background:#fff;border-radius:.125rem;border:1px solid #f4f8ff;box-shadow:0 0 2px #1e5dd326;color:#000;height:1.5rem;max-width:9.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box button.edit-btn{background:transparent;border-radius:0;border:none}::ng-deep .configure-resolution-table .table-row .table-column.deadline{width:10rem;min-width:10rem}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"] }]
|
|
77
|
-
}], propDecorators: {
|
|
78
|
-
type: Output
|
|
79
|
-
}], datePicker: [{
|
|
239
|
+
args: [{ selector: 'app-due-date', template: "<div class=\"configure-resolution\" [class.animate]=\"animation\">\r\n <div\r\n class=\"configure-resolution-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 Configure Resolution Deadline & Stage Details\r\n </div>\r\n </div>\r\n <div class=\"configure-resolution-body\">\r\n <div class=\"configure-resolution-body-inner\">\r\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\r\n <app-no-data\r\n *ngIf=\"false\"\r\n [noDataImage]=\"\r\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\r\n \"\r\n [noDataText]=\"'No data to display'\"\r\n ></app-no-data>\r\n\r\n <ng-container>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3 vx-mb-3\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"{{\r\n dueDateTexts.case_details.due_date.deadline_placeholder\r\n }}\"\r\n (click)=\"openDatePicker()\"\r\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"dueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\r\n {{ dueDateTexts.errorMessage.dueDate }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\r\n >\r\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\r\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\r\n [appTooltip]=\"\r\n 'If enabled, this option allows the assignee to revisit and reopen a previously completed stage. The stage will be reset, and the assigned user will need to complete it again.'\r\n \"\r\n placement=\"bottom-right\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div> -->\r\n </div>\r\n <div class=\"configure-resolution-table\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n STAGE NAME\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n TRANSITION STATUS\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.transition_status\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n >\r\n ASSIGNEE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.assignee\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center deadline\"\r\n >\r\n DEADLINE\r\n <i\r\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\r\n [appTooltip]=\"helperText.deadline\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"white\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n *ngFor=\"\r\n let data of workflowDetails?.stages_assignees;\r\n let i = index\r\n \"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\r\n [appTooltip]=\"i + 1\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + 1 }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\r\n >\r\n <div\r\n class=\"value vx-fs-13 vx-pr-2\"\r\n [appTooltip]=\"data?.name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ data?.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\r\n >\r\n <div class=\"value vx-fs-12\">\r\n {{ data?.status_transition?.fromName }}<br /><span\r\n class=\"vx-mr-1\"\r\n >To</span\r\n >{{ data?.status_transition?.toName }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\r\n (click)=\"activateSelector(true, i)\"\r\n >\r\n <div\r\n *ngIf=\"!assigneeData[i]?.length\"\r\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\r\n >\r\n <div class=\"value vx-fs-13\">Select a User</div>\r\n <i class=\"icons arrow vx-fs-12\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"assigneeData[i]?.length > 0\"\r\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\r\n >\r\n <div\r\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\r\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ assigneeData[i][0]?.member_name }}\r\n </div>\r\n <button\r\n (click)=\"activateSelector(true, i)\"\r\n class=\"edit-btn vx-fs-11 vx-fw-500 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-fs-12 vx-txt-blue vx-mr-1\"></i\r\n >EDIT\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\r\n >\r\n <div\r\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\r\n [class.disabled]=\"true\"\r\n >\r\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n value=\"{{ data?.due_date | date : 'dd MMM yyyy' }}\"\r\n (click)=\"openDatePicker()\"\r\n id=\"effective-date\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false; closeDatePicker($event)\r\n \"\r\n [config]=\"dateConfig\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"showAssigneeError\"\r\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\r\n >\r\n {{ dueDateTexts.errorMessage.stageAssignee }}\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n EMAIL REMINDER CONFIGURATION\r\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\r\n </div>\r\n <div class=\"divider vx-mb-2\"></div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n REMINDER EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send regular email reminders to the assignee\r\n </div>\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"emailReminder\"\r\n onkeydown=\"return event.key !== '.'\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n (change)=\"onInputChange()\"\r\n />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the stage deadline.\r\n </div>\r\n </div>\r\n <div\r\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\r\n >\r\n ESCALATION EMAIL\r\n </div>\r\n <div\r\n class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\r\n >\r\n <div class=\"vx-fs-13 vx-mr-1\">\r\n Send email escalation to the Case Owner\r\n </div>\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"escalationEmail\"\r\n onkeydown=\"return event.key !== '.'\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n (change)=\"onInputChange()\"\r\n />\r\n <div class=\"vx-fs-13 vx-ml-1\">\r\n <span class=\"black-text\">days</span> before the overall case\r\n deadline, if the case is still open.\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <app-floating-bar\r\n (closeList)=\"closeDueDate()\"\r\n (closeEvent)=\"saveCaseResolutionDeadline()\"\r\n ></app-floating-bar>\r\n </div>\r\n</div>\r\n<app-assignee\r\n *ngIf=\"assigneeClicked\"\r\n [payload]=\"payload\"\r\n [assigneeList]=\"assigneeList\"\r\n [activeAssignee]=\"activeAssignee\"\r\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\r\n (closeEvent)=\"activateSelector(false)\"\r\n></app-assignee>\r\n", 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 .configure-resolution{background:#fff;position:fixed;inset:0 500px 0 0;z-index:1}::ng-deep .configure-resolution:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .configure-resolution.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .configure-resolution-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .configure-resolution-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .configure-resolution-body-inner{height:calc(100% - 3rem);padding:0 2rem 1rem 0;width:calc(100% + 2rem);overflow-y:auto;scrollbar-width:thin}::ng-deep .configure-resolution-body-inner .divider{background:#e3e3e9;width:100%;height:1px}::ng-deep .configure-resolution-body .label-top .required{color:#c7381b}::ng-deep .configure-resolution-body .errorMsg{color:#a82a1d}::ng-deep .configure-resolution-body .toggle-area{cursor:pointer}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch{order:1;width:24px!important;min-width:24px!important;height:16px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-box{background:#cdced6!important;border:1px solid #cdced6!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch .switch-ball{height:12px!important;width:12px!important;border:none!important;left:2px!important;top:2px!important;bottom:2px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box{background:#34aa44!important;border-color:#34aa44!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .switch input:checked+span.switch-box .switch-ball{left:10px!important}::ng-deep .configure-resolution-body .toggle-area app-cs-switch .cs-switch .value{order:2;color:#000!important;cursor:pointer;font-size:11px!important;margin-left:.5rem;width:unset!important}::ng-deep .configure-resolution-body .toggle-area i.info{cursor:pointer}::ng-deep .configure-resolution-body .case-calendar{background:#fff;border-radius:.25rem;height:2.5rem}::ng-deep .configure-resolution-body .case-calendar-inner{position:relative;width:100%}::ng-deep .configure-resolution-body .case-calendar-inner input{background:transparent;border-radius:.25rem;border:1px solid #cdced6;color:#747576;font-size:13px;font-weight:400;height:2.5rem;line-height:2.5rem;padding:0 .75rem 0 2rem;outline:none;width:100%;transition:all .2s ease-in-out}::ng-deep .configure-resolution-body .case-calendar-inner input::placeholder{color:#a9aab6}::ng-deep .configure-resolution-body .case-calendar-inner input:hover,::ng-deep .configure-resolution-body .case-calendar-inner input:focus{border-color:#1e5dd3}::ng-deep .configure-resolution-body .case-calendar-inner i{display:flex;justify-content:center;align-items:center;height:.75rem;width:.75rem;position:absolute;left:.75rem;top:.125rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner input,::ng-deep .configure-resolution-body .case-calendar.disabled .case-calendar-inner i{color:#a9aab6}::ng-deep .configure-resolution-body .email-configure-box{border-radius:.25rem;border:1px solid #dbdbdb;color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box input{-moz-appearance:textfield;border-radius:.25rem;border:1px solid #dbdbdb;color:#343952;display:inline-block;font-size:13px;text-align:center;width:2.25rem;height:1.75rem;padding:.125rem;outline:none}::ng-deep .configure-resolution-body .email-configure-box input::-webkit-inner-spin-button,::ng-deep .configure-resolution-body .email-configure-box input::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .configure-resolution-body .email-configure-box input::placeholder{color:#787a8c}::ng-deep .configure-resolution-body .email-configure-box .black-text{color:#000}::ng-deep .configure-resolution-table{border-radius:.25rem;border:1px solid #f2f2f5;margin-bottom:1.5rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0}::ng-deep .configure-resolution-table .table-header .table-column{color:#787a8c!important;line-height:.75rem!important;min-height:2rem!important}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .configure-resolution-table .table-row:last-of-type .table-column,::ng-deep .configure-resolution-table .table-row:only-child .table-column{border-bottom:none}::ng-deep .configure-resolution-table .table-row .table-column{border-bottom:1px solid #f2f2f5;color:#000;min-height:3.25rem;position:relative;width:100%}::ng-deep .configure-resolution-table .table-row .table-column i.info{cursor:pointer}::ng-deep .configure-resolution-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .configure-resolution-table .table-row .table-column.serial .sr-no{width:1rem;height:3.25rem}::ng-deep .configure-resolution-table .table-row .table-column.stage-name{width:calc(100% - 37rem);min-width:calc(100% - 37rem)}::ng-deep .configure-resolution-table .table-row .table-column.stage-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.status{width:10rem;min-width:10rem}::ng-deep .configure-resolution-table .table-row .table-column.status .value span{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee{width:15rem;min-width:15rem}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box{border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .value{color:#a9aab6}::ng-deep .configure-resolution-table .table-row .table-column.assignee .select-box .arrow{color:#787a8c}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box{background:#f9f9fa;border-radius:.25rem;border:1px solid #cdced6;height:2.5rem;width:100%}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box .value-chip{background:#fff;border-radius:.125rem;border:1px solid #f4f8ff;box-shadow:0 0 2px #1e5dd326;color:#000;height:1.5rem;max-width:9.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .configure-resolution-table .table-row .table-column.assignee .after-select-box button.edit-btn{background:transparent;border-radius:0;border:none}::ng-deep .configure-resolution-table .table-row .table-column.deadline{width:10rem;min-width:10rem}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"] }]
|
|
240
|
+
}], ctorParameters: function () { return [{ type: i1.CommonService }, { type: i2.FrequencyService }]; }, propDecorators: { datePicker: [{
|
|
80
241
|
type: ViewChild,
|
|
81
242
|
args: ['datePicker']
|
|
82
|
-
}],
|
|
243
|
+
}], animation: [{
|
|
83
244
|
type: ViewChild,
|
|
84
245
|
args: ['datePicker', { read: ElementRef, static: false }]
|
|
85
246
|
}], payload: [{
|
|
86
247
|
type: Input
|
|
87
248
|
}], dueDate: [{
|
|
88
249
|
type: Input
|
|
250
|
+
}], workflowDetails: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], userList: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], groupList: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], initialSelection: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], closeDueDateResolution: [{
|
|
259
|
+
type: Output
|
|
260
|
+
}], closeDueDateEvent: [{
|
|
261
|
+
type: Output
|
|
262
|
+
}], documentClick: [{
|
|
263
|
+
type: HostListener,
|
|
264
|
+
args: ['document:click', ['$event']]
|
|
89
265
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7QUFPcEUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1ZLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlqQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHO1lBQ1gsZUFBZSxFQUFFLElBQUk7WUFDckIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsZUFBZSxFQUFFLElBQUk7WUFDckIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQztRQUVGLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxXQUFXLENBQUM7S0FzRDFCO0lBakRDLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU87U0FDUjtRQUNELElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxVQUFVLEdBQUc7Z0JBQ2YsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2FBQ04sQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLEdBQUcsU0FBUyxJQUFJLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQztTQUMzRDtRQUNELElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7K0dBckVVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLGtWQUlNLFVBQVUsNkJDdEI3Qywrb1hBMlJBOzs0RkR6UWEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7OEJBS2QsaUJBQWlCO3NCQUExQixNQUFNO2dCQUVrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBY25ELE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFJFUE9SVF9DQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3JlcG9ydC1jYXNlLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEhFTFBFUl9URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3JlcG9ydC1jYXNlLmNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kdWUtZGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R1ZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kdWUtZGF0ZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHVlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGNsb3NlRHVlRGF0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcclxuICBkYXRlUGlja2VyUG9wVXAhOiBFbGVtZW50UmVmO1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ0REIE1NIFlZWVknLFxyXG4gICAgdW5TZWxlY3RPbkNsaWNrOiB0cnVlLFxyXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxyXG4gICAgb3Blbk9uRm9jdXM6IGZhbHNlLFxyXG4gIH07XHJcbiAgY29tbW9uU2VydmljZTogYW55O1xyXG4gIGR1ZURhdGVUZXh0cyA9IFJFUE9SVF9DQVNFO1xyXG4gIGhlbHBlclRleHQgPSBIRUxQRVJfVEVYVDtcclxuXHJcbiAgQElucHV0KCkgcGF5bG9hZDogYW55O1xyXG4gIEBJbnB1dCgpIGR1ZURhdGU6IGFueTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQsICdwYXlsb2FkZHVlZGF0ZScpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjbG9zZXMgdGhlIGRhdGUgcGlja2VyIGZyb20gcG9saWN5IGZvcm1cclxuICAgKi9cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIWV2dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZXZ0Py5kYXRlPy4kZCkge1xyXG4gICAgICBsZXQgbW9udGhBcnJheSA9IFtcclxuICAgICAgICAnSmFuJyxcclxuICAgICAgICAnRmViJyxcclxuICAgICAgICAnTWFyJyxcclxuICAgICAgICAnQXByJyxcclxuICAgICAgICAnSnVuJyxcclxuICAgICAgICAnSnVsJyxcclxuICAgICAgICAnQXVnJyxcclxuICAgICAgICAnU2VwJyxcclxuICAgICAgICAnT2N0JyxcclxuICAgICAgICAnTm92JyxcclxuICAgICAgICAnRGVjJyxcclxuICAgICAgXTtcclxuICAgICAgY29uc3QgZGF0ZVZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RGF0ZSgpO1xyXG4gICAgICBjb25zdCBtb250aFZhbHVlID0gbW9udGhBcnJheVtuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXRNb250aCgpXTtcclxuICAgICAgY29uc3QgeWVhclZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgZGF0ZVN0ciA9IGAke2RhdGVWYWx1ZX0gJHttb250aFZhbHVlfSAke3llYXJWYWx1ZX1gO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcclxuICAgICAgdGhpcy5kdWVEYXRlID0gZXZ0Py5kYXRlPy4kZDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEdWVEYXRlKCkge1xyXG4gICAgdGhpcy5jbG9zZUR1ZURhdGVFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvblwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb24taGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgIENvbmZpZ3VyZSBSZXNvbHV0aW9uIERlYWRsaW5lICYgU3RhZ2UgRGV0YWlsc1xyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvbi1ib2R5LWlubmVyXCI+XHJcbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImZhbHNlXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgKm5nSWY9XCJmYWxzZVwiXHJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9zZWFyY2gtZGF0YS5zdmcnXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICAgID48L2FwcC1uby1kYXRhPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNQRUNJRlkgVEhFIERFQURMSU5FIFRPIENMT1NFIFRISVMgQ0FTRVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNiB2eC1mdy00MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiY2FzZS1jYWxlbmRhciB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXB0LTMgdngtcGItMyB2eC1tYi0zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS1jYWxlbmRhci1pbm5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgICAgIGR1ZURhdGVUZXh0cy5jYXNlX2RldGFpbHMuZHVlX2RhdGUuZGVhZGxpbmVfcGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJkdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgIGlkPVwiZWZmZWN0aXZlLWRhdGVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7IGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZHVlRGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LW1iLTFcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJsYWJlbC10b3AgdngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC00IHZ4LXR0LXVwcGVyY2FzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIENPTkZJR1VSRSBERUFETElORSAmIEFTU0lHTkVFIEZPUiBFQUNIIFNUQUdFIElOIFRIRSBXT1JLRkxPV1xyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkIHZ4LWZzLTE2IHZ4LWZ3LTQwMFwiPio8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRvZ2dsZS1hcmVhIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1zd2l0Y2g+QWxsb3cgUmVvcGVuaW5nIG9mIFByZXZpb3VzIFN0YWdlPC9hcHAtY3Mtc3dpdGNoPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgaW5mbyB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0yXCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICdJZiBlbmFibGVkLCB0aGlzIG9wdGlvbiBhbGxvd3MgdGhlIGFzc2lnbmVlIHRvIHJldmlzaXQgYW5kIHJlb3BlbiBhIHByZXZpb3VzbHkgY29tcGxldGVkIHN0YWdlLiBUaGUgc3RhZ2Ugd2lsbCBiZSByZXNldCwgYW5kIHRoZSBhc3NpZ25lZCB1c2VyIHdpbGwgbmVlZCB0byBjb21wbGV0ZSBpdCBhZ2Fpbi4nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvbi10YWJsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgI1xyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzdGFnZS1uYW1lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBTVEFHRSBOQU1FXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YXR1c1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgVFJBTlNJVElPTiBTVEFUVVNcclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgaW5mbyB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaGVscGVyVGV4dC50cmFuc2l0aW9uX3N0YXR1c1wiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYXNzaWduZWVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEFTU0lHTkVFXHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMVwiXHJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImhlbHBlclRleHQuYXNzaWduZWVcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGRlYWRsaW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBERUFETElORVxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTFcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJoZWxwZXJUZXh0LmRlYWRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiICpuZ0Zvcj1cImxldCBkYXRhIG9mIFsxLCAxLCAxLCAxLCAxLCAxLCAxXVwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vIHZ4LWZzLTEzIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInMSdcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgMVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc3RhZ2UtbmFtZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIHZ4LWZzLTEzIHZ4LXByLTJcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInQ29tbXVuaWNhdGlvbiBhbmQgUmVwb3J0aW5nJ1wiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uIGFuZCBSZXBvcnRpbmdcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YXR1c1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgIEluIFByb2dyZXNzPGJyIC8+PHNwYW4gY2xhc3M9XCJ2eC1tci0xXCI+VG88L3NwYW4+Q2xvc2VkXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhc3NpZ25lZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1ib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtMyB2eC1wci0zXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEzXCI+U2VsZWN0IGEgVXNlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGFycm93IHZ4LWZzLTEyXCI+JiN4ZTllODs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC0zIHZ4LXByLTJcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZS1jaGlwIHZ4LWZzLTExIHZ4LXBsLTIgdngtcHItMiB2eC1saC02XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2FtYW50aGEgSm9uZXMnXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIFNhbWFudGhhIEpvbmVzXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1yLTFcIj4mI3hlOWJhOzwvaVxyXG4gICAgICAgICAgICAgICAgICAgID5FRElUXHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgZGVhZGxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXNlLWNhbGVuZGFyIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcHQtMyB2eC1wYi0zXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS1jYWxlbmRhci1pbm5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIzMCBEZWMgMjAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cImVmZmVjdGl2ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7IGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXHJcbiAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEVNQUlMIFJFTUlOREVSIENPTkZJR1VSQVRJT05cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTYgdngtZnctNDAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlciB2eC1tYi0yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJsYWJlbC10b3AgdngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC00IHZ4LW1iLTEgdngtdHQtdXBwZXJjYXNlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBSRU1JTkRFUiBFTUFJTFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZW1haWwtY29uZmlndXJlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWZsZXgtd3JhcCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1iLTJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1tci0xXCI+XHJcbiAgICAgICAgICAgIFNlbmQgcmVndWxhciBlbWFpbCByZW1pbmRlcnMgdG8gdGhlIGFzc2lnbmVlXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgdmFsdWU9XCI1XCIgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1tbC0xXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxhY2stdGV4dFwiPmRheXM8L3NwYW4+IGJlZm9yZSB0aGUgc3RhZ2UgZGVhZGxpbmUuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEVTQ0FMQVRJT04gRU1BSUxcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImVtYWlsLWNvbmZpZ3VyZS1ib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1mbGV4LXdyYXAgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tYi0yXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbXItMVwiPlxyXG4gICAgICAgICAgICBTZW5kIGVtYWlsIGVzY2FsYXRpb24gdG8gdGhlIENhc2UgT3duZXJcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiB2YWx1ZT1cIjJcIiAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LW1sLTFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibGFjay10ZXh0XCI+ZGF5czwvc3Bhbj4gYmVmb3JlIHRoZSBvdmVyYWxsIGNhc2VcclxuICAgICAgICAgICAgZGVhZGxpbmUsIGlmIHRoZSBjYXNlIGlzIHN0aWxsIG9wZW4uXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtZmxvYXRpbmctYmFyIChjbG9zZUxpc3QpPVwiY2xvc2VEdWVEYXRlKClcIj48L2FwcC1mbG9hdGluZy1iYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsR0FDaEIsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFVL0MsTUFBTSxPQUFPLGdCQUFnQjtJQWdDM0IsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQztRQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztJQUN6RSxDQUFDO0lBS0QsWUFDVSxpQkFBZ0MsRUFDaEMsZ0JBQWtDO1FBRGxDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZTtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEM1QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFV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Q1gsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLHlCQUF5QixDQUFDO1NBQ2xFO0lBQ0gsQ0FBQzsrR0EzUVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMGpCQUVNLFVBQVUsNkJDNUI3QyxvdWFBc1VBOzs0RkQ1U2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7bUlBS0MsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUV2QixTQUFTO3NCQURSLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQXlCbkQsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBTUksc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFrTlAsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gIFJFUE9SVF9DQVNFLFxyXG4gIEhFTFBFUl9URVhULFxyXG4gIEVNQUlMX1JFTUlOREVSUyxcclxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcclxuXHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kdWUtZGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R1ZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kdWUtZGF0ZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHVlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIGRhdGVQaWNrZXJQb3BVcCE6IEVsZW1lbnRSZWY7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBkYXRlQ29uZmlnOiBJRGF0ZVBpY2tlckNvbmZpZyA9IHtcclxuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ0REIE1NIFlZWVknLFxyXG4gICAgdW5TZWxlY3RPbkNsaWNrOiB0cnVlLFxyXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxyXG4gICAgb3Blbk9uRm9jdXM6IGZhbHNlLFxyXG4gICAgbWluOiAnJyxcclxuICB9O1xyXG4gIGNvbW1vblNlcnZpY2U6IGFueTtcclxuICBkdWVEYXRlVGV4dHMgPSBSRVBPUlRfQ0FTRTtcclxuICBoZWxwZXJUZXh0ID0gSEVMUEVSX1RFWFQ7XHJcbiAgYXNzaWduZWVDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXNzaWduZWVMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGFzc2lnbmVlRGF0YTogeyBba2V5OiBudW1iZXJdOiBhbnlbXSB9ID0ge307XHJcbiAgY3VycmVudFN0YWdlSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIGFjdGl2ZUFzc2lnbmVlOiBhbnlbXSA9IFtdO1xyXG4gIGVtYWlsUmVtaW5kZXI6IG51bWJlciA9IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcclxuICBlc2NhbGF0aW9uRW1haWw6IG51bWJlciA9IEVNQUlMX1JFTUlOREVSUy5lc2NhbGF0aW9uX2VtYWlsX3JlbWluZGVyO1xyXG4gIHNob3dFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dBc3NpZ25lZUVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueTtcclxuICBASW5wdXQoKSBkdWVEYXRlOiBhbnk7XHJcbiAgQElucHV0KCkgd29ya2Zsb3dEZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgdXNlckxpc3Q6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgZ3JvdXBMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNldCBpbml0aWFsU2VsZWN0aW9uKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZHVlRGF0ZSA9IHZhbHVlPy5yZXNvbHV0aW9uX2RlYWRsaW5lPy5kdWVfZGF0ZTtcclxuICAgIHRoaXMuZW1haWxSZW1pbmRlciA9IHZhbHVlPy5yZXNvbHV0aW9uX2RlYWRsaW5lPy5hc3NpZ25lZV9yZW1pbmRfYmVmb3JlO1xyXG4gICAgdGhpcy5lc2NhbGF0aW9uRW1haWwgPSB2YWx1ZT8ucmVzb2x1dGlvbl9kZWFkbGluZT8ub3duZXJfcmVtaW5kX2JlZm9yZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBjbG9zZUR1ZURhdGVSZXNvbHV0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUR1ZURhdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbW1vbkRhdGVTZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZUNvbmZpZy5taW4gPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZm9ybWF0RGF0ZSgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgdGhpcy5zZXRBc3NpZ25lZUxpc3QoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUVkaXRNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVFZGl0TW9kZSgpIHtcclxuICAgIGlmICghdGhpcy5wYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVzb2x1dGlvbl9kZWFkbGluZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGRlYWRsaW5lID0gdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmU7XHJcbiAgICB0aGlzLmluaXRpYWxpemVEZWFkbGluZVZhbHVlcyhkZWFkbGluZSk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTdGFnZUFzc2lnbmVlcyhkZWFkbGluZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVEZWFkbGluZVZhbHVlcyhkZWFkbGluZTogYW55KSB7XHJcbiAgICB0aGlzLmR1ZURhdGUgPSBkZWFkbGluZS5kdWVfZGF0ZSA/IG5ldyBEYXRlKGRlYWRsaW5lLmR1ZV9kYXRlKSA6IG51bGw7XHJcbiAgICB0aGlzLmVtYWlsUmVtaW5kZXIgPVxyXG4gICAgICBkZWFkbGluZS5hc3NpZ25lZV9yZW1pbmRfYmVmb3JlIHx8IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcclxuICAgIHRoaXMuZXNjYWxhdGlvbkVtYWlsID1cclxuICAgICAgZGVhZGxpbmUub3duZXJfcmVtaW5kX2JlZm9yZSB8fCBFTUFJTF9SRU1JTkRFUlMuZXNjYWxhdGlvbl9lbWFpbF9yZW1pbmRlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YWdlQXNzaWduZWVzKGRlYWRsaW5lOiBhbnkpIHtcclxuICAgIGlmICghZGVhZGxpbmU/LnN0YWdlc19hc3NpZ25lZXM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHN0YWdlQXNzaWduZWVNYXAgPSB0aGlzLmNyZWF0ZVN0YWdlQXNzaWduZWVNYXAoXHJcbiAgICAgIGRlYWRsaW5lLnN0YWdlc19hc3NpZ25lZXNcclxuICAgICk7XHJcbiAgICB0aGlzLm1hcFdvcmtmbG93U3RhZ2VzKHN0YWdlQXNzaWduZWVNYXApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTdGFnZUFzc2lnbmVlTWFwKHN0YWdlc0Fzc2lnbmVlczogYW55W10pOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcclxuICAgIHJldHVybiBuZXcgTWFwKFxyXG4gICAgICBzdGFnZXNBc3NpZ25lZXMubWFwKChzdGFnZTogYW55KSA9PiBbc3RhZ2U/LnN0YWdlX2lkLCBzdGFnZT8uYXNzaWduZWVfaWRdKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwV29ya2Zsb3dTdGFnZXMoc3RhZ2VBc3NpZ25lZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPikge1xyXG4gICAgdGhpcy53b3JrZmxvd0RldGFpbHM/LnN0YWdlc19hc3NpZ25lZXM/LmZvckVhY2goXHJcbiAgICAgICh3b3JrZmxvd1N0YWdlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBhc3NpZ25lZUlkID0gc3RhZ2VBc3NpZ25lZU1hcD8uZ2V0KHdvcmtmbG93U3RhZ2U/LnN0YWdlX2lkKTtcclxuICAgICAgICBpZiAoIWFzc2lnbmVlSWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgYXNzaWduZWUgPSB0aGlzLmFzc2lnbmVlTGlzdD8uZmluZChcclxuICAgICAgICAgIChhc3NpZ25lZTogYW55KSA9PiBhc3NpZ25lZT8uX2lkID09PSBhc3NpZ25lZUlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoYXNzaWduZWUpIHtcclxuICAgICAgICAgIHRoaXMuYXNzaWduZWVEYXRhW2luZGV4XSA9IFthc3NpZ25lZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjbG9zZXMgdGhlIGRhdGUgcGlja2VyIGZyb20gcG9saWN5IGZvcm1cclxuICAgKi9cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIWV2dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZXZ0Py5kYXRlPy4kZCkge1xyXG4gICAgICBsZXQgbW9udGhBcnJheSA9IFtcclxuICAgICAgICAnSmFuJyxcclxuICAgICAgICAnRmViJyxcclxuICAgICAgICAnTWFyJyxcclxuICAgICAgICAnQXByJyxcclxuICAgICAgICAnSnVuJyxcclxuICAgICAgICAnSnVsJyxcclxuICAgICAgICAnQXVnJyxcclxuICAgICAgICAnU2VwJyxcclxuICAgICAgICAnT2N0JyxcclxuICAgICAgICAnTm92JyxcclxuICAgICAgICAnRGVjJyxcclxuICAgICAgXTtcclxuICAgICAgY29uc3QgZGF0ZVZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RGF0ZSgpO1xyXG4gICAgICBjb25zdCBtb250aFZhbHVlID0gbW9udGhBcnJheVtuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXRNb250aCgpXTtcclxuICAgICAgY29uc3QgeWVhclZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgZGF0ZVN0ciA9IGAke2RhdGVWYWx1ZX0gJHttb250aFZhbHVlfSAke3llYXJWYWx1ZX1gO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcclxuICAgICAgdGhpcy5kdWVEYXRlID0gZXZ0Py5kYXRlPy4kZDtcclxuICAgICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEdWVEYXRlKCkge1xyXG4gICAgdGhpcy5jbG9zZUR1ZURhdGVFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbiwgc3RhZ2VJbmRleD86IG51bWJlcikge1xyXG4gICAgdGhpcy5hc3NpZ25lZUNsaWNrZWQgPSBhY3RpdmU7XHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0YWdlSW5kZXggPSBzdGFnZUluZGV4ID8/IC0xO1xyXG4gICAgICB0aGlzLmFjdGl2ZUFzc2lnbmVlID1cclxuICAgICAgICB0aGlzLmN1cnJlbnRTdGFnZUluZGV4ICE9PSAtMVxyXG4gICAgICAgICAgPyB0aGlzLmFzc2lnbmVlRGF0YVt0aGlzLmN1cnJlbnRTdGFnZUluZGV4XVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFzc2lnbmVlTGlzdCgpIHtcclxuICAgIGNvbnN0IGFzc2lnbmVlSWRzID0gdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXM7XHJcbiAgICB0aGlzLmFzc2lnbmVlTGlzdCA9IHRoaXMudXNlckxpc3RcclxuICAgICAgPy5maWx0ZXIoKHVzZXI6IGFueSkgPT4gYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Ll9pZCkpXHJcbiAgICAgID8ubWFwKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyR3JvdXBzID0gdGhpcy5ncm91cExpc3Q/LmZpbHRlcigoZ3JvdXA6IGFueSkgPT5cclxuICAgICAgICAgIHVzZXI/LnVzZXJncm91cF9pZD8uaW5jbHVkZXMoZ3JvdXA/Lmdyb3VwX2lkKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi51c2VyLFxyXG4gICAgICAgICAgYXNzb2NpYXRlZEdyb3VwczogdXNlckdyb3VwcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXNzaWduZWUoZXZlbnQ6IGFueVtdKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50U3RhZ2VJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5hc3NpZ25lZURhdGFbdGhpcy5jdXJyZW50U3RhZ2VJbmRleF0gPSBldmVudDtcclxuICAgIH1cclxuICAgIHRoaXMuYXNzaWduZWVDbGlja2VkID0gZmFsc2U7XHJcbiAgICBpZiAoZXZlbnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zaG93QXNzaWduZWVFcnJvciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZUNhc2VSZXNvbHV0aW9uRGVhZGxpbmUoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNEdWVEYXRlVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuYXJlQXNzaWduZWVzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLnNob3dBc3NpZ25lZUVycm9yID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0Fzc2lnbmVlRXJyb3IgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0UGF5bG9hZCgpO1xyXG4gICAgdGhpcy5jbG9zZUR1ZURhdGVSZXNvbHV0aW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGlzRHVlRGF0ZVZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kdWVEYXRlO1xyXG4gIH1cclxuXHJcbiAgYXJlQXNzaWduZWVzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy53b3JrZmxvd0RldGFpbHM/LnN0YWdlc19hc3NpZ25lZXM/LmV2ZXJ5KFxyXG4gICAgICAoc3RhZ2U6IGFueSwgaW5kZXg6IG51bWJlcikgPT5cclxuICAgICAgICB0aGlzLmFzc2lnbmVlRGF0YVtpbmRleF0gJiYgdGhpcy5hc3NpZ25lZURhdGFbaW5kZXhdPy5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RHVlRGF0ZShkYXRlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWFkbGluZVJlbWluZGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lLmFzc2lnbmVlX3JlbWluZF9iZWZvcmUgPVxyXG4gICAgICB0aGlzLmVtYWlsUmVtaW5kZXI7XHJcbiAgICB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cucmVzb2x1dGlvbl9kZWFkbGluZS5vd25lcl9yZW1pbmRfYmVmb3JlID1cclxuICAgICAgdGhpcy5lc2NhbGF0aW9uRW1haWw7XHJcbiAgfVxyXG5cclxuICBzZXRTdGFnZXNBc3NpZ25lZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMud29ya2Zsb3dEZXRhaWxzPy5zdGFnZXNfYXNzaWduZWVzXHJcbiAgICAgIC5tYXAoKHN0YWdlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBhc3NpZ25lZURhdGEgPSB0aGlzLmFzc2lnbmVlRGF0YVtpbmRleF07XHJcbiAgICAgICAgcmV0dXJuIGFzc2lnbmVlRGF0YVxyXG4gICAgICAgICAgPyB0aGlzLmNyZWF0ZVN0YWdlQXNzaWduZWUoc3RhZ2UsIGFzc2lnbmVlRGF0YSlcclxuICAgICAgICAgIDogbnVsbDtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVN0YWdlQXNzaWduZWUoc3RhZ2U6IGFueSwgYXNzaWduZWVEYXRhOiBhbnlbXSk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdGFnZV9pZDogc3RhZ2U/LnN0YWdlX2lkIHx8ICcnLFxyXG4gICAgICBhc3NpZ25lZV9pZDogYXNzaWduZWVEYXRhWzBdPy5faWQgfHwgJycsXHJcbiAgICAgIGR1ZV9kYXRlOiBzdGFnZT8uZHVlX2RhdGUgfHwgJycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0UGF5bG9hZCgpIHtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLmZvcm1hdER1ZURhdGUodGhpcy5kdWVEYXRlKTtcclxuICAgIHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lLmR1ZV9kYXRlID0gZm9ybWF0dGVkRGF0ZTtcclxuICAgIHRoaXMuc2V0RGVhZGxpbmVSZW1pbmRlcnMoKTtcclxuICAgIGNvbnN0IHN0YWdlc0Fzc2lnbmVlcyA9IHRoaXMuc2V0U3RhZ2VzQXNzaWduZWVzKCk7XHJcbiAgICB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cucmVzb2x1dGlvbl9kZWFkbGluZS5zdGFnZXNfYXNzaWduZWVzID1cclxuICAgICAgc3RhZ2VzQXNzaWduZWVzO1xyXG4gICAgdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LndvcmtmbG93X2lkID0gdGhpcy53b3JrZmxvd0RldGFpbHM/Ll9pZDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGVQaWNrZXJPYmplY3QgPSB7XHJcbiAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgY2xhc3M6ICdlZmZlY3RpdmUtZGF0ZScsXHJcbiAgICAgIHBvcHVwOiB0aGlzLmRhdGVQaWNrZXJQb3BVcCxcclxuICAgICAgY29tcG9uZW50OiB0aGlzLmRhdGVQaWNrZXIsXHJcbiAgICAgIG92ZXJsYXk6IHRoaXMuZGF0ZVBpY2tlck92ZXJsYXksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jb21tb25EYXRlU2VydmljZS5oYW5kbGVEb2N1bWVudENsaWNrKGRhdGVQaWNrZXJPYmplY3QpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLmVtYWlsUmVtaW5kZXIgPT09IDApIHtcclxuICAgICAgdGhpcy5lbWFpbFJlbWluZGVyID0gRU1BSUxfUkVNSU5ERVJTLmVtYWlsX3JlbWluZGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZXNjYWxhdGlvbkVtYWlsID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZXNjYWxhdGlvbkVtYWlsID0gRU1BSUxfUkVNSU5ERVJTLmVzY2FsYXRpb25fZW1haWxfcmVtaW5kZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvblwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb24taGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgIENvbmZpZ3VyZSBSZXNvbHV0aW9uIERlYWRsaW5lICYgU3RhZ2UgRGV0YWlsc1xyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvbi1ib2R5LWlubmVyXCI+XHJcbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImZhbHNlXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgKm5nSWY9XCJmYWxzZVwiXHJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9zZWFyY2gtZGF0YS5zdmcnXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICAgID48L2FwcC1uby1kYXRhPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNQRUNJRlkgVEhFIERFQURMSU5FIFRPIENMT1NFIFRISVMgQ0FTRVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNiB2eC1mdy00MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiY2FzZS1jYWxlbmRhciB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXB0LTMgdngtcGItMyB2eC1tYi0zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS1jYWxlbmRhci1pbm5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgICAgIGR1ZURhdGVUZXh0cy5jYXNlX2RldGFpbHMuZHVlX2RhdGUuZGVhZGxpbmVfcGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJkdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgIGlkPVwiZWZmZWN0aXZlLWRhdGVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7IGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZHVlRGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiZXJyb3JNc2cgdngtZnMtMTEgdngtbGgtNCB2eC1tdC0xXCI+XHJcbiAgICAgICAgICB7eyBkdWVEYXRlVGV4dHMuZXJyb3JNZXNzYWdlLmR1ZURhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbWItMVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtdHQtdXBwZXJjYXNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQ09ORklHVVJFIERFQURMSU5FICYgQVNTSUdORUUgRk9SIEVBQ0ggU1RBR0UgSU4gVEhFIFdPUktGTE9XXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTYgdngtZnctNDAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidG9nZ2xlLWFyZWEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXN3aXRjaD5BbGxvdyBSZW9wZW5pbmcgb2YgUHJldmlvdXMgU3RhZ2U8L2FwcC1jcy1zd2l0Y2g+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTJcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxyXG4gICAgICAgICAgICAgICAgJ0lmIGVuYWJsZWQsIHRoaXMgb3B0aW9uIGFsbG93cyB0aGUgYXNzaWduZWUgdG8gcmV2aXNpdCBhbmQgcmVvcGVuIGEgcHJldmlvdXNseSBjb21wbGV0ZWQgc3RhZ2UuIFRoZSBzdGFnZSB3aWxsIGJlIHJlc2V0LCBhbmQgdGhlIGFzc2lnbmVkIHVzZXIgd2lsbCBuZWVkIHRvIGNvbXBsZXRlIGl0IGFnYWluLidcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLXRhYmxlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAjXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YWdlLW5hbWVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFNUQUdFIE5BTUVcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc3RhdHVzXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBUUkFOU0lUSU9OIFNUQVRVU1xyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTFcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJoZWxwZXJUZXh0LnRyYW5zaXRpb25fc3RhdHVzXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhc3NpZ25lZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQVNTSUdORUVcclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgaW5mbyB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaGVscGVyVGV4dC5hc3NpZ25lZVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgZGVhZGxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIERFQURMSU5FXHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMVwiXHJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImhlbHBlclRleHQuZGVhZGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgb2Ygd29ya2Zsb3dEZXRhaWxzPy5zdGFnZXNfYXNzaWduZWVzO1xyXG4gICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ubyB2eC1mcy0xMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YWdlLW5hbWVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMyB2eC1wci0yXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBkYXRhPy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzdGF0dXNcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBkYXRhPy5zdGF0dXNfdHJhbnNpdGlvbj8uZnJvbU5hbWUgfX08YnIgLz48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlRvPC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgID57eyBkYXRhPy5zdGF0dXNfdHJhbnNpdGlvbj8udG9OYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhc3NpZ25lZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcih0cnVlLCBpKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFhc3NpZ25lZURhdGFbaV0/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC0zIHZ4LXByLTNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTNcIj5TZWxlY3QgYSBVc2VyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTJcIj4mI3hlOWU4OzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImFzc2lnbmVlRGF0YVtpXT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC0zIHZ4LXByLTJcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZS1jaGlwIHZ4LWZzLTExIHZ4LXBsLTIgdngtcHItMiB2eC1saC02XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhc3NpZ25lZURhdGFbaV1bMF0/Lm1lbWJlcl9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2lnbmVlRGF0YVtpXVswXT8ubWVtYmVyX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcih0cnVlLCBpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1yLTFcIj4mI3hlOWJhOzwvaVxyXG4gICAgICAgICAgICAgICAgICAgID5FRElUXHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgZGVhZGxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXNlLWNhbGVuZGFyIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcHQtMyB2eC1wYi0zXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS1jYWxlbmRhci1pbm5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ7eyBkYXRhPy5kdWVfZGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZWZmZWN0aXZlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgI2RhdGVQaWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTsgY2xvc2VEYXRlUGlja2VyKCRldmVudClcclxuICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0Fzc2lnbmVlRXJyb3JcIlxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvck1zZyB2eC1mcy0xMSB2eC1saC00IHZ4LW10LTFcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGR1ZURhdGVUZXh0cy5lcnJvck1lc3NhZ2Uuc3RhZ2VBc3NpZ25lZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibGFiZWwtdG9wIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNCB2eC1tYi0xIHZ4LXR0LXVwcGVyY2FzZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgRU1BSUwgUkVNSU5ERVIgQ09ORklHVVJBVElPTlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNiB2eC1mdy00MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyIHZ4LW1iLTJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFJFTUlOREVSIEVNQUlMXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJlbWFpbC1jb25maWd1cmUtYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtZmxleC13cmFwIHZ4LXAtMiB2eC1wbC0zIHZ4LXByLTMgdngtbWItMlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LW1yLTFcIj5cclxuICAgICAgICAgICAgU2VuZCByZWd1bGFyIGVtYWlsIHJlbWluZGVycyB0byB0aGUgYXNzaWduZWVcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsUmVtaW5kZXJcIlxyXG4gICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5ICE9PSAnLidcIlxyXG4gICAgICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1tbC0xXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxhY2stdGV4dFwiPmRheXM8L3NwYW4+IGJlZm9yZSB0aGUgc3RhZ2UgZGVhZGxpbmUuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEVTQ0FMQVRJT04gRU1BSUxcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImVtYWlsLWNvbmZpZ3VyZS1ib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1mbGV4LXdyYXAgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tYi0yXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbXItMVwiPlxyXG4gICAgICAgICAgICBTZW5kIGVtYWlsIGVzY2FsYXRpb24gdG8gdGhlIENhc2UgT3duZXJcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVzY2FsYXRpb25FbWFpbFwiXHJcbiAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXkgIT09ICcuJ1wiXHJcbiAgICAgICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LW1sLTFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibGFjay10ZXh0XCI+ZGF5czwvc3Bhbj4gYmVmb3JlIHRoZSBvdmVyYWxsIGNhc2VcclxuICAgICAgICAgICAgZGVhZGxpbmUsIGlmIHRoZSBjYXNlIGlzIHN0aWxsIG9wZW4uXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtZmxvYXRpbmctYmFyXHJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VEdWVEYXRlKClcIlxyXG4gICAgICAoY2xvc2VFdmVudCk9XCJzYXZlQ2FzZVJlc29sdXRpb25EZWFkbGluZSgpXCJcclxuICAgID48L2FwcC1mbG9hdGluZy1iYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YXBwLWFzc2lnbmVlXHJcbiAgKm5nSWY9XCJhc3NpZ25lZUNsaWNrZWRcIlxyXG4gIFtwYXlsb2FkXT1cInBheWxvYWRcIlxyXG4gIFthc3NpZ25lZUxpc3RdPVwiYXNzaWduZWVMaXN0XCJcclxuICBbYWN0aXZlQXNzaWduZWVdPVwiYWN0aXZlQXNzaWduZWVcIlxyXG4gIChzZWxlY3RlZEFzc2lnbmVlRXZlbnQpPVwic2VsZWN0ZWRBc3NpZ25lZSgkZXZlbnQpXCJcclxuICAoY2xvc2VFdmVudCk9XCJhY3RpdmF0ZVNlbGVjdG9yKGZhbHNlKVwiXHJcbj48L2FwcC1hc3NpZ25lZT5cclxuIl19
|