vcomply-workflow-engine 6.1.16 → 6.1.18

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.
Files changed (21) hide show
  1. package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +25 -3
  2. package/esm2022/lib/report-a-case/components/due-date/due-date.component.mjs +19 -5
  3. package/esm2022/lib/report-a-case/components/report-date/report-date.component.mjs +3 -1
  4. package/esm2022/lib/report-a-case/constants/api.constants.mjs +3 -2
  5. package/esm2022/lib/report-a-case/constants/report-case.constants.mjs +2 -1
  6. package/esm2022/lib/report-a-case/report-case.module.mjs +5 -2
  7. package/esm2022/lib/report-a-case/services/report-a-case.service.mjs +7 -1
  8. package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +3 -3
  9. package/esm2022/lib/ui-kit/banner/banner.component.mjs +44 -0
  10. package/fesm2022/vcomply-workflow-engine.mjs +202 -114
  11. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  12. package/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.d.ts +7 -3
  13. package/lib/report-a-case/components/due-date/due-date.component.d.ts +7 -2
  14. package/lib/report-a-case/components/report-date/report-date.component.d.ts +2 -0
  15. package/lib/report-a-case/constants/api.constants.d.ts +1 -0
  16. package/lib/report-a-case/constants/report-case.constants.d.ts +1 -0
  17. package/lib/report-a-case/report-case.module.d.ts +22 -21
  18. package/lib/report-a-case/services/report-a-case.service.d.ts +1 -0
  19. package/lib/ui-kit/banner/banner.component.d.ts +8 -0
  20. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  21. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
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';
2
+ import * as dayjs from 'dayjs';
3
+ import { REPORT_CASE, HELPER_TEXT, EMAIL_REMINDERS, BANNER_CASE_RESOLUTION_DEADLINE_WARNING, } from '../../constants/report-case.constants';
3
4
  import { ASSETS } from '../../../constants/assets.constants';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../../../services/common.service";
@@ -11,6 +12,7 @@ import * as i6 from "ng2-date-picker";
11
12
  import * as i7 from "@angular/forms";
12
13
  import * as i8 from "../../../sharedComponents/v-loader/loader-inline/loader-inline.component";
13
14
  import * as i9 from "../assignee/assignee.component";
15
+ import * as i10 from "../../../ui-kit/banner/banner.component";
14
16
  export class DueDateComponent {
15
17
  set initialSelection(value) {
16
18
  this.dueDate = value?.resolution_deadline?.due_date;
@@ -44,14 +46,16 @@ export class DueDateComponent {
44
46
  this.escalationEmail = EMAIL_REMINDERS.escalation_email_reminder;
45
47
  this.showError = false;
46
48
  this.showAssigneeError = false;
49
+ this.CaseDeadlineWarning = BANNER_CASE_RESOLUTION_DEADLINE_WARNING;
47
50
  this.userList = [];
48
51
  this.groupList = [];
49
52
  this.mode = '';
53
+ this.min = '';
50
54
  this.closeDueDateResolution = new EventEmitter();
51
55
  this.closeDueDateEvent = new EventEmitter();
52
56
  }
53
57
  ngOnInit() {
54
- this.dateConfig.min = this.frequencyService.formatDate();
58
+ this.setMinDate();
55
59
  setTimeout(() => {
56
60
  this.animation = false;
57
61
  }, 300);
@@ -78,6 +82,14 @@ export class DueDateComponent {
78
82
  const stageAssigneeMap = this.createStageAssigneeMap(deadline.stages_assignees);
79
83
  this.mapWorkflowStages(stageAssigneeMap);
80
84
  }
85
+ setMinDate() {
86
+ if (this.min) {
87
+ this.dateConfig.min = dayjs(this.min);
88
+ }
89
+ else {
90
+ this.dateConfig.min = this.frequencyService.formatDate();
91
+ }
92
+ }
81
93
  createStageAssigneeMap(stagesAssignees) {
82
94
  return new Map(stagesAssignees.map((stage) => [stage?.stage_id, stage?.assignee_id]));
83
95
  }
@@ -286,11 +298,11 @@ export class DueDateComponent {
286
298
  }
287
299
  }
288
300
  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 }); }
289
- 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", mode: "mode", initialSelection: "initialSelection" }, outputs: { closeDueDateResolution: "closeDueDateResolution", closeDueDateEvent: "closeDueDateEvent" }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["deadlineDatePicker"], descendants: true }, { propertyName: "ASSETS", first: true, predicate: ["deadlineDatePicker"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"configure-resolution\">\n <div\n class=\"configure-resolution-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n Configure Resolution Deadline & Stage Details\n </div>\n </div>\n <div class=\"configure-resolution-body\">\n <div class=\"configure-resolution-body-inner\">\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n <app-no-data\n *ngIf=\"false\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n\n <ng-container>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"case-calendar vx-mb-3\">\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\n <input\n type=\"text\"\n readonly\n placeholder=\"{{\n dueDateTexts.case_details.due_date.deadline_placeholder\n }}\"\n (click)=\"openDatePicker()\"\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\n id=\"deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #deadlineDatePicker\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n [config]=\"dateConfig\"\n [(ngModel)]=\"dueDate\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n {{ dueDateTexts.errorMessage.dueDate }}\n </div>\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\n >\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\n [appTooltip]=\"\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.'\n \"\n placement=\"bottom-right\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div> -->\n </div>\n <div class=\"configure-resolution-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\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\"\n >\n #\n </div>\n <div\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\"\n >\n STAGE NAME\n </div>\n <div\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\"\n >\n TRANSITION STATUS\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.transition_status\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n ASSIGNEE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.assignee\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n DEADLINE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.deadline\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"\n let data of workflowDetails?.stages_assignees;\n let i = index\n \"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n >\n <div\n class=\"value vx-fs-13 vx-pr-2\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n >\n <div class=\"value vx-fs-12\">\n {{ data?.status_transition?.fromName }}<br /><span\n class=\"vx-mr-1\"\n >To</span\n >{{ data?.status_transition?.toName }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n (click)=\"activateSelector(true, i)\"\n >\n <div\n *ngIf=\"!assigneeData[i]?.length\"\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n >\n <div class=\"value vx-fs-13\">Select a User</div>\n <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n </div>\n <div\n *ngIf=\"assigneeData[i]?.length > 0\"\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\n >\n <div\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assigneeData[i][0]?.member_name }}\n </div>\n <button\n (click)=\"activateSelector(true, i)\"\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\"\n >\n <i class=\"icons vx-fs-12 vx-txt-blue vx-mr-1\">&#xe9ba;</i\n >EDIT\n </button>\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\n >\n <div\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\n >\n <div\n class=\"case-calendar-inner vx-d-flex vx-align-center\"\n [class.disabled]=\"true\"\n >\n <input\n type=\"text\"\n readonly\n value=\"{{ dueDate | date : 'dd MMM yyyy' }}\"\n (click)=\"openDatePicker()\"\n id=\"stage-deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #datePicker\n (onSelect)=\"\n datePickerOverlay = false; closeDatePicker($event)\n \"\n [config]=\"dateConfig\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"showAssigneeError\"\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n >\n {{ dueDateTexts.errorMessage.stageAssignee }}\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n EMAIL REMINDER CONFIGURATION\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"divider vx-mb-2\"></div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n REMINDER EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send regular email reminders to the assignee\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"emailReminder\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the stage deadline.\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n ESCALATION EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send email escalation to the Case Owner\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"escalationEmail\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the overall case\n deadline, if the case is still open.\n </div>\n </div>\n </ng-container>\n </div>\n <app-floating-bar\n (closeList)=\"closeDueDate()\"\n (closeEvent)=\"saveCaseResolutionDeadline()\"\n ></app-floating-bar>\n </div>\n</div>\n<app-assignee\n *ngIf=\"assigneeClicked\"\n [payload]=\"payload\"\n [assigneeList]=\"assigneeList\"\n [activeAssignee]=\"activeAssignee\"\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\n (closeEvent)=\"activateSelector(false)\"\n></app-assignee>\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}::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:.75rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar-inner.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar-inner.disabled input,::ng-deep .configure-resolution-body .case-calendar-inner.disabled 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{margin-bottom:.75rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0;border:1px solid #f2f2f5;border-bottom:1px solid #f2f2f5}::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-body{border-radius:0 0 .25rem .25rem;border:1px solid #f2f2f5;border-top:none}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative;border-bottom:1px solid #f2f2f5}::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" }] }); }
301
+ 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", mode: "mode", initialSelection: "initialSelection", min: "min" }, outputs: { closeDueDateResolution: "closeDueDateResolution", closeDueDateEvent: "closeDueDateEvent" }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["deadlineDatePicker"], descendants: true }, { propertyName: "ASSETS", first: true, predicate: ["deadlineDatePicker"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"configure-resolution\">\n <div\n class=\"configure-resolution-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n Configure Resolution Deadline & Stage Details\n </div>\n </div>\n <div class=\"configure-resolution-body\">\n <div class=\"configure-resolution-body-inner\">\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n <app-no-data\n *ngIf=\"false\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n\n <ng-container>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <app-banner *ngIf=\"mode === 'EDIT'\">\n <p banner>\n {{ CaseDeadlineWarning }}\n </p>\n </app-banner>\n <div class=\"case-calendar vx-mb-3\">\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\n <input\n type=\"text\"\n readonly\n placeholder=\"{{\n dueDateTexts.case_details.due_date.deadline_placeholder\n }}\"\n (click)=\"openDatePicker()\"\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\n id=\"deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #deadlineDatePicker\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n [config]=\"dateConfig\"\n [(ngModel)]=\"dueDate\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n {{ dueDateTexts.errorMessage.dueDate }}\n </div>\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\n >\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\n [appTooltip]=\"\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.'\n \"\n placement=\"bottom-right\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div> -->\n </div>\n <div class=\"configure-resolution-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\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\"\n >\n #\n </div>\n <div\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\"\n >\n STAGE NAME\n </div>\n <div\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\"\n >\n TRANSITION STATUS\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.transition_status\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n ASSIGNEE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.assignee\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n DEADLINE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.deadline\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"\n let data of workflowDetails?.stages_assignees;\n let i = index\n \"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n >\n <div\n class=\"value vx-fs-13 vx-pr-2\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n >\n <div class=\"value vx-fs-12\">\n {{ data?.status_transition?.fromName }}<br /><span\n class=\"vx-mr-1\"\n >To</span\n >{{ data?.status_transition?.toName }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n (click)=\"activateSelector(true, i)\"\n >\n <div\n *ngIf=\"!assigneeData[i]?.length\"\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n >\n <div class=\"value vx-fs-13\">Select a User</div>\n <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n </div>\n <div\n *ngIf=\"assigneeData[i]?.length > 0\"\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\n >\n <div\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assigneeData[i][0]?.member_name }}\n </div>\n <button\n (click)=\"activateSelector(true, i)\"\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\"\n >\n <i class=\"icons vx-fs-12 vx-txt-blue vx-mr-1\">&#xe9ba;</i\n >EDIT\n </button>\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\n >\n <div\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\n >\n <div\n class=\"case-calendar-inner vx-d-flex vx-align-center\"\n [class.disabled]=\"true\"\n >\n <input\n type=\"text\"\n readonly\n value=\"{{ dueDate | date : 'dd MMM yyyy' }}\"\n (click)=\"openDatePicker()\"\n id=\"stage-deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #datePicker\n (onSelect)=\"\n datePickerOverlay = false; closeDatePicker($event)\n \"\n [config]=\"dateConfig\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"showAssigneeError\"\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n >\n {{ dueDateTexts.errorMessage.stageAssignee }}\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n EMAIL REMINDER CONFIGURATION\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"divider vx-mb-2\"></div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n REMINDER EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send regular email reminders to the assignee\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"emailReminder\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the stage deadline.\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n ESCALATION EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send email escalation to the Case Owner\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"escalationEmail\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the overall case\n deadline, if the case is still open.\n </div>\n </div>\n </ng-container>\n </div>\n <app-floating-bar\n (closeList)=\"closeDueDate()\"\n (closeEvent)=\"saveCaseResolutionDeadline()\"\n ></app-floating-bar>\n </div>\n</div>\n<app-assignee\n *ngIf=\"assigneeClicked\"\n [payload]=\"payload\"\n [assigneeList]=\"assigneeList\"\n [activeAssignee]=\"activeAssignee\"\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\n (closeEvent)=\"activateSelector(false)\"\n></app-assignee>\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}::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:.75rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar-inner.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar-inner.disabled input,::ng-deep .configure-resolution-body .case-calendar-inner.disabled 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{margin-bottom:.75rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0;border:1px solid #f2f2f5;border-bottom:1px solid #f2f2f5}::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-body{border-radius:0 0 .25rem .25rem;border:1px solid #f2f2f5;border-top:none}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative;border-bottom:1px solid #f2f2f5}::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: "component", type: i10.BannerComponent, selector: "app-banner", inputs: ["icon", "bannerClass", "isCenter"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
290
302
  }
291
303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DueDateComponent, decorators: [{
292
304
  type: Component,
293
- args: [{ selector: 'app-due-date', template: "<div class=\"configure-resolution\">\n <div\n class=\"configure-resolution-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n Configure Resolution Deadline & Stage Details\n </div>\n </div>\n <div class=\"configure-resolution-body\">\n <div class=\"configure-resolution-body-inner\">\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n <app-no-data\n *ngIf=\"false\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n\n <ng-container>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"case-calendar vx-mb-3\">\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\n <input\n type=\"text\"\n readonly\n placeholder=\"{{\n dueDateTexts.case_details.due_date.deadline_placeholder\n }}\"\n (click)=\"openDatePicker()\"\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\n id=\"deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #deadlineDatePicker\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n [config]=\"dateConfig\"\n [(ngModel)]=\"dueDate\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n {{ dueDateTexts.errorMessage.dueDate }}\n </div>\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\n >\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\n [appTooltip]=\"\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.'\n \"\n placement=\"bottom-right\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div> -->\n </div>\n <div class=\"configure-resolution-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\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\"\n >\n #\n </div>\n <div\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\"\n >\n STAGE NAME\n </div>\n <div\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\"\n >\n TRANSITION STATUS\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.transition_status\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n ASSIGNEE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.assignee\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n DEADLINE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.deadline\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"\n let data of workflowDetails?.stages_assignees;\n let i = index\n \"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n >\n <div\n class=\"value vx-fs-13 vx-pr-2\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n >\n <div class=\"value vx-fs-12\">\n {{ data?.status_transition?.fromName }}<br /><span\n class=\"vx-mr-1\"\n >To</span\n >{{ data?.status_transition?.toName }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n (click)=\"activateSelector(true, i)\"\n >\n <div\n *ngIf=\"!assigneeData[i]?.length\"\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n >\n <div class=\"value vx-fs-13\">Select a User</div>\n <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n </div>\n <div\n *ngIf=\"assigneeData[i]?.length > 0\"\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\n >\n <div\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assigneeData[i][0]?.member_name }}\n </div>\n <button\n (click)=\"activateSelector(true, i)\"\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\"\n >\n <i class=\"icons vx-fs-12 vx-txt-blue vx-mr-1\">&#xe9ba;</i\n >EDIT\n </button>\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\n >\n <div\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\n >\n <div\n class=\"case-calendar-inner vx-d-flex vx-align-center\"\n [class.disabled]=\"true\"\n >\n <input\n type=\"text\"\n readonly\n value=\"{{ dueDate | date : 'dd MMM yyyy' }}\"\n (click)=\"openDatePicker()\"\n id=\"stage-deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #datePicker\n (onSelect)=\"\n datePickerOverlay = false; closeDatePicker($event)\n \"\n [config]=\"dateConfig\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"showAssigneeError\"\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n >\n {{ dueDateTexts.errorMessage.stageAssignee }}\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n EMAIL REMINDER CONFIGURATION\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"divider vx-mb-2\"></div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n REMINDER EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send regular email reminders to the assignee\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"emailReminder\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the stage deadline.\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n ESCALATION EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send email escalation to the Case Owner\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"escalationEmail\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the overall case\n deadline, if the case is still open.\n </div>\n </div>\n </ng-container>\n </div>\n <app-floating-bar\n (closeList)=\"closeDueDate()\"\n (closeEvent)=\"saveCaseResolutionDeadline()\"\n ></app-floating-bar>\n </div>\n</div>\n<app-assignee\n *ngIf=\"assigneeClicked\"\n [payload]=\"payload\"\n [assigneeList]=\"assigneeList\"\n [activeAssignee]=\"activeAssignee\"\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\n (closeEvent)=\"activateSelector(false)\"\n></app-assignee>\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}::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:.75rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar-inner.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar-inner.disabled input,::ng-deep .configure-resolution-body .case-calendar-inner.disabled 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{margin-bottom:.75rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0;border:1px solid #f2f2f5;border-bottom:1px solid #f2f2f5}::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-body{border-radius:0 0 .25rem .25rem;border:1px solid #f2f2f5;border-top:none}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative;border-bottom:1px solid #f2f2f5}::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"] }]
305
+ args: [{ selector: 'app-due-date', template: "<div class=\"configure-resolution\">\n <div\n class=\"configure-resolution-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n Configure Resolution Deadline & Stage Details\n </div>\n </div>\n <div class=\"configure-resolution-body\">\n <div class=\"configure-resolution-body-inner\">\n <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n <app-no-data\n *ngIf=\"false\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n\n <ng-container>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n SPECIFY THE DEADLINE TO CLOSE THIS CASE\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <app-banner *ngIf=\"mode === 'EDIT'\">\n <p banner>\n {{ CaseDeadlineWarning }}\n </p>\n </app-banner>\n <div class=\"case-calendar vx-mb-3\">\n <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\n <input\n type=\"text\"\n readonly\n placeholder=\"{{\n dueDateTexts.case_details.due_date.deadline_placeholder\n }}\"\n (click)=\"openDatePicker()\"\n [value]=\"dueDate | date : 'dd MMM yyyy'\"\n id=\"deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #deadlineDatePicker\n (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n [config]=\"dateConfig\"\n [(ngModel)]=\"dueDate\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n {{ dueDateTexts.errorMessage.dueDate }}\n </div>\n </div>\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\n >\n CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\n <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\n [appTooltip]=\"\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.'\n \"\n placement=\"bottom-right\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div> -->\n </div>\n <div class=\"configure-resolution-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\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\"\n >\n #\n </div>\n <div\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\"\n >\n STAGE NAME\n </div>\n <div\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\"\n >\n TRANSITION STATUS\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.transition_status\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n ASSIGNEE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.assignee\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n <div\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\"\n >\n DEADLINE\n <i\n class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n [appTooltip]=\"helperText.deadline\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"white\"\n [tooltipMandatory]=\"true\"\n >&#xe91f;</i\n >\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"\n let data of workflowDetails?.stages_assignees;\n let i = index\n \"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n >\n <div\n class=\"value vx-fs-13 vx-pr-2\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n >\n <div class=\"value vx-fs-12\">\n {{ data?.status_transition?.fromName }}<br /><span\n class=\"vx-mr-1\"\n >To</span\n >{{ data?.status_transition?.toName }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n (click)=\"activateSelector(true, i)\"\n >\n <div\n *ngIf=\"!assigneeData[i]?.length\"\n class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n >\n <div class=\"value vx-fs-13\">Select a User</div>\n <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n </div>\n <div\n *ngIf=\"assigneeData[i]?.length > 0\"\n class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\n >\n <div\n class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\n [appTooltip]=\"assigneeData[i][0]?.member_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assigneeData[i][0]?.member_name }}\n </div>\n <button\n (click)=\"activateSelector(true, i)\"\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\"\n >\n <i class=\"icons vx-fs-12 vx-txt-blue vx-mr-1\">&#xe9ba;</i\n >EDIT\n </button>\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\n >\n <div\n class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\n >\n <div\n class=\"case-calendar-inner vx-d-flex vx-align-center\"\n [class.disabled]=\"true\"\n >\n <input\n type=\"text\"\n readonly\n value=\"{{ dueDate | date : 'dd MMM yyyy' }}\"\n (click)=\"openDatePicker()\"\n id=\"stage-deadline-date\"\n />\n <i class=\"icons\">&#xe92d;</i>\n <dp-date-picker\n #datePicker\n (onSelect)=\"\n datePickerOverlay = false; closeDatePicker($event)\n \"\n [config]=\"dateConfig\"\n >\n </dp-date-picker>\n <div\n class=\"vx-overlay\"\n (click)=\"closeDatePicker($event)\"\n *ngIf=\"datePickerOverlay\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"showAssigneeError\"\n class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n >\n {{ dueDateTexts.errorMessage.stageAssignee }}\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n EMAIL REMINDER CONFIGURATION\n <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n </div>\n <div class=\"divider vx-mb-2\"></div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n REMINDER EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send regular email reminders to the assignee\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"emailReminder\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the stage deadline.\n </div>\n </div>\n <div\n class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n >\n ESCALATION EMAIL\n </div>\n <div\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\"\n >\n <div class=\"vx-fs-13 vx-mr-1\">\n Send email escalation to the Case Owner\n </div>\n <input\n type=\"number\"\n [(ngModel)]=\"escalationEmail\"\n onkeydown=\"return event.key !== '.'\"\n oninput=\"this.value = Math.abs(this.value)\"\n (change)=\"onInputChange()\"\n />\n <div class=\"vx-fs-13 vx-ml-1\">\n <span class=\"black-text\">days</span> before the overall case\n deadline, if the case is still open.\n </div>\n </div>\n </ng-container>\n </div>\n <app-floating-bar\n (closeList)=\"closeDueDate()\"\n (closeEvent)=\"saveCaseResolutionDeadline()\"\n ></app-floating-bar>\n </div>\n</div>\n<app-assignee\n *ngIf=\"assigneeClicked\"\n [payload]=\"payload\"\n [assigneeList]=\"assigneeList\"\n [activeAssignee]=\"activeAssignee\"\n (selectedAssigneeEvent)=\"selectedAssignee($event)\"\n (closeEvent)=\"activateSelector(false)\"\n></app-assignee>\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}::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:.75rem;color:#747576;font-size:12px;pointer-events:none}::ng-deep .configure-resolution-body .case-calendar-inner.disabled{background:#f2f2f5;pointer-events:none;opacity:1}::ng-deep .configure-resolution-body .case-calendar-inner.disabled input,::ng-deep .configure-resolution-body .case-calendar-inner.disabled 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{margin-bottom:.75rem}::ng-deep .configure-resolution-table .table-header{background:#fff;border-radius:.25rem .25rem 0 0;border:1px solid #f2f2f5;border-bottom:1px solid #f2f2f5}::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-body{border-radius:0 0 .25rem .25rem;border:1px solid #f2f2f5;border-top:none}::ng-deep .configure-resolution-table .table-row{display:flex;justify-content:space-between;position:relative;border-bottom:1px solid #f2f2f5}::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"] }]
294
306
  }], ctorParameters: function () { return [{ type: i1.CommonService }, { type: i2.FrequencyService }]; }, propDecorators: { datePicker: [{
295
307
  type: ViewChild,
296
308
  args: ['deadlineDatePicker']
@@ -311,6 +323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
311
323
  type: Input
312
324
  }], initialSelection: [{
313
325
  type: Input
326
+ }], min: [{
327
+ type: Input
314
328
  }], closeDueDateResolution: [{
315
329
  type: Output
316
330
  }], closeDueDateEvent: [{
@@ -319,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
319
333
  type: HostListener,
320
334
  args: ['document:click', ['$event']]
321
335
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsR0FFaEIsTUFBTSx1Q0FBdUMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7O0FBTzdELE1BQU0sT0FBTyxnQkFBZ0I7SUFrQzNCLElBQWEsZ0JBQWdCLENBQUMsS0FBVTtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQztZQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFLRCxZQUNVLGlCQUFnQyxFQUNoQyxnQkFBa0M7UUFEbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFlO1FBQ2hDLHFC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SSxDQUFDLGlCQUFpQjtTQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMseUJBQXlCLENBQUM7U0FDbEU7SUFDSCxDQUFDOytHQXBWVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxbEJBRWMsVUFBVSw2QkM3QnJELGsrWUFvVUE7OzRGRHpTYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzttSUFLUyxVQUFVO3NCQUExQyxTQUFTO3VCQUFDLG9CQUFvQjtnQkFFL0IsTUFBTTtzQkFETCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQTBCM0QsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQVFJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBdVJQLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIElEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcblxuaW1wb3J0IHtcbiAgUkVQT1JUX0NBU0UsXG4gIEhFTFBFUl9URVhULFxuICBFTUFJTF9SRU1JTkRFUlMsXG4gIE1PTlRIX05BTUVTLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZHVlLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHVlLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kdWUtZGF0ZS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEdWVEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZGVhZGxpbmVEYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2RlYWRsaW5lRGF0ZVBpY2tlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGFuaW1hdGlvbiA9IHRydWU7XG4gIGRhdGVQaWNrZXJQb3BVcCE6IEVsZW1lbnRSZWY7XG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gIGRhdGVDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge1xuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdERCBNTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgICBtaW46ICcnLFxuICB9O1xuICBjb21tb25TZXJ2aWNlOiBhbnk7XG4gIGR1ZURhdGVUZXh0cyA9IFJFUE9SVF9DQVNFO1xuICBoZWxwZXJUZXh0ID0gSEVMUEVSX1RFWFQ7XG4gIGFzc2lnbmVlQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBhc3NpZ25lZUxpc3Q6IGFueVtdID0gW107XG4gIGFzc2lnbmVlRGF0YTogeyBba2V5OiBudW1iZXJdOiBhbnlbXSB9ID0ge307XG4gIGN1cnJlbnRTdGFnZUluZGV4OiBudW1iZXIgPSAtMTtcbiAgYWN0aXZlQXNzaWduZWU6IGFueVtdID0gW107XG4gIGVtYWlsUmVtaW5kZXI6IG51bWJlciA9IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcbiAgZXNjYWxhdGlvbkVtYWlsOiBudW1iZXIgPSBFTUFJTF9SRU1JTkRFUlMuZXNjYWxhdGlvbl9lbWFpbF9yZW1pbmRlcjtcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBc3NpZ25lZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcGF5bG9hZDogYW55O1xuICBASW5wdXQoKSBkdWVEYXRlOiBhbnk7XG4gIEBJbnB1dCgpIHdvcmtmbG93RGV0YWlsczogYW55O1xuICBASW5wdXQoKSB1c2VyTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZ3JvdXBMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2V0IGluaXRpYWxTZWxlY3Rpb24odmFsdWU6IGFueSkge1xuICAgIHRoaXMuZHVlRGF0ZSA9IHZhbHVlPy5yZXNvbHV0aW9uX2RlYWRsaW5lPy5kdWVfZGF0ZTtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgIHRoaXMuZW1haWxSZW1pbmRlciA9IHZhbHVlPy5yZXNvbHV0aW9uX2RlYWRsaW5lPy5hc3NpZ25lZV9yZW1pbmRfYmVmb3JlO1xuICAgICAgdGhpcy5lc2NhbGF0aW9uRW1haWwgPSB2YWx1ZT8ucmVzb2x1dGlvbl9kZWFkbGluZT8ub3duZXJfcmVtaW5kX2JlZm9yZTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VEdWVEYXRlUmVzb2x1dGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlRHVlRGF0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tbW9uRGF0ZVNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ29uZmlnLm1pbiA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5mb3JtYXREYXRlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5zZXRBc3NpZ25lZUxpc3QoKTtcbiAgICB0aGlzLmluaXRpYWxpemVFZGl0TW9kZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRWRpdE1vZGUoKSB7XG4gICAgaWYgKCF0aGlzLnBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5yZXNvbHV0aW9uX2RlYWRsaW5lPy5kdWVfZGF0ZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGVhZGxpbmUgPSB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cucmVzb2x1dGlvbl9kZWFkbGluZTtcbiAgICB0aGlzLmluaXRpYWxpemVEZWFkbGluZVZhbHVlcyhkZWFkbGluZSk7XG4gICAgdGhpcy5pbml0aWFsaXplU3RhZ2VBc3NpZ25lZXMoZGVhZGxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGVhZGxpbmVWYWx1ZXMoZGVhZGxpbmU6IGFueSkge1xuICAgIHRoaXMuZHVlRGF0ZSA9IG5ldyBEYXRlKGRlYWRsaW5lPy5kdWVfZGF0ZSk7XG4gICAgdGhpcy5lbWFpbFJlbWluZGVyID1cbiAgICAgIGRlYWRsaW5lLmFzc2lnbmVlX3JlbWluZF9iZWZvcmUgfHwgRU1BSUxfUkVNSU5ERVJTLmVtYWlsX3JlbWluZGVyO1xuICAgIHRoaXMuZXNjYWxhdGlvbkVtYWlsID1cbiAgICAgIGRlYWRsaW5lLm93bmVyX3JlbWluZF9iZWZvcmUgfHwgRU1BSUxfUkVNSU5ERVJTLmVzY2FsYXRpb25fZW1haWxfcmVtaW5kZXI7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVTdGFnZUFzc2lnbmVlcyhkZWFkbGluZTogYW55KSB7XG4gICAgaWYgKCFkZWFkbGluZT8uc3RhZ2VzX2Fzc2lnbmVlcz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCBzdGFnZUFzc2lnbmVlTWFwID0gdGhpcy5jcmVhdGVTdGFnZUFzc2lnbmVlTWFwKFxuICAgICAgZGVhZGxpbmUuc3RhZ2VzX2Fzc2lnbmVlc1xuICAgICk7XG4gICAgdGhpcy5tYXBXb3JrZmxvd1N0YWdlcyhzdGFnZUFzc2lnbmVlTWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3RhZ2VBc3NpZ25lZU1hcChzdGFnZXNBc3NpZ25lZXM6IGFueVtdKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICBzdGFnZXNBc3NpZ25lZXMubWFwKChzdGFnZTogYW55KSA9PiBbc3RhZ2U/LnN0YWdlX2lkLCBzdGFnZT8uYXNzaWduZWVfaWRdKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1hcFdvcmtmbG93U3RhZ2VzKHN0YWdlQXNzaWduZWVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICB0aGlzLndvcmtmbG93RGV0YWlscz8uc3RhZ2VzX2Fzc2lnbmVlcz8uZm9yRWFjaChcbiAgICAgICh3b3JrZmxvd1N0YWdlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgYXNzaWduZWVJZCA9IHN0YWdlQXNzaWduZWVNYXA/LmdldCh3b3JrZmxvd1N0YWdlPy5zdGFnZV9pZCk7XG4gICAgICAgIGlmICghYXNzaWduZWVJZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0gdGhpcy5hc3NpZ25lZUxpc3Q/LmZpbmQoXG4gICAgICAgICAgKGFzc2lnbmVlOiBhbnkpID0+IGFzc2lnbmVlPy5faWQgPT09IGFzc2lnbmVlSWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFzc2lnbmVlKSB7XG4gICAgICAgICAgdGhpcy5hc3NpZ25lZURhdGFbaW5kZXhdID0gW2Fzc2lnbmVlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBvcGVuRGF0ZVBpY2tlcigpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsb3NlcyB0aGUgZGF0ZSBwaWNrZXIgZnJvbSBwb2xpY3kgZm9ybVxuICAgKi9cbiAgY2xvc2VEYXRlUGlja2VyKGV2dDogYW55KSB7XG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuXG4gICAgaWYgKCFldnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xuICAgICAgICAnSmFuJyxcbiAgICAgICAgJ0ZlYicsXG4gICAgICAgICdNYXInLFxuICAgICAgICAnQXByJyxcbiAgICAgICAgJ0p1bicsXG4gICAgICAgICdKdWwnLFxuICAgICAgICAnQXVnJyxcbiAgICAgICAgJ1NlcCcsXG4gICAgICAgICdPY3QnLFxuICAgICAgICAnTm92JyxcbiAgICAgICAgJ0RlYycsXG4gICAgICBdO1xuICAgICAgY29uc3QgZGF0ZVZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RGF0ZSgpO1xuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0TW9udGgoKV07XG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXRGdWxsWWVhcigpO1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGAke2RhdGVWYWx1ZX0gJHttb250aFZhbHVlfSAke3llYXJWYWx1ZX1gO1xuICAgIH1cbiAgICBpZiAoZXZ0Py5kYXRlPy4kZCkge1xuICAgICAgdGhpcy5kdWVEYXRlID0gbmV3IERhdGUoZXZ0LmRhdGUuJGQpO1xuICAgICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5kYXRlUGlja2VyPy5hcGk/LmNsb3NlKCk7XG4gIH1cblxuICBjbG9zZUR1ZURhdGUoKSB7XG4gICAgdGhpcy5jbG9zZUR1ZURhdGVFdmVudC5lbWl0KCk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbiwgc3RhZ2VJbmRleD86IG51bWJlcikge1xuICAgIHRoaXMuYXNzaWduZWVDbGlja2VkID0gYWN0aXZlO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuY3VycmVudFN0YWdlSW5kZXggPSBzdGFnZUluZGV4ID8/IC0xO1xuICAgICAgdGhpcy5hY3RpdmVBc3NpZ25lZSA9XG4gICAgICAgIHRoaXMuY3VycmVudFN0YWdlSW5kZXggIT09IC0xXG4gICAgICAgICAgPyB0aGlzLmFzc2lnbmVlRGF0YVt0aGlzLmN1cnJlbnRTdGFnZUluZGV4XVxuICAgICAgICAgIDogW107XG4gICAgfVxuICB9XG5cbiAgc2V0QXNzaWduZWVMaXN0KCkge1xuICAgIGNvbnN0IGRpcmVjdEFzc2lnbmVlcyA9IHRoaXMuZ2V0QXNzaWduZWVzKCk7XG4gICAgY29uc3QgZ3JvdXBBc3NpZ25lZXMgPSB0aGlzLmdldEdyb3VwQXNzaWduZWVzKCk7XG4gICAgdGhpcy5hc3NpZ25lZUxpc3QgPSB0aGlzLmdldFVuaXF1ZUFzc2lnbmVlcyhcbiAgICAgIGRpcmVjdEFzc2lnbmVlcyxcbiAgICAgIGdyb3VwQXNzaWduZWVzXG4gICAgKTtcbiAgfVxuXG4gIGdldEFzc2lnbmVlcygpOiBhbnlbXSB7XG4gICAgY29uc3QgYXNzaWduZWVJZHMgPSB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3c/LmFzc2lnbmVlcyB8fCBbXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnVzZXJMaXN0XG4gICAgICAgID8uZmlsdGVyKCh1c2VyOiBhbnkpID0+IGFzc2lnbmVlSWRzLmluY2x1ZGVzKHVzZXI/Ll9pZCkpXG4gICAgICAgID8ubWFwKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB1c2VyR3JvdXBzID0gdGhpcy5nZXRVc2VyR3JvdXBzKHVzZXIpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgYXNzb2NpYXRlZEdyb3VwczogdXNlckdyb3VwcyxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBnZXRVc2VyR3JvdXBzKHVzZXI6IGFueSk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cExpc3Q/LmZpbHRlcigoZ3JvdXA6IGFueSkgPT5cbiAgICAgIHVzZXI/LnVzZXJncm91cF9pZD8uaW5jbHVkZXMoZ3JvdXA/Lmdyb3VwX2lkKVxuICAgICk7XG4gIH1cblxuICBnZXRHcm91cEFzc2lnbmVlcygpOiBhbnlbXSB7XG4gICAgY29uc3QgYXNzaWduZWVHcm91cElkcyA9IHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdz8uYXNzaWduZWVzX2dyb3VwIHx8IFtdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGFzc2lnbmVlR3JvdXBJZHMuZmxhdE1hcCgoZ3JvdXBJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5maW5kR3JvdXBCeUlkKGdyb3VwSWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBc3NpZ25lZXNGcm9tR3JvdXAoZ3JvdXApO1xuICAgICAgfSkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgZmluZEdyb3VwQnlJZChncm91cElkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdyb3VwTGlzdD8uZmluZCgoZ3JvdXA6IGFueSkgPT4gZ3JvdXA/Ll9pZCA9PT0gZ3JvdXBJZCk7XG4gIH1cblxuICBnZXRBc3NpZ25lZXNGcm9tR3JvdXAoZ3JvdXA6IGFueSk6IGFueVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgZ3JvdXA/LmFzc29jaWF0ZWRVc2Vyc1xuICAgICAgICA/Lm1hcCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXNlckZyb21MaXN0ID0gdGhpcy5maW5kVXNlckJ5SWQodXNlcj8udXNlcklkPy5faWQpO1xuICAgICAgICAgIGlmICh1c2VyRnJvbUxpc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZXJHcm91cHMgPSB0aGlzLmdldFVzZXJHcm91cHModXNlckZyb21MaXN0KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnVzZXJGcm9tTGlzdCxcbiAgICAgICAgICAgICAgYXNzb2NpYXRlZEdyb3VwczogdXNlckdyb3VwcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKCh1c2VyOiBhbnkpID0+IHVzZXIgIT09IG51bGwpIHx8IFtdXG4gICAgKTtcbiAgfVxuXG4gIGZpbmRVc2VyQnlJZCh1c2VySWQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckxpc3Q/LmZpbmQoKHVzZXI6IGFueSkgPT4gdXNlcj8uX2lkID09PSB1c2VySWQpO1xuICB9XG5cbiAgZ2V0VW5pcXVlQXNzaWduZWVzKGRpcmVjdEFzc2lnbmVlczogYW55W10sIGdyb3VwQXNzaWduZWVzOiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gWy4uLmRpcmVjdEFzc2lnbmVlcywgLi4uZ3JvdXBBc3NpZ25lZXNdLnJlZHVjZShcbiAgICAgIChhY2M6IGFueVtdLCB1c2VyOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFhY2Muc29tZSgodTogYW55KSA9PiB1Py5faWQgPT09IHVzZXI/Ll9pZCkpIHtcbiAgICAgICAgICBhY2MucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIFtdXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdGVkQXNzaWduZWUoZXZlbnQ6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFN0YWdlSW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmFzc2lnbmVlRGF0YVt0aGlzLmN1cnJlbnRTdGFnZUluZGV4XSA9IGV2ZW50O1xuICAgIH1cbiAgICB0aGlzLmFzc2lnbmVlQ2xpY2tlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudD8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93QXNzaWduZWVFcnJvciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVDYXNlUmVzb2x1dGlvbkRlYWRsaW5lKCkge1xuICAgIGlmICghdGhpcy5pc0R1ZURhdGVWYWxpZCgpKSB7XG4gICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghdGhpcy5hcmVBc3NpZ25lZXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLnNob3dBc3NpZ25lZUVycm9yID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93RXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dBc3NpZ25lZUVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXlsb2FkKCk7XG4gICAgdGhpcy5jbG9zZUR1ZURhdGVSZXNvbHV0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIGlzRHVlRGF0ZVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZHVlRGF0ZTtcbiAgfVxuXG4gIGFyZUFzc2lnbmVlc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndvcmtmbG93RGV0YWlscz8uc3RhZ2VzX2Fzc2lnbmVlcz8uZXZlcnkoXG4gICAgICAoc3RhZ2U6IGFueSwgaW5kZXg6IG51bWJlcikgPT5cbiAgICAgICAgdGhpcy5hc3NpZ25lZURhdGFbaW5kZXhdICYmIHRoaXMuYXNzaWduZWVEYXRhW2luZGV4XT8ubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cblxuICBmb3JtYXREdWVEYXRlKGRhdGU6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgbG9jYWxEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgLy8gQWRkIG9uZSBkYXkgdG8gdGhlIGRhdGVcbiAgICBsb2NhbERhdGUuc2V0RGF0ZShsb2NhbERhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgLy8gU2V0IHRpbWUgdG8gbWlkbmlnaHRcbiAgICBsb2NhbERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIGxvY2FsRGF0ZS50b0lTT1N0cmluZygpO1xuICB9XG5cbiAgc2V0RGVhZGxpbmVSZW1pbmRlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUuYXNzaWduZWVfcmVtaW5kX2JlZm9yZSA9XG4gICAgICB0aGlzLmVtYWlsUmVtaW5kZXI7XG4gICAgdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUub3duZXJfcmVtaW5kX2JlZm9yZSA9XG4gICAgICB0aGlzLmVzY2FsYXRpb25FbWFpbDtcbiAgfVxuXG4gIHNldFN0YWdlc0Fzc2lnbmVlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMud29ya2Zsb3dEZXRhaWxzPy5zdGFnZXNfYXNzaWduZWVzXG4gICAgICAubWFwKChzdGFnZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlRGF0YSA9IHRoaXMuYXNzaWduZWVEYXRhW2luZGV4XTtcbiAgICAgICAgcmV0dXJuIGFzc2lnbmVlRGF0YVxuICAgICAgICAgID8gdGhpcy5jcmVhdGVTdGFnZUFzc2lnbmVlKHN0YWdlLCBhc3NpZ25lZURhdGEpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICBjcmVhdGVTdGFnZUFzc2lnbmVlKHN0YWdlOiBhbnksIGFzc2lnbmVlRGF0YTogYW55W10pOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFnZV9pZDogc3RhZ2U/LnN0YWdlX2lkIHx8ICcnLFxuICAgICAgYXNzaWduZWVfaWQ6IGFzc2lnbmVlRGF0YVswXT8uX2lkIHx8ICcnLFxuICAgICAgZHVlX2RhdGU6IHN0YWdlPy5kdWVfZGF0ZSB8fCAnJyxcbiAgICB9O1xuICB9XG5cbiAgc2V0UGF5bG9hZCgpIHtcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy5kdWVEYXRlO1xuICAgIHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lLmR1ZV9kYXRlID0gZm9ybWF0dGVkRGF0ZTtcbiAgICB0aGlzLnNldERlYWRsaW5lUmVtaW5kZXJzKCk7XG4gICAgY29uc3Qgc3RhZ2VzQXNzaWduZWVzID0gdGhpcy5zZXRTdGFnZXNBc3NpZ25lZXMoKTtcbiAgICB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cucmVzb2x1dGlvbl9kZWFkbGluZS5zdGFnZXNfYXNzaWduZWVzID1cbiAgICAgIHN0YWdlc0Fzc2lnbmVlcztcbiAgICB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cud29ya2Zsb3dfaWQgPSB0aGlzLndvcmtmbG93RGV0YWlscz8uX2lkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlUGlja2VyT2JqZWN0ID0ge1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY2xhc3M6ICdkZWFkbGluZS1kYXRlJyxcbiAgICAgIHBvcHVwOiB0aGlzLmRhdGVQaWNrZXJQb3BVcCxcbiAgICAgIGNvbXBvbmVudDogdGhpcy5kYXRlUGlja2VyLFxuICAgICAgb3ZlcmxheTogdGhpcy5kYXRlUGlja2VyT3ZlcmxheSxcbiAgICB9O1xuICAgIHRoaXMuY29tbW9uRGF0ZVNlcnZpY2UuaGFuZGxlRG9jdW1lbnRDbGljayhkYXRlUGlja2VyT2JqZWN0KTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuZW1haWxSZW1pbmRlciA9PT0gMCkge1xuICAgICAgdGhpcy5lbWFpbFJlbWluZGVyID0gRU1BSUxfUkVNSU5ERVJTLmVtYWlsX3JlbWluZGVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5lc2NhbGF0aW9uRW1haWwgPT09IDApIHtcbiAgICAgIHRoaXMuZXNjYWxhdGlvbkVtYWlsID0gRU1BSUxfUkVNSU5ERVJTLmVzY2FsYXRpb25fZW1haWxfcmVtaW5kZXI7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb24taGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cbiAgICAgIENvbmZpZ3VyZSBSZXNvbHV0aW9uIERlYWRsaW5lICYgU3RhZ2UgRGV0YWlsc1xuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb24tYm9keS1pbm5lclwiPlxuICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwiZmFsc2VcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICpuZ0lmPVwiZmFsc2VcIlxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG5cbiAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgU1BFQ0lGWSBUSEUgREVBRExJTkUgVE8gQ0xPU0UgVEhJUyBDQVNFXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNiB2eC1mdy00MDBcIj4qPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhc2UtY2FsZW5kYXIgdngtbWItM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXNlLWNhbGVuZGFyLWlubmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcbiAgICAgICAgICAgICAgICBkdWVEYXRlVGV4dHMuY2FzZV9kZXRhaWxzLmR1ZV9kYXRlLmRlYWRsaW5lX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZHVlRGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcbiAgICAgICAgICAgICAgaWQ9XCJkZWFkbGluZS1kYXRlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XG4gICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgI2RlYWRsaW5lRGF0ZVBpY2tlclxuICAgICAgICAgICAgICAob25TZWxlY3QpPVwiZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTsgY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImR1ZURhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiZXJyb3JNc2cgdngtZnMtMTEgdngtbGgtNCB2eC1tdC0xXCI+XG4gICAgICAgICAgICB7eyBkdWVEYXRlVGV4dHMuZXJyb3JNZXNzYWdlLmR1ZURhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1tYi0xXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsYWJlbC10b3AgdngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC00IHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ09ORklHVVJFIERFQURMSU5FICYgQVNTSUdORUUgRk9SIEVBQ0ggU1RBR0UgSU4gVEhFIFdPUktGTE9XXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkIHZ4LWZzLTE2IHZ4LWZ3LTQwMFwiPio8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidG9nZ2xlLWFyZWEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGFwcC1jcy1zd2l0Y2g+QWxsb3cgUmVvcGVuaW5nIG9mIFByZXZpb3VzIFN0YWdlPC9hcHAtY3Mtc3dpdGNoPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTJcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAnSWYgZW5hYmxlZCwgdGhpcyBvcHRpb24gYWxsb3dzIHRoZSBhc3NpZ25lZSB0byByZXZpc2l0IGFuZCByZW9wZW4gYSBwcmV2aW91c2x5IGNvbXBsZXRlZCBzdGFnZS4gVGhlIHN0YWdlIHdpbGwgYmUgcmVzZXQsIGFuZCB0aGUgYXNzaWduZWQgdXNlciB3aWxsIG5lZWQgdG8gY29tcGxldGUgaXQgYWdhaW4uJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLXRhYmxlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAjXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YWdlLW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgU1RBR0UgTkFNRVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzdGF0dXNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVFJBTlNJVElPTiBTVEFUVVNcbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTFcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaGVscGVyVGV4dC50cmFuc2l0aW9uX3N0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYXNzaWduZWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQVNTSUdORUVcbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTFcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaGVscGVyVGV4dC5hc3NpZ25lZVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgZGVhZGxpbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgREVBRExJTkVcbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTFcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaGVscGVyVGV4dC5kZWFkbGluZVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBkYXRhIG9mIHdvcmtmbG93RGV0YWlscz8uc3RhZ2VzX2Fzc2lnbmVlcztcbiAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ubyB2eC1mcy0xMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImkgKyAxXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc3RhZ2UtbmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIHZ4LWZzLTEzIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YT8ubmFtZVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBkYXRhPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc3RhdHVzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMlwiPlxuICAgICAgICAgICAgICAgICAge3sgZGF0YT8uc3RhdHVzX3RyYW5zaXRpb24/LmZyb21OYW1lIH19PGJyIC8+PHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAgICAgPlRvPC9zcGFuXG4gICAgICAgICAgICAgICAgICA+e3sgZGF0YT8uc3RhdHVzX3RyYW5zaXRpb24/LnRvTmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGFzc2lnbmVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcih0cnVlLCBpKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFhc3NpZ25lZURhdGFbaV0/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1ib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtMyB2eC1wci0zXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTNcIj5TZWxlY3QgYSBVc2VyPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGFycm93IHZ4LWZzLTEyXCI+JiN4ZTllODs8L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3NpZ25lZURhdGFbaV0/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZnRlci1zZWxlY3QtYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTMgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlLWNoaXAgdngtZnMtMTEgdngtcGwtMiB2eC1wci0yIHZ4LWxoLTZcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhc3NpZ25lZURhdGFbaV1bMF0/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2lnbmVlRGF0YVtpXVswXT8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcih0cnVlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1yLTFcIj4mI3hlOWJhOzwvaVxuICAgICAgICAgICAgICAgICAgICA+RURJVFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgZGVhZGxpbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXNlLWNhbGVuZGFyIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcHQtMyB2eC1wYi0zXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FzZS1jYWxlbmRhci1pbm5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInt7IGR1ZURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5JyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwic3RhZ2UtZGVhZGxpbmUtZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGRwLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgI2RhdGVQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlOyBjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2RwLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dBc3NpZ25lZUVycm9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXJyb3JNc2cgdngtZnMtMTEgdngtbGgtNCB2eC1tdC0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBkdWVEYXRlVGV4dHMuZXJyb3JNZXNzYWdlLnN0YWdlQXNzaWduZWUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgRU1BSUwgUkVNSU5ERVIgQ09ORklHVVJBVElPTlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTYgdngtZnctNDAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyIHZ4LW1iLTJcIj48L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGFiZWwtdG9wIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNCB2eC1tYi0xIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgID5cbiAgICAgICAgICBSRU1JTkRFUiBFTUFJTFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZW1haWwtY29uZmlndXJlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWZsZXgtd3JhcCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1iLTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LW1yLTFcIj5cbiAgICAgICAgICAgIFNlbmQgcmVndWxhciBlbWFpbCByZW1pbmRlcnMgdG8gdGhlIGFzc2lnbmVlXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1haWxSZW1pbmRlclwiXG4gICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5ICE9PSAnLidcIlxuICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbWwtMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibGFjay10ZXh0XCI+ZGF5czwvc3Bhbj4gYmVmb3JlIHRoZSBzdGFnZSBkZWFkbGluZS5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtbWItMSB2eC10dC11cHBlcmNhc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgRVNDQUxBVElPTiBFTUFJTFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZW1haWwtY29uZmlndXJlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWZsZXgtd3JhcCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1iLTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LW1yLTFcIj5cbiAgICAgICAgICAgIFNlbmQgZW1haWwgZXNjYWxhdGlvbiB0byB0aGUgQ2FzZSBPd25lclxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVzY2FsYXRpb25FbWFpbFwiXG4gICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5ICE9PSAnLidcIlxuICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbWwtMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibGFjay10ZXh0XCI+ZGF5czwvc3Bhbj4gYmVmb3JlIHRoZSBvdmVyYWxsIGNhc2VcbiAgICAgICAgICAgIGRlYWRsaW5lLCBpZiB0aGUgY2FzZSBpcyBzdGlsbCBvcGVuLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICAoY2xvc2VMaXN0KT1cImNsb3NlRHVlRGF0ZSgpXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmVDYXNlUmVzb2x1dGlvbkRlYWRsaW5lKClcIlxuICAgID48L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXBwLWFzc2lnbmVlXG4gICpuZ0lmPVwiYXNzaWduZWVDbGlja2VkXCJcbiAgW3BheWxvYWRdPVwicGF5bG9hZFwiXG4gIFthc3NpZ25lZUxpc3RdPVwiYXNzaWduZWVMaXN0XCJcbiAgW2FjdGl2ZUFzc2lnbmVlXT1cImFjdGl2ZUFzc2lnbmVlXCJcbiAgKHNlbGVjdGVkQXNzaWduZWVFdmVudCk9XCJzZWxlY3RlZEFzc2lnbmVlKCRldmVudClcIlxuICAoY2xvc2VFdmVudCk9XCJhY3RpdmF0ZVNlbGVjdG9yKGZhbHNlKVwiXG4+PC9hcHAtYXNzaWduZWU+XG4iXX0=
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsRUFFZix1Q0FBdUMsR0FDeEMsTUFBTSx1Q0FBdUMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUMzQixJQUFhLGdCQUFnQixDQUFDLEtBQVU7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7WUFDeEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBTUQsWUFDVSxpQkFBZ0MsRUFD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SztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQU9HLEdBQUc7c0JBQVgsS0FBSztnQkFFSSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQStSUCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XG5pbXBvcnQgKiBhcyBkYXlqcyBmcm9tICdkYXlqcyc7XG5cbmltcG9ydCB7XG4gIFJFUE9SVF9DQVNFLFxuICBIRUxQRVJfVEVYVCxcbiAgRU1BSUxfUkVNSU5ERVJTLFxuICBNT05USF9OQU1FUyxcbiAgQkFOTkVSX0NBU0VfUkVTT0xVVElPTl9ERUFETElORV9XQVJOSU5HLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZHVlLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHVlLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kdWUtZGF0ZS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEdWVEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZGVhZGxpbmVEYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2RlYWRsaW5lRGF0ZVBpY2tlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGFuaW1hdGlvbiA9IHRydWU7XG4gIGRhdGVQaWNrZXJQb3BVcCE6IEVsZW1lbnRSZWY7XG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gIGRhdGVDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge1xuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdERCBNTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgICBtaW46ICcnLFxuICB9O1xuICBjb21tb25TZXJ2aWNlOiBhbnk7XG4gIGR1ZURhdGVUZXh0cyA9IFJFUE9SVF9DQVNFO1xuICBoZWxwZXJUZXh0ID0gSEVMUEVSX1RFWFQ7XG4gIGFzc2lnbmVlQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBhc3NpZ25lZUxpc3Q6IGFueVtdID0gW107XG4gIGFzc2lnbmVlRGF0YTogeyBba2V5OiBudW1iZXJdOiBhbnlbXSB9ID0ge307XG4gIGN1cnJlbnRTdGFnZUluZGV4OiBudW1iZXIgPSAtMTtcbiAgYWN0aXZlQXNzaWduZWU6IGFueVtdID0gW107XG4gIGVtYWlsUmVtaW5kZXI6IG51bWJlciA9IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcbiAgZXNjYWxhdGlvbkVtYWlsOiBudW1iZXIgPSBFTUFJTF9SRU1JTkRFUlMuZXNjYWxhdGlvbl9lbWFpbF9yZW1pbmRlcjtcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBc3NpZ25lZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBDYXNlRGVhZGxpbmVXYXJuaW5nID0gQkFOTkVSX0NBU0VfUkVTT0xVVElPTl9ERUFETElORV9XQVJOSU5HO1xuXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueTtcbiAgQElucHV0KCkgZHVlRGF0ZTogYW55O1xuICBASW5wdXQoKSB3b3JrZmxvd0RldGFpbHM6IGFueTtcbiAgQElucHV0KCkgdXNlckxpc3Q6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGdyb3VwTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNldCBpbml0aWFsU2VsZWN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmR1ZURhdGUgPSB2YWx1ZT8ucmVzb2x1dGlvbl9kZWFkbGluZT8uZHVlX2RhdGU7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLmVtYWlsUmVtaW5kZXIgPSB2YWx1ZT8ucmVzb2x1dGlvbl9kZWFkbGluZT8uYXNzaWduZWVfcmVtaW5kX2JlZm9yZTtcbiAgICAgIHRoaXMuZXNjYWxhdGlvbkVtYWlsID0gdmFsdWU/LnJlc29sdXRpb25fZGVhZGxpbmU/Lm93bmVyX3JlbWluZF9iZWZvcmU7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIG1pbjogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIGNsb3NlRHVlRGF0ZVJlc29sdXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZUR1ZURhdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbW1vbkRhdGVTZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TWluRGF0ZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuc2V0QXNzaWduZWVMaXN0KCk7XG4gICAgdGhpcy5pbml0aWFsaXplRWRpdE1vZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUVkaXRNb2RlKCkge1xuICAgIGlmICghdGhpcy5wYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVzb2x1dGlvbl9kZWFkbGluZT8uZHVlX2RhdGUpIHJldHVybjtcblxuICAgIGNvbnN0IGRlYWRsaW5lID0gdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmU7XG4gICAgdGhpcy5pbml0aWFsaXplRGVhZGxpbmVWYWx1ZXMoZGVhZGxpbmUpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0YWdlQXNzaWduZWVzKGRlYWRsaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURlYWRsaW5lVmFsdWVzKGRlYWRsaW5lOiBhbnkpIHtcbiAgICB0aGlzLmR1ZURhdGUgPSBuZXcgRGF0ZShkZWFkbGluZT8uZHVlX2RhdGUpO1xuICAgIHRoaXMuZW1haWxSZW1pbmRlciA9XG4gICAgICBkZWFkbGluZS5hc3NpZ25lZV9yZW1pbmRfYmVmb3JlIHx8IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcbiAgICB0aGlzLmVzY2FsYXRpb25FbWFpbCA9XG4gICAgICBkZWFkbGluZS5vd25lcl9yZW1pbmRfYmVmb3JlIHx8IEVNQUlMX1JFTUlOREVSUy5lc2NhbGF0aW9uX2VtYWlsX3JlbWluZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RhZ2VBc3NpZ25lZXMoZGVhZGxpbmU6IGFueSkge1xuICAgIGlmICghZGVhZGxpbmU/LnN0YWdlc19hc3NpZ25lZXM/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhZ2VBc3NpZ25lZU1hcCA9IHRoaXMuY3JlYXRlU3RhZ2VBc3NpZ25lZU1hcChcbiAgICAgIGRlYWRsaW5lLnN0YWdlc19hc3NpZ25lZXNcbiAgICApO1xuICAgIHRoaXMubWFwV29ya2Zsb3dTdGFnZXMoc3RhZ2VBc3NpZ25lZU1hcCk7XG4gIH1cblxuICBwcml2YXRlIHNldE1pbkRhdGUoKSB7XG4gICAgaWYgKHRoaXMubWluKSB7XG4gICAgICB0aGlzLmRhdGVDb25maWcubWluID0gZGF5anModGhpcy5taW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVDb25maWcubWluID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZvcm1hdERhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN0YWdlQXNzaWduZWVNYXAoc3RhZ2VzQXNzaWduZWVzOiBhbnlbXSk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgTWFwKFxuICAgICAgc3RhZ2VzQXNzaWduZWVzLm1hcCgoc3RhZ2U6IGFueSkgPT4gW3N0YWdlPy5zdGFnZV9pZCwgc3RhZ2U/LmFzc2lnbmVlX2lkXSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBXb3JrZmxvd1N0YWdlcyhzdGFnZUFzc2lnbmVlTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgdGhpcy53b3JrZmxvd0RldGFpbHM/LnN0YWdlc19hc3NpZ25lZXM/LmZvckVhY2goXG4gICAgICAod29ya2Zsb3dTdGFnZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlSWQgPSBzdGFnZUFzc2lnbmVlTWFwPy5nZXQod29ya2Zsb3dTdGFnZT8uc3RhZ2VfaWQpO1xuICAgICAgICBpZiAoIWFzc2lnbmVlSWQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBhc3NpZ25lZSA9IHRoaXMuYXNzaWduZWVMaXN0Py5maW5kKFxuICAgICAgICAgIChhc3NpZ25lZTogYW55KSA9PiBhc3NpZ25lZT8uX2lkID09PSBhc3NpZ25lZUlkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhc3NpZ25lZSkge1xuICAgICAgICAgIHRoaXMuYXNzaWduZWVEYXRhW2luZGV4XSA9IFthc3NpZ25lZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgb3BlbkRhdGVQaWNrZXIoKSB7XG4gICAgdGhpcy5kYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbG9zZXMgdGhlIGRhdGUgcGlja2VyIGZyb20gcG9saWN5IGZvcm1cbiAgICovXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcblxuICAgIGlmICghZXZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldnQ/LmRhdGU/LiRkKSB7XG4gICAgICBsZXQgbW9udGhBcnJheSA9IFtcbiAgICAgICAgJ0phbicsXG4gICAgICAgICdGZWInLFxuICAgICAgICAnTWFyJyxcbiAgICAgICAgJ0FwcicsXG4gICAgICAgICdKdW4nLFxuICAgICAgICAnSnVsJyxcbiAgICAgICAgJ0F1ZycsXG4gICAgICAgICdTZXAnLFxuICAgICAgICAnT2N0JyxcbiAgICAgICAgJ05vdicsXG4gICAgICAgICdEZWMnLFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldERhdGUoKTtcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldE1vbnRoKCldO1xuICAgICAgY29uc3QgeWVhclZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcbiAgICB9XG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcbiAgICAgIHRoaXMuZHVlRGF0ZSA9IG5ldyBEYXRlKGV2dC5kYXRlLiRkKTtcbiAgICAgIHRoaXMuc2hvd0Vycm9yID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xuICB9XG5cbiAgY2xvc2VEdWVEYXRlKCkge1xuICAgIHRoaXMuY2xvc2VEdWVEYXRlRXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgYWN0aXZhdGVTZWxlY3RvcihhY3RpdmU6IGJvb2xlYW4sIHN0YWdlSW5kZXg/OiBudW1iZXIpIHtcbiAgICB0aGlzLmFzc2lnbmVlQ2xpY2tlZCA9IGFjdGl2ZTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTdGFnZUluZGV4ID0gc3RhZ2VJbmRleCA/PyAtMTtcbiAgICAgIHRoaXMuYWN0aXZlQXNzaWduZWUgPVxuICAgICAgICB0aGlzLmN1cnJlbnRTdGFnZUluZGV4ICE9PSAtMVxuICAgICAgICAgID8gdGhpcy5hc3NpZ25lZURhdGFbdGhpcy5jdXJyZW50U3RhZ2VJbmRleF1cbiAgICAgICAgICA6IFtdO1xuICAgIH1cbiAgfVxuXG4gIHNldEFzc2lnbmVlTGlzdCgpIHtcbiAgICBjb25zdCBkaXJlY3RBc3NpZ25lZXMgPSB0aGlzLmdldEFzc2lnbmVlcygpO1xuICAgIGNvbnN0IGdyb3VwQXNzaWduZWVzID0gdGhpcy5nZXRHcm91cEFzc2lnbmVlcygpO1xuICAgIHRoaXMuYXNzaWduZWVMaXN0ID0gdGhpcy5nZXRVbmlxdWVBc3NpZ25lZXMoXG4gICAgICBkaXJlY3RBc3NpZ25lZXMsXG4gICAgICBncm91cEFzc2lnbmVlc1xuICAgICk7XG4gIH1cblxuICBnZXRBc3NpZ25lZXMoKTogYW55W10ge1xuICAgIGNvbnN0IGFzc2lnbmVlSWRzID0gdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXMgfHwgW107XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy51c2VyTGlzdFxuICAgICAgICA/LmZpbHRlcigodXNlcjogYW55KSA9PiBhc3NpZ25lZUlkcy5pbmNsdWRlcyh1c2VyPy5faWQpKVxuICAgICAgICA/Lm1hcCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXNlckdyb3VwcyA9IHRoaXMuZ2V0VXNlckdyb3Vwcyh1c2VyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICAgIGFzc29jaWF0ZWRHcm91cHM6IHVzZXJHcm91cHMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgZ2V0VXNlckdyb3Vwcyh1c2VyOiBhbnkpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBMaXN0Py5maWx0ZXIoKGdyb3VwOiBhbnkpID0+XG4gICAgICB1c2VyPy51c2VyZ3JvdXBfaWQ/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcbiAgICApO1xuICB9XG5cbiAgZ2V0R3JvdXBBc3NpZ25lZXMoKTogYW55W10ge1xuICAgIGNvbnN0IGFzc2lnbmVlR3JvdXBJZHMgPSB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3c/LmFzc2lnbmVlc19ncm91cCB8fCBbXTtcblxuICAgIHJldHVybiAoXG4gICAgICBhc3NpZ25lZUdyb3VwSWRzLmZsYXRNYXAoKGdyb3VwSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZmluZEdyb3VwQnlJZChncm91cElkKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QXNzaWduZWVzRnJvbUdyb3VwKGdyb3VwKTtcbiAgICAgIH0pIHx8IFtdXG4gICAgKTtcbiAgfVxuXG4gIGZpbmRHcm91cEJ5SWQoZ3JvdXBJZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cExpc3Q/LmZpbmQoKGdyb3VwOiBhbnkpID0+IGdyb3VwPy5faWQgPT09IGdyb3VwSWQpO1xuICB9XG5cbiAgZ2V0QXNzaWduZWVzRnJvbUdyb3VwKGdyb3VwOiBhbnkpOiBhbnlbXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGdyb3VwPy5hc3NvY2lhdGVkVXNlcnNcbiAgICAgICAgPy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVzZXJGcm9tTGlzdCA9IHRoaXMuZmluZFVzZXJCeUlkKHVzZXI/LnVzZXJJZD8uX2lkKTtcbiAgICAgICAgICBpZiAodXNlckZyb21MaXN0KSB7XG4gICAgICAgICAgICBjb25zdCB1c2VyR3JvdXBzID0gdGhpcy5nZXRVc2VyR3JvdXBzKHVzZXJGcm9tTGlzdCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi51c2VyRnJvbUxpc3QsXG4gICAgICAgICAgICAgIGFzc29jaWF0ZWRHcm91cHM6IHVzZXJHcm91cHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigodXNlcjogYW55KSA9PiB1c2VyICE9PSBudWxsKSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBmaW5kVXNlckJ5SWQodXNlcklkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0Py5maW5kKCh1c2VyOiBhbnkpID0+IHVzZXI/Ll9pZCA9PT0gdXNlcklkKTtcbiAgfVxuXG4gIGdldFVuaXF1ZUFzc2lnbmVlcyhkaXJlY3RBc3NpZ25lZXM6IGFueVtdLCBncm91cEFzc2lnbmVlczogYW55W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIFsuLi5kaXJlY3RBc3NpZ25lZXMsIC4uLmdyb3VwQXNzaWduZWVzXS5yZWR1Y2UoXG4gICAgICAoYWNjOiBhbnlbXSwgdXNlcjogYW55KSA9PiB7XG4gICAgICAgIGlmICghYWNjLnNvbWUoKHU6IGFueSkgPT4gdT8uX2lkID09PSB1c2VyPy5faWQpKSB7XG4gICAgICAgICAgYWNjLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICBbXVxuICAgICk7XG4gIH1cblxuICBzZWxlY3RlZEFzc2lnbmVlKGV2ZW50OiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRTdGFnZUluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5hc3NpZ25lZURhdGFbdGhpcy5jdXJyZW50U3RhZ2VJbmRleF0gPSBldmVudDtcbiAgICB9XG4gICAgdGhpcy5hc3NpZ25lZUNsaWNrZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlRXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzYXZlQ2FzZVJlc29sdXRpb25EZWFkbGluZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNEdWVEYXRlVmFsaWQoKSkge1xuICAgICAgdGhpcy5zaG93RXJyb3IgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuYXJlQXNzaWduZWVzVmFsaWQoKSkge1xuICAgICAgdGhpcy5zaG93QXNzaWduZWVFcnJvciA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2hvd0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zaG93QXNzaWduZWVFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuc2V0UGF5bG9hZCgpO1xuICAgIHRoaXMuY2xvc2VEdWVEYXRlUmVzb2x1dGlvbi5lbWl0KCk7XG4gIH1cblxuICBpc0R1ZURhdGVWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmR1ZURhdGU7XG4gIH1cblxuICBhcmVBc3NpZ25lZXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53b3JrZmxvd0RldGFpbHM/LnN0YWdlc19hc3NpZ25lZXM/LmV2ZXJ5KFxuICAgICAgKHN0YWdlOiBhbnksIGluZGV4OiBudW1iZXIpID0+XG4gICAgICAgIHRoaXMuYXNzaWduZWVEYXRhW2luZGV4XSAmJiB0aGlzLmFzc2lnbmVlRGF0YVtpbmRleF0/Lmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgZm9ybWF0RHVlRGF0ZShkYXRlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2FsRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIC8vIEFkZCBvbmUgZGF5IHRvIHRoZSBkYXRlXG4gICAgbG9jYWxEYXRlLnNldERhdGUobG9jYWxEYXRlLmdldERhdGUoKSArIDEpO1xuICAgIC8vIFNldCB0aW1lIHRvIG1pZG5pZ2h0XG4gICAgbG9jYWxEYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBsb2NhbERhdGUudG9JU09TdHJpbmcoKTtcbiAgfVxuXG4gIHNldERlYWRsaW5lUmVtaW5kZXJzKCk6IHZvaWQge1xuICAgIHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lLmFzc2lnbmVlX3JlbWluZF9iZWZvcmUgPVxuICAgICAgdGhpcy5lbWFpbFJlbWluZGVyO1xuICAgIHRoaXMucGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lLm93bmVyX3JlbWluZF9iZWZvcmUgPVxuICAgICAgdGhpcy5lc2NhbGF0aW9uRW1haWw7XG4gIH1cblxuICBzZXRTdGFnZXNBc3NpZ25lZXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLndvcmtmbG93RGV0YWlscz8uc3RhZ2VzX2Fzc2lnbmVlc1xuICAgICAgLm1hcCgoc3RhZ2U6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBhc3NpZ25lZURhdGEgPSB0aGlzLmFzc2lnbmVlRGF0YVtpbmRleF07XG4gICAgICAgIHJldHVybiBhc3NpZ25lZURhdGFcbiAgICAgICAgICA/IHRoaXMuY3JlYXRlU3RhZ2VBc3NpZ25lZShzdGFnZSwgYXNzaWduZWVEYXRhKVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICB9XG5cbiAgY3JlYXRlU3RhZ2VBc3NpZ25lZShzdGFnZTogYW55LCBhc3NpZ25lZURhdGE6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhZ2VfaWQ6IHN0YWdlPy5zdGFnZV9pZCB8fCAnJyxcbiAgICAgIGFzc2lnbmVlX2lkOiBhc3NpZ25lZURhdGFbMF0/Ll9pZCB8fCAnJyxcbiAgICAgIGR1ZV9kYXRlOiBzdGFnZT8uZHVlX2RhdGUgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIHNldFBheWxvYWQoKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuZHVlRGF0ZTtcbiAgICB0aGlzLnBheWxvYWQuY2FzZVRvV29ya2Zsb3cucmVzb2x1dGlvbl9kZWFkbGluZS5kdWVfZGF0ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgdGhpcy5zZXREZWFkbGluZVJlbWluZGVycygpO1xuICAgIGNvbnN0IHN0YWdlc0Fzc2lnbmVlcyA9IHRoaXMuc2V0U3RhZ2VzQXNzaWduZWVzKCk7XG4gICAgdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUuc3RhZ2VzX2Fzc2lnbmVlcyA9XG4gICAgICBzdGFnZXNBc3NpZ25lZXM7XG4gICAgdGhpcy5wYXlsb2FkLmNhc2VUb1dvcmtmbG93LndvcmtmbG93X2lkID0gdGhpcy53b3JrZmxvd0RldGFpbHM/Ll9pZDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgZG9jdW1lbnRDbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZVBpY2tlck9iamVjdCA9IHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGNsYXNzOiAnZGVhZGxpbmUtZGF0ZScsXG4gICAgICBwb3B1cDogdGhpcy5kYXRlUGlja2VyUG9wVXAsXG4gICAgICBjb21wb25lbnQ6IHRoaXMuZGF0ZVBpY2tlcixcbiAgICAgIG92ZXJsYXk6IHRoaXMuZGF0ZVBpY2tlck92ZXJsYXksXG4gICAgfTtcbiAgICB0aGlzLmNvbW1vbkRhdGVTZXJ2aWNlLmhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKCkge1xuICAgIGlmICh0aGlzLmVtYWlsUmVtaW5kZXIgPT09IDApIHtcbiAgICAgIHRoaXMuZW1haWxSZW1pbmRlciA9IEVNQUlMX1JFTUlOREVSUy5lbWFpbF9yZW1pbmRlcjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXNjYWxhdGlvbkVtYWlsID09PSAwKSB7XG4gICAgICB0aGlzLmVzY2FsYXRpb25FbWFpbCA9IEVNQUlMX1JFTUlOREVSUy5lc2NhbGF0aW9uX2VtYWlsX3JlbWluZGVyO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XG4gICAgICBDb25maWd1cmUgUmVzb2x1dGlvbiBEZWFkbGluZSAmIFN0YWdlIERldGFpbHNcbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtcmVzb2x1dGlvbi1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1yZXNvbHV0aW9uLWJvZHktaW5uZXJcIj5cbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImZhbHNlXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgID48L2FwcC1uby1kYXRhPlxuXG4gICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJsYWJlbC10b3AgdngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC00IHZ4LW1iLTEgdngtdHQtdXBwZXJjYXNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNQRUNJRlkgVEhFIERFQURMSU5FIFRPIENMT1NFIFRISVMgQ0FTRVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTYgdngtZnctNDAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtYmFubmVyICpuZ0lmPVwibW9kZSA9PT0gJ0VESVQnXCI+XG4gICAgICAgICAgPHAgYmFubmVyPlxuICAgICAgICAgICAge3sgQ2FzZURlYWRsaW5lV2FybmluZyB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9hcHAtYmFubmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS1jYWxlbmRhciB2eC1tYi0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhc2UtY2FsZW5kYXItaW5uZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xuICAgICAgICAgICAgICAgIGR1ZURhdGVUZXh0cy5jYXNlX2RldGFpbHMuZHVlX2RhdGUuZGVhZGxpbmVfcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJkdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgICAgICBpZD1cImRlYWRsaW5lLWRhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAjZGVhZGxpbmVEYXRlUGlja2VyXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlOyBjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwiZGF0ZUNvbmZpZ1wiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZHVlRGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2RwLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJlcnJvck1zZyB2eC1mcy0xMSB2eC1saC00IHZ4LW10LTFcIj5cbiAgICAgICAgICAgIHt7IGR1ZURhdGVUZXh0cy5lcnJvck1lc3NhZ2UuZHVlRGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LW1iLTFcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxhYmVsLXRvcCB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTQgdngtdHQtdXBwZXJjYXNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBDT05GSUdVUkUgREVBRExJTkUgJiBBU1NJR05FRSBGT1IgRUFDSCBTVEFHRSBJTiBUSEUgV09SS0ZMT1dcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTYgdngtZnctNDAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0b2dnbGUtYXJlYSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICA8YXBwLWNzLXN3aXRjaD5BbGxvdyBSZW9wZW5pbmcgb2YgUHJldmlvdXMgU3RhZ2U8L2FwcC1jcy1zd2l0Y2g+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMlwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICdJZiBlbmFibGVkLCB0aGlzIG9wdGlvbiBhbGxvd3MgdGhlIGFzc2lnbmVlIHRvIHJldmlzaXQgYW5kIHJlb3BlbiBhIHByZXZpb3VzbHkgY29tcGxldGVkIHN0YWdlLiBUaGUgc3RhZ2Ugd2lsbCBiZSByZXNldCwgYW5kIHRoZSBhc3NpZ25lZCB1c2VyIHdpbGwgbmVlZCB0byBjb21wbGV0ZSBpdCBhZ2Fpbi4nXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXJlc29sdXRpb24tdGFibGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICNcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc3RhZ2UtbmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBTVEFHRSBOQU1FXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHN0YXR1c1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBUUkFOU0lUSU9OIFNUQVRVU1xuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJoZWxwZXJUZXh0LnRyYW5zaXRpb25fc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhc3NpZ25lZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBBU1NJR05FRVxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJoZWxwZXJUZXh0LmFzc2lnbmVlXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBkZWFkbGluZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBERUFETElORVxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJoZWxwZXJUZXh0LmRlYWRsaW5lXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtcm93XCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgb2Ygd29ya2Zsb3dEZXRhaWxzPy5zdGFnZXNfYXNzaWduZWVzO1xuICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vIHZ4LWZzLTEzIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzdGFnZS1uYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTMgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhPy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGRhdGE/Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzdGF0dXNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyXCI+XG4gICAgICAgICAgICAgICAgICB7eyBkYXRhPy5zdGF0dXNfdHJhbnNpdGlvbj8uZnJvbU5hbWUgfX08YnIgLz48c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICAgICA+VG88L3NwYW5cbiAgICAgICAgICAgICAgICAgID57eyBkYXRhPy5zdGF0dXNfdHJhbnNpdGlvbj8udG9OYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYXNzaWduZWVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKHRydWUsIGkpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWFzc2lnbmVlRGF0YVtpXT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC0zIHZ4LXByLTNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xM1wiPlNlbGVjdCBhIFVzZXI8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTJcIj4mI3hlOWU4OzwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImFzc2lnbmVlRGF0YVtpXT8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFmdGVyLXNlbGVjdC1ib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtMyB2eC1wci0yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUtY2hpcCB2eC1mcy0xMSB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImFzc2lnbmVlRGF0YVtpXVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgYXNzaWduZWVEYXRhW2ldWzBdPy5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKHRydWUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbXItMVwiPiYjeGU5YmE7PC9pXG4gICAgICAgICAgICAgICAgICAgID5FRElUXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBkZWFkbGluZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNhc2UtY2FsZW5kYXIgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wdC0zIHZ4LXBiLTNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXNlLWNhbGVuZGFyLWlubmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwie3sgZHVlRGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdGFnZS1kZWFkbGluZS1kYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7IGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0Fzc2lnbmVlRXJyb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJlcnJvck1zZyB2eC1mcy0xMSB2eC1saC00IHZ4LW10LTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGR1ZURhdGVUZXh0cy5lcnJvck1lc3NhZ2Uuc3RhZ2VBc3NpZ25lZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGFiZWwtdG9wIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNCB2eC1tYi0xIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgID5cbiAgICAgICAgICBFTUFJTCBSRU1JTkRFUiBDT05GSUdVUkFUSU9OXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNiB2eC1mdy00MDBcIj4qPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXIgdngtbWItMlwiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJsYWJlbC10b3AgdngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC00IHZ4LW1iLTEgdngtdHQtdXBwZXJjYXNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIFJFTUlOREVSIEVNQUlMXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJlbWFpbC1jb25maWd1cmUtYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtZmxleC13cmFwIHZ4LXAtMiB2eC1wbC0zIHZ4LXByLTMgdngtbWItMlwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbXItMVwiPlxuICAgICAgICAgICAgU2VuZCByZWd1bGFyIGVtYWlsIHJlbWluZGVycyB0byB0aGUgYXNzaWduZWVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbWFpbFJlbWluZGVyXCJcbiAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXkgIT09ICcuJ1wiXG4gICAgICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1tbC0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJsYWNrLXRleHRcIj5kYXlzPC9zcGFuPiBiZWZvcmUgdGhlIHN0YWdlIGRlYWRsaW5lLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGFiZWwtdG9wIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNCB2eC1tYi0xIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgID5cbiAgICAgICAgICBFU0NBTEFUSU9OIEVNQUlMXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJlbWFpbC1jb25maWd1cmUtYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtZmxleC13cmFwIHZ4LXAtMiB2eC1wbC0zIHZ4LXByLTMgdngtbWItMlwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtbXItMVwiPlxuICAgICAgICAgICAgU2VuZCBlbWFpbCBlc2NhbGF0aW9uIHRvIHRoZSBDYXNlIE93bmVyXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZXNjYWxhdGlvbkVtYWlsXCJcbiAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXkgIT09ICcuJ1wiXG4gICAgICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1tbC0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJsYWNrLXRleHRcIj5kYXlzPC9zcGFuPiBiZWZvcmUgdGhlIG92ZXJhbGwgY2FzZVxuICAgICAgICAgICAgZGVhZGxpbmUsIGlmIHRoZSBjYXNlIGlzIHN0aWxsIG9wZW4uXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VEdWVEYXRlKClcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZUNhc2VSZXNvbHV0aW9uRGVhZGxpbmUoKVwiXG4gICAgPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhcHAtYXNzaWduZWVcbiAgKm5nSWY9XCJhc3NpZ25lZUNsaWNrZWRcIlxuICBbcGF5bG9hZF09XCJwYXlsb2FkXCJcbiAgW2Fzc2lnbmVlTGlzdF09XCJhc3NpZ25lZUxpc3RcIlxuICBbYWN0aXZlQXNzaWduZWVdPVwiYWN0aXZlQXNzaWduZWVcIlxuICAoc2VsZWN0ZWRBc3NpZ25lZUV2ZW50KT1cInNlbGVjdGVkQXNzaWduZWUoJGV2ZW50KVwiXG4gIChjbG9zZUV2ZW50KT1cImFjdGl2YXRlU2VsZWN0b3IoZmFsc2UpXCJcbj48L2FwcC1hc3NpZ25lZT5cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Component, ElementRef, HostListener, Input, ViewChild, } from '@angular/core';
2
+ import * as moment from 'moment';
2
3
  import { ASSETS } from '../../../constants/assets.constants';
3
4
  import { FIELD_SELECTOR, REPORT_CASE } from '../../constants/report-case.constants';
4
5
  import * as i0 from "@angular/core";
@@ -20,6 +21,7 @@ export class ReportDateComponent {
20
21
  unSelectOnClick: true,
21
22
  openOnClick: false,
22
23
  openOnFocus: false,
24
+ max: moment(),
23
25
  };
24
26
  this.fieldSelector = FIELD_SELECTOR;
25
27
  this.fieldSelected = '';
@@ -179,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
179
181
  type: HostListener,
180
182
  args: ['document:click', ['$event']]
181
183
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL3JlcG9ydC1kYXRlL3JlcG9ydC1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7QUFtRHBGLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBakJoRCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBRTFCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQUc7WUFDWCxlQUFlLEVBQUUsSUFBSTtZQUNyQixNQUFNLEVBQUUsWUFBWTtZQUNwQixlQUFlLEVBQUUsSUFBSTtZQUNyQixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDO1FBQ0Ysa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFHdEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7SUFHZ0IsQ0FBQztJQU1yRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVE7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTztTQUNSO1FBQ0QsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNqQixJQUFJLFVBQVUsR0FBRztnQkFDZixLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7YUFDTixDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxTQUFTLElBQUksVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7K0dBM0VVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9aQXFCRyxVQUFVLDZCQW5FakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ1Q7OzRGQUdVLG1CQUFtQjtrQkFoRC9CLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNUO29HQWlCUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUltQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBNkM1RCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcbmltcG9ydCB7IEZJRUxEX1NFTEVDVE9SLCBSRVBPUlRfQ0FTRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9yZXBvcnQtY2FzZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcG9ydC1kYXRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICAgW2ltYWdlXT1cIkFTU0VUUy53aGVuXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZFNlbGVjdGVkKVwiXG4gICAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5vY2N1cnJlbmNlX2RhdGVcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICAgIDxhcHAtdmMtbGFiZWxcbiAgICAgICAgICBsYWJlbFxuICAgICAgICAgIFtsYWJlbFRleHRdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLndoZW4udGl0bGVcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC12Yy1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLndoZW4ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicGF5bG9hZD8ub2NjdXJyZW5jZV9kYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgIGlkPVwiZWZmZWN0aXZlLWRhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxuICAgICAgICAgICAgICAob25TZWxlY3QpPVwiZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTsgY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBheWxvYWQub2NjdXJyZW5jZV9kYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3IucmVwb3J0RGF0ZS5pc0Vycm9yXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLnJlcG9ydERhdGUubWVzc2FnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FwcC1maWVsZC1ob2xkZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3JlcG9ydC1kYXRlLmNvbXBvbmVudC5sZXNzJywgJy4uLy4uLy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RGF0ZUNvbXBvbmVudCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmVwb3J0VGV4dHMgPSBSRVBPUlRfQ0FTRTtcblxuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBkYXRlQ29uZmlnID0ge1xuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdERCBNTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgfTtcbiAgZmllbGRTZWxlY3RvciA9IEZJRUxEX1NFTEVDVE9SO1xuXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueTtcbiAgQElucHV0KCkgZmllbGRTZWxlY3RlZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHZhbGlkYXRpb25FcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSkgeyB9XG5cbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGRhdGVQaWNrZXJQb3BVcCE6IEVsZW1lbnRSZWY7XG5cbiAgb3BlbkRhdGVQaWNrZXIoKSB7XG4gICAgdGhpcy5kYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcbiAgfVxuXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcblxuICAgIGlmICghZXZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldnQ/LmRhdGU/LiRkKSB7XG4gICAgICBsZXQgbW9udGhBcnJheSA9IFtcbiAgICAgICAgJ0phbicsXG4gICAgICAgICdGZWInLFxuICAgICAgICAnTWFyJyxcbiAgICAgICAgJ0FwcicsXG4gICAgICAgICdKdW4nLFxuICAgICAgICAnSnVsJyxcbiAgICAgICAgJ0F1ZycsXG4gICAgICAgICdTZXAnLFxuICAgICAgICAnT2N0JyxcbiAgICAgICAgJ05vdicsXG4gICAgICAgICdEZWMnLFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldERhdGUoKTtcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldE1vbnRoKCldO1xuICAgICAgY29uc3QgeWVhclZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcbiAgICB9XG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcbiAgICAgIHRoaXMucGF5bG9hZC5vY2N1cnJlbmNlX2RhdGUgPSBldnQ/LmRhdGU/LiRkO1xuICAgIH1cbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcbiAgICB0aGlzLnJlc2V0VmFsaWRhdGlvbkVycm9ycygpO1xuICB9XG5cbiAgcmVzZXRWYWxpZGF0aW9uRXJyb3JzKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnJlcG9ydERhdGUuaXNFcnJvciA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlUGlja2VyT2JqZWN0ID0ge1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY2xhc3M6ICdlZmZlY3RpdmUtZGF0ZScsXG4gICAgICBwb3B1cDogdGhpcy5kYXRlUGlja2VyUG9wVXAsXG4gICAgICBjb21wb25lbnQ6IHRoaXMuZGF0ZVBpY2tlcixcbiAgICAgIG92ZXJsYXk6IHRoaXMuZGF0ZVBpY2tlck92ZXJsYXksXG4gICAgfTtcbiAgICB0aGlzLmNvbW1vblNlcnZpY2UuaGFuZGxlRG9jdW1lbnRDbGljayhkYXRlUGlja2VyT2JqZWN0KTtcbiAgfVxufVxuIl19
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9jb21wb25lbnRzL3JlcG9ydC1kYXRlL3JlcG9ydC1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7QUFvRHBGLE1BQU0sT0FBTyxtQkFBbUI7SUFtQjlCLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbEJoRCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBRTFCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQUc7WUFDWCxlQUFlLEVBQUUsSUFBSTtZQUNyQixNQUFNLEVBQUUsWUFBWTtZQUNwQixlQUFlLEVBQUUsSUFBSTtZQUNyQixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsTUFBTSxFQUFFO1NBQ2QsQ0FBQztRQUNGLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBR3RCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBR2dCLENBQUM7SUFNckQsY0FBYztRQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU87U0FDUjtRQUNELElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxVQUFVLEdBQUc7Z0JBQ2YsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2FBQ04sQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLEdBQUcsU0FBUyxJQUFJLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQztTQUMzRDtRQUNELElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDbEQsQ0FBQztJQUdELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7U0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzRCxDQUFDOytHQTVFVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixvWkFzQkcsVUFBVSw2QkFwRWpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNUOzs0RkFHVSxtQkFBbUI7a0JBaEQvQixTQUFTOytCQUNFLGlCQUFpQixZQUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDVDtvR0FrQlEsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFJbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUV2QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQTZDNUQsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBGSUVMRF9TRUxFQ1RPUiwgUkVQT1JUX0NBU0UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcblxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcG9ydC1kYXRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICAgW2ltYWdlXT1cIkFTU0VUUy53aGVuXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZFNlbGVjdGVkKVwiXG4gICAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5vY2N1cnJlbmNlX2RhdGVcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICAgIDxhcHAtdmMtbGFiZWxcbiAgICAgICAgICBsYWJlbFxuICAgICAgICAgIFtsYWJlbFRleHRdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLndoZW4udGl0bGVcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC12Yy1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLndoZW4ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicGF5bG9hZD8ub2NjdXJyZW5jZV9kYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgICAgIGlkPVwiZWZmZWN0aXZlLWRhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxuICAgICAgICAgICAgICAob25TZWxlY3QpPVwiZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTsgY2xvc2VEYXRlUGlja2VyKCRldmVudClcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBheWxvYWQub2NjdXJyZW5jZV9kYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3IucmVwb3J0RGF0ZS5pc0Vycm9yXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLnJlcG9ydERhdGUubWVzc2FnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FwcC1maWVsZC1ob2xkZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3JlcG9ydC1kYXRlLmNvbXBvbmVudC5sZXNzJywgJy4uLy4uLy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RGF0ZUNvbXBvbmVudCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmVwb3J0VGV4dHMgPSBSRVBPUlRfQ0FTRTtcblxuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBkYXRlQ29uZmlnID0ge1xuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdERCBNTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgICBtYXg6IG1vbWVudCgpLFxuICB9O1xuICBmaWVsZFNlbGVjdG9yID0gRklFTERfU0VMRUNUT1I7XG5cbiAgQElucHV0KCkgcGF5bG9hZDogYW55O1xuICBASW5wdXQoKSBmaWVsZFNlbGVjdGVkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdmFsaWRhdGlvbkVycm9yOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlKSB7IH1cblxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0ZVBpY2tlclBvcFVwITogRWxlbWVudFJlZjtcblxuICBvcGVuRGF0ZVBpY2tlcigpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG5cbiAgY2xvc2VEYXRlUGlja2VyKGV2dDogYW55KSB7XG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuXG4gICAgaWYgKCFldnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xuICAgICAgICAnSmFuJyxcbiAgICAgICAgJ0ZlYicsXG4gICAgICAgICdNYXInLFxuICAgICAgICAnQXByJyxcbiAgICAgICAgJ0p1bicsXG4gICAgICAgICdKdWwnLFxuICAgICAgICAnQXVnJyxcbiAgICAgICAgJ1NlcCcsXG4gICAgICAgICdPY3QnLFxuICAgICAgICAnTm92JyxcbiAgICAgICAgJ0RlYycsXG4gICAgICBdO1xuICAgICAgY29uc3QgZGF0ZVZhbHVlID0gbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0RGF0ZSgpO1xuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0TW9udGgoKV07XG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXRGdWxsWWVhcigpO1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGAke2RhdGVWYWx1ZX0gJHttb250aFZhbHVlfSAke3llYXJWYWx1ZX1gO1xuICAgIH1cbiAgICBpZiAoZXZ0Py5kYXRlPy4kZCkge1xuICAgICAgdGhpcy5wYXlsb2FkLm9jY3VycmVuY2VfZGF0ZSA9IGV2dD8uZGF0ZT8uJGQ7XG4gICAgfVxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xuICAgIHRoaXMucmVzZXRWYWxpZGF0aW9uRXJyb3JzKCk7XG4gIH1cblxuICByZXNldFZhbGlkYXRpb25FcnJvcnMoKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucmVwb3J0RGF0ZS5pc0Vycm9yID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGRvY3VtZW50Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGVQaWNrZXJPYmplY3QgPSB7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBjbGFzczogJ2VmZmVjdGl2ZS1kYXRlJyxcbiAgICAgIHBvcHVwOiB0aGlzLmRhdGVQaWNrZXJQb3BVcCxcbiAgICAgIGNvbXBvbmVudDogdGhpcy5kYXRlUGlja2VyLFxuICAgICAgb3ZlcmxheTogdGhpcy5kYXRlUGlja2VyT3ZlcmxheSxcbiAgICB9O1xuICAgIHRoaXMuY29tbW9uU2VydmljZS5oYW5kbGVEb2N1bWVudENsaWNrKGRhdGVQaWNrZXJPYmplY3QpO1xuICB9XG59XG4iXX0=
@@ -4,6 +4,7 @@ export const API_URLS = {
4
4
  GET_ALL_CATEGORIES: `/category/?fetch_all=true`,
5
5
  GET_STAGE_DETAILS: `/getWorkflow`,
6
6
  GET_CASE_OWNERS: `organizationMembers&manageCase=true&workflow_id=`,
7
- ADD_CASE_TO_WORKFLOW: `/add-to-workflow`
7
+ ADD_CASE_TO_WORKFLOW: `/add-to-workflow`,
8
+ VALIDATE_CASE_DEADLINE: `/validDeadline/`
8
9
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29uc3RhbnRzL2FwaS5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSx1QkFBdUI7SUFDdEMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLGtCQUFrQixFQUFFLDJCQUEyQjtJQUMvQyxpQkFBaUIsRUFBRSxjQUFjO0lBQ2pDLGVBQWUsRUFBRSxrREFBa0Q7SUFDbkUsb0JBQW9CLEVBQUUsa0JBQWtCO0NBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJX1VSTFMgPSB7XG4gICAgR0VUX0FMTF9UWVBFUzogYC90eXBlLz9mZXRjaF9hbGw9dHJ1ZWAsXG4gICAgR0VUX0FMTF9QUklPUklUSUVTOiBgL3ByaW9yaXR5Lz9mZXRjaF9hbGw9dHJ1ZWAsXG4gICAgR0VUX0FMTF9DQVRFR09SSUVTOiBgL2NhdGVnb3J5Lz9mZXRjaF9hbGw9dHJ1ZWAsXG4gICAgR0VUX1NUQUdFX0RFVEFJTFM6IGAvZ2V0V29ya2Zsb3dgLFxuICAgIEdFVF9DQVNFX09XTkVSUzogYG9yZ2FuaXphdGlvbk1lbWJlcnMmbWFuYWdlQ2FzZT10cnVlJndvcmtmbG93X2lkPWAsXG4gICAgQUREX0NBU0VfVE9fV09SS0ZMT1c6IGAvYWRkLXRvLXdvcmtmbG93YFxufTtcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3JlcG9ydC1hLWNhc2UvY29uc3RhbnRzL2FwaS5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSx1QkFBdUI7SUFDdEMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLGtCQUFrQixFQUFFLDJCQUEyQjtJQUMvQyxpQkFBaUIsRUFBRSxjQUFjO0lBQ2pDLGVBQWUsRUFBRSxrREFBa0Q7SUFDbkUsb0JBQW9CLEVBQUUsa0JBQWtCO0lBQ3hDLHNCQUFzQixFQUFFLGlCQUFpQjtDQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSV9VUkxTID0ge1xuICAgIEdFVF9BTExfVFlQRVM6IGAvdHlwZS8/ZmV0Y2hfYWxsPXRydWVgLFxuICAgIEdFVF9BTExfUFJJT1JJVElFUzogYC9wcmlvcml0eS8/ZmV0Y2hfYWxsPXRydWVgLFxuICAgIEdFVF9BTExfQ0FURUdPUklFUzogYC9jYXRlZ29yeS8/ZmV0Y2hfYWxsPXRydWVgLFxuICAgIEdFVF9TVEFHRV9ERVRBSUxTOiBgL2dldFdvcmtmbG93YCxcbiAgICBHRVRfQ0FTRV9PV05FUlM6IGBvcmdhbml6YXRpb25NZW1iZXJzJm1hbmFnZUNhc2U9dHJ1ZSZ3b3JrZmxvd19pZD1gLFxuICAgIEFERF9DQVNFX1RPX1dPUktGTE9XOiBgL2FkZC10by13b3JrZmxvd2AsXG4gICAgVkFMSURBVEVfQ0FTRV9ERUFETElORTogYC92YWxpZERlYWRsaW5lL2Bcbn07XG4iXX0=