vcomply-workflow-engine 3.1.2 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +18 -21
  2. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +28 -21
  3. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +17 -15
  4. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +14 -58
  5. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +28 -22
  6. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +16 -21
  7. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +30 -22
  8. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +18 -22
  9. package/esm2020/lib/workflow-policy/workflow-policy.component.mjs +3 -3
  10. package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +43 -33
  11. package/fesm2015/vcomply-workflow-engine.mjs +256 -292
  12. package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
  13. package/fesm2020/vcomply-workflow-engine.mjs +242 -264
  14. package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
  15. package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +0 -4
  16. package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +0 -4
  17. package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +4 -4
  18. package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +2 -8
  19. package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +1 -5
  20. package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +0 -4
  21. package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +1 -5
  22. package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +1 -5
  23. package/lib/workflow-risk/workflow-risk.component.d.ts +0 -2
  24. package/package.json +1 -1
@@ -20,8 +20,6 @@ export class FrequencyDialogOneTimeComponent {
20
20
  this.shortMonth = [];
21
21
  this.dateObjectData = this.frequencyService.changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1));
22
22
  this.minDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];
23
- this.oneTimeExtension = 5;
24
- this.oneTimeWindowOpen = 15;
25
23
  this.mode = '';
26
24
  this.frequencyDetails = new EventEmitter();
27
25
  }
@@ -34,6 +32,8 @@ export class FrequencyDialogOneTimeComponent {
34
32
  this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
35
33
  this.shortMonth = this.frequencyService.monthArray.map((month) => month.substring(0, 3));
36
34
  this.selectedDate = moment(this.todayDate);
35
+ console.log('this.dateConfig ', this.dateConfig, this.todayDate);
36
+ console.log('this.frequencyData ==>', this.frequencyData, this.frequencyData?.pattern.split('~'));
37
37
  if (this.frequencyData?.pattern != '' &&
38
38
  this.frequencyData?.pattern.split('~')[0] === '0') {
39
39
  this.populateFrequency();
@@ -44,7 +44,9 @@ export class FrequencyDialogOneTimeComponent {
44
44
  }
45
45
  populateFrequency() {
46
46
  const patternInfo = this.frequencyData?.pattern.split('~');
47
+ console.log('patternInfo ==>', patternInfo);
47
48
  const timeStamp = moment(`${patternInfo[3]}-${patternInfo[2]}-${patternInfo[1]} ${this.frequencyData?.failedTime}`, 'DD-MM-YYYY HH:mm a').unix();
49
+ console.log('timeStamp -->', timeStamp);
48
50
  this.todayDate = new Date(timeStamp * 1000);
49
51
  this.selectedDate = moment(this.todayDate);
50
52
  this.oneTimeFailed = this.frequencyData?.failed;
@@ -53,8 +55,6 @@ export class FrequencyDialogOneTimeComponent {
53
55
  this.oneTimeSelected =
54
56
  patternInfo[1] + '~' + patternInfo[2] + '~' + patternInfo[3];
55
57
  this.dateObjectData = new Date(moment(this.oneTimeSelected + ' ' + this.oneTimeStartTime, 'YYYY~MM~DD HH:mm:ss').unix() * 1000);
56
- this.oneTimeWindowOpen = this.frequencyData?.can_assess_before_days;
57
- this.oneTimeExtension = this.frequencyData?.failed_after_days;
58
58
  this.getOneTimeFrequency();
59
59
  }
60
60
  openDatePicker() {
@@ -77,23 +77,14 @@ export class FrequencyDialogOneTimeComponent {
77
77
  this.closeDatepicker();
78
78
  this.getOneTimeFrequency();
79
79
  }
80
- onWindowOpenChange(event) {
81
- if (event?.type?.toLowerCase() === 'window open') {
82
- this.oneTimeWindowOpen = event?.value;
83
- }
84
- this.getOneTimeFrequency();
85
- }
86
- onExtensionChange(event) {
87
- if (event?.type?.toLowerCase() === 'extension') {
88
- this.oneTimeExtension = event.value;
89
- }
90
- this.getOneTimeFrequency();
91
- }
92
80
  onTimeChanged(event) {
81
+ console.log('event sring', event);
82
+ console.log(this.dateObjectData);
93
83
  this.oneTimeStartTime = event;
94
84
  if (typeof this.dateObjectData == 'object') {
95
85
  this.dateObjectData = moment(this.dateObjectData).toDate();
96
86
  }
87
+ console.log(this.dateObjectData);
97
88
  let timeStamp = moment(this.dateObjectData.getDate() +
98
89
  '-' +
99
90
  (this.dateObjectData.getMonth() + 1) +
@@ -104,6 +95,7 @@ export class FrequencyDialogOneTimeComponent {
104
95
  this.oneTimeSelected = moment(timeStamp * 1000)
105
96
  .format('YYYY~MM~DDTHH:mm:ssZ')
106
97
  .split('T')[0];
98
+ console.log('timeStamp', timeStamp, this.oneTimeSelected);
107
99
  this.getOneTimeFrequency();
108
100
  }
109
101
  dateChange(event) {
@@ -118,9 +110,13 @@ export class FrequencyDialogOneTimeComponent {
118
110
  this.dateObjectData.getFullYear() +
119
111
  ' ' +
120
112
  this.oneTimeStartTime, 'DD-MM-YYYY hh:mm a').unix();
113
+ // tslint:disable-next-line: no-console
114
+ console.log('timeStamp', timeStamp, Date.now() / 1000, Date.now() / 1000 > timeStamp);
121
115
  this.oneTimeSelected = event.date
122
116
  .format('YYYY~MM~DDTHH:mm:ssZ')
123
117
  .split('T')[0];
118
+ // tslint:disable-next-line: no-console
119
+ console.log(event.date.format('YYYY~MM~DDTHH:mm:ssZ'));
124
120
  this.getOneTimeFrequency();
125
121
  }
126
122
  getOneTimeFrequency() {
@@ -128,6 +124,7 @@ export class FrequencyDialogOneTimeComponent {
128
124
  this.todayDate = moment(this.todayDate).toDate();
129
125
  }
130
126
  this.selectedDate = moment(this.todayDate);
127
+ // tslint:disable-next-line: max-line-length
131
128
  this.frequencyInfo.placeholder =
132
129
  'One Time ' +
133
130
  this.todayDate.getDate() +
@@ -161,17 +158,15 @@ export class FrequencyDialogOneTimeComponent {
161
158
  this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.oneTimeStartTime);
162
159
  this.frequencyInfo.failed_time_utc = 0;
163
160
  this.frequencyInfo.reportId = 0;
164
- this.frequencyInfo.failed_after_days = this.oneTimeExtension;
165
- this.frequencyInfo.can_assess_before_days = this.oneTimeWindowOpen;
166
161
  this.frequencyDetails.emit(this.frequencyInfo);
167
162
  console.log(' this.frequencyInfo ==>', this.frequencyInfo);
168
163
  }
169
164
  }
170
165
  FrequencyDialogOneTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogOneTimeComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
171
- FrequencyDialogOneTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogOneTimeComponent, selector: "app-frequency-dialog-one-time", inputs: { frequencyData: "frequencyData", mode: "mode" }, outputs: { frequencyDetails: "frequencyDetails" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0, template: "\r\n<div class=\"frequency-dialog-one-time\" *ngIf=\"true\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <!-- <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\"> -->\r\n <input class=\"datePicker\" type=\"text\" [value]=\"todayDate | date: 'dd MMM yyyy'\" [placeholder]=\"todayDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker()\" readonly>\r\n <!-- <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker> -->\r\n <dp-date-picker\r\n #datePicker\r\n [id]=\"'start-date-' + 6\"\r\n [placeholder]=\"todayDate | date: 'dd MMM yyyy'\"\r\n [(ngModel)]=\"selectedDate\"\r\n [config]=\"dateConfig\"\r\n (onSelect)=\"openDatePicker();dateChange($event); showDateError = false; datepickerOverlay = false\">\r\n </dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <!-- <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\"> -->\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"oneTimeStartTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i> -->\r\n <ngx-material-timepicker [hoursOnly]=\"true\" (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '6'\r\n [mode]=\"mode\"\r\n [pageName]=\"'one-time'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"oneTimeWindow\"\r\n [windowCloses]=\"oneTimeExtension\"\r\n [assessWindowOpen]=\"oneTimeWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.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 .frequency-dialog-one-time-item{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-dialog-one-time-item .date-picker{position:relative;width:calc(100% - 6.75rem)}::ng-deep .frequency-dialog-one-time-item .date-picker .calendar-icon{position:absolute;left:.75rem;top:9px;pointer-events:none;z-index:1}::ng-deep .frequency-dialog-one-time-item .date-picker input{border-radius:.25rem;border:1px solid #dbdbdb;color:#161b2f;font-size:13px;font-weight:400;padding:0 .5rem 0 2.25rem;height:2rem;width:100%;cursor:pointer;outline:none}::ng-deep .frequency-dialog-one-time-item .date-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker{border-radius:.25rem;border:1px solid #dbdbdb;height:2rem;width:6.25rem;position:relative}::ng-deep .frequency-dialog-one-time-item .time-picker input{background:transparent;border-radius:0;border:none;color:#161b2f;font-size:13px;margin:0!important;padding:0 0 0 .75rem;position:absolute;top:0;left:0;height:100%;width:100%;cursor:pointer}::ng-deep .frequency-dialog-one-time-item .time-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker input:focus{outline:none}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgxMaterialTimepickerComponent, selector: "ngx-material-timepicker", inputs: ["ESC", "hoursOnly", "ngxMaterialTimepickerTheme", "format", "minutesGap", "cancelBtnTmpl", "editableHintTmpl", "confirmBtnTmpl", "enableKeyboardInput", "preventOverlayClick", "disableAnimation", "appendToInput", "defaultTime", "timepickerClass", "theme", "min", "max"], outputs: ["timeSet", "opened", "closed", "hourSelected", "timeChanged"] }, { kind: "component", type: i5.DatePickerComponent, selector: "dp-date-picker", inputs: ["mode", "placeholder", "disabled", "config", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i6.FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: ["mode", "completedValue", "deactivateValue", "isDeactivated", "id", "pageName", "windowCloses", "assessWindowOpen"], outputs: ["valueChange", "windowOpenChange", "extensionValueChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
166
+ FrequencyDialogOneTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogOneTimeComponent, selector: "app-frequency-dialog-one-time", inputs: { frequencyData: "frequencyData", mode: "mode" }, outputs: { frequencyDetails: "frequencyDetails" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"frequency-dialog-one-time\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\">\r\n <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\">\r\n <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i>\r\n <ngx-material-timepicker #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-mb-5\">\r\n <app-frequency-dialog-due-date></app-frequency-dialog-due-date>\r\n </div>\r\n</div> -->\r\n\r\n<div class=\"frequency-dialog-one-time\" *ngIf=\"true\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <!-- <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\"> -->\r\n <input class=\"datePicker\" type=\"text\" [value]=\"todayDate | date: 'dd MMM yyyy'\" [placeholder]=\"todayDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker()\" readonly>\r\n <!-- <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker> -->\r\n <dp-date-picker\r\n #datePicker\r\n [id]=\"'start-date-' + 6\"\r\n [placeholder]=\"todayDate | date: 'dd MMM yyyy'\"\r\n [(ngModel)]=\"selectedDate\"\r\n [config]=\"dateConfig\"\r\n (onSelect)=\"openDatePicker();dateChange($event); showDateError = false; datepickerOverlay = false\">\r\n </dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <!-- <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\"> -->\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"oneTimeStartTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i> -->\r\n <ngx-material-timepicker [hoursOnly]=\"true\" (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-mb-5\">\r\n <app-frequency-dialog-due-date\r\n [id] = '6'\r\n [mode]=\"mode\"\r\n [pageName]=\"'one-time'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"oneTimeWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.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 .frequency-dialog-one-time-item{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-dialog-one-time-item .date-picker{position:relative;width:calc(100% - 6.75rem)}::ng-deep .frequency-dialog-one-time-item .date-picker .calendar-icon{position:absolute;left:.75rem;top:9px;pointer-events:none;z-index:1}::ng-deep .frequency-dialog-one-time-item .date-picker input{border-radius:.25rem;border:1px solid #dbdbdb;color:#161b2f;font-size:13px;font-weight:400;padding:0 .5rem 0 2.25rem;height:2rem;width:100%;cursor:pointer;outline:none}::ng-deep .frequency-dialog-one-time-item .date-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker{border-radius:.25rem;border:1px solid #dbdbdb;height:2rem;width:6.25rem;position:relative}::ng-deep .frequency-dialog-one-time-item .time-picker input{background:transparent;border-radius:0;border:none;color:#161b2f;font-size:13px;margin:0!important;padding:0 0 0 .75rem;position:absolute;top:0;left:0;height:100%;width:100%;cursor:pointer}::ng-deep .frequency-dialog-one-time-item .time-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker input:focus{outline:none}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgxMaterialTimepickerComponent, selector: "ngx-material-timepicker", inputs: ["ESC", "hoursOnly", "ngxMaterialTimepickerTheme", "format", "minutesGap", "cancelBtnTmpl", "editableHintTmpl", "confirmBtnTmpl", "enableKeyboardInput", "preventOverlayClick", "disableAnimation", "appendToInput", "defaultTime", "timepickerClass", "theme", "min", "max"], outputs: ["timeSet", "opened", "closed", "hourSelected", "timeChanged"] }, { kind: "component", type: i5.DatePickerComponent, selector: "dp-date-picker", inputs: ["mode", "placeholder", "disabled", "config", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i6.FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: ["mode", "completedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
172
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogOneTimeComponent, decorators: [{
173
168
  type: Component,
174
- args: [{ selector: 'app-frequency-dialog-one-time', template: "\r\n<div class=\"frequency-dialog-one-time\" *ngIf=\"true\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <!-- <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\"> -->\r\n <input class=\"datePicker\" type=\"text\" [value]=\"todayDate | date: 'dd MMM yyyy'\" [placeholder]=\"todayDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker()\" readonly>\r\n <!-- <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker> -->\r\n <dp-date-picker\r\n #datePicker\r\n [id]=\"'start-date-' + 6\"\r\n [placeholder]=\"todayDate | date: 'dd MMM yyyy'\"\r\n [(ngModel)]=\"selectedDate\"\r\n [config]=\"dateConfig\"\r\n (onSelect)=\"openDatePicker();dateChange($event); showDateError = false; datepickerOverlay = false\">\r\n </dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <!-- <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\"> -->\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"oneTimeStartTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i> -->\r\n <ngx-material-timepicker [hoursOnly]=\"true\" (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '6'\r\n [mode]=\"mode\"\r\n [pageName]=\"'one-time'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"oneTimeWindow\"\r\n [windowCloses]=\"oneTimeExtension\"\r\n [assessWindowOpen]=\"oneTimeWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.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 .frequency-dialog-one-time-item{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-dialog-one-time-item .date-picker{position:relative;width:calc(100% - 6.75rem)}::ng-deep .frequency-dialog-one-time-item .date-picker .calendar-icon{position:absolute;left:.75rem;top:9px;pointer-events:none;z-index:1}::ng-deep .frequency-dialog-one-time-item .date-picker input{border-radius:.25rem;border:1px solid #dbdbdb;color:#161b2f;font-size:13px;font-weight:400;padding:0 .5rem 0 2.25rem;height:2rem;width:100%;cursor:pointer;outline:none}::ng-deep .frequency-dialog-one-time-item .date-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker{border-radius:.25rem;border:1px solid #dbdbdb;height:2rem;width:6.25rem;position:relative}::ng-deep .frequency-dialog-one-time-item .time-picker input{background:transparent;border-radius:0;border:none;color:#161b2f;font-size:13px;margin:0!important;padding:0 0 0 .75rem;position:absolute;top:0;left:0;height:100%;width:100%;cursor:pointer}::ng-deep .frequency-dialog-one-time-item .time-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker input:focus{outline:none}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}\n"] }]
169
+ args: [{ selector: 'app-frequency-dialog-one-time', template: "<!-- <div class=\"frequency-dialog-one-time\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\">\r\n <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\">\r\n <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i>\r\n <ngx-material-timepicker #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-mb-5\">\r\n <app-frequency-dialog-due-date></app-frequency-dialog-due-date>\r\n </div>\r\n</div> -->\r\n\r\n<div class=\"frequency-dialog-one-time\" *ngIf=\"true\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\">\r\n <div class=\"date-picker\">\r\n <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\r\n <!-- <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\"> -->\r\n <input class=\"datePicker\" type=\"text\" [value]=\"todayDate | date: 'dd MMM yyyy'\" [placeholder]=\"todayDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker()\" readonly>\r\n <!-- <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker> -->\r\n <dp-date-picker\r\n #datePicker\r\n [id]=\"'start-date-' + 6\"\r\n [placeholder]=\"todayDate | date: 'dd MMM yyyy'\"\r\n [(ngModel)]=\"selectedDate\"\r\n [config]=\"dateConfig\"\r\n (onSelect)=\"openDatePicker();dateChange($event); showDateError = false; datepickerOverlay = false\">\r\n </dp-date-picker>\r\n <div class=\"overlay\" (click)=\"closeDatepicker()\" *ngIf=\"datepickerOverlay\"></div>\r\n </div>\r\n <div class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\">\r\n <!-- <input type=\"text\" readonly aria-label=\"12hr format\" [ngxTimepicker]=\"dailyTime\" placeholder=\"11:59 PM\"> -->\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"oneTimeStartTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons vx-fs-12 vx-txt-blue\">&#xe955;</i> -->\r\n <ngx-material-timepicker [hoursOnly]=\"true\" (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker>\r\n </div>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-one-time-item vx-mb-5\">\r\n <app-frequency-dialog-due-date\r\n [id] = '6'\r\n [mode]=\"mode\"\r\n [pageName]=\"'one-time'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"oneTimeWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.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 .frequency-dialog-one-time-item{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-dialog-one-time-item .date-picker{position:relative;width:calc(100% - 6.75rem)}::ng-deep .frequency-dialog-one-time-item .date-picker .calendar-icon{position:absolute;left:.75rem;top:9px;pointer-events:none;z-index:1}::ng-deep .frequency-dialog-one-time-item .date-picker input{border-radius:.25rem;border:1px solid #dbdbdb;color:#161b2f;font-size:13px;font-weight:400;padding:0 .5rem 0 2.25rem;height:2rem;width:100%;cursor:pointer;outline:none}::ng-deep .frequency-dialog-one-time-item .date-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker{border-radius:.25rem;border:1px solid #dbdbdb;height:2rem;width:6.25rem;position:relative}::ng-deep .frequency-dialog-one-time-item .time-picker input{background:transparent;border-radius:0;border:none;color:#161b2f;font-size:13px;margin:0!important;padding:0 0 0 .75rem;position:absolute;top:0;left:0;height:100%;width:100%;cursor:pointer}::ng-deep .frequency-dialog-one-time-item .time-picker input::placeholder{color:#161b2f}::ng-deep .frequency-dialog-one-time-item .time-picker input:focus{outline:none}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}\n"] }]
175
170
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { datePicker: [{
176
171
  type: ViewChild,
177
172
  args: ['datePicker']
@@ -182,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
182
177
  }], frequencyDetails: [{
183
178
  type: Output
184
179
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lL2ZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQU9uQyxNQUFNLE9BQU8sK0JBQStCO0lBMkIxQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXpCdEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFRLFVBQVUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixjQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FDOUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nT25lVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVwaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2hvd0RhdGVFcnJvciA9IGZhbHNlO1xyXG4gIG9uZVRpbWVGYWlsZWQgPSA1O1xyXG4gIG9uZVRpbWVXaW5kb3cgPSAxNTtcclxuICBvbmVUaW1lU3RhcnRUaW1lOiBhbnkgPSAnMTE6MDAgcG0nO1xyXG4gIG9uZVRpbWVTZWxlY3RlZCA9ICcnO1xyXG4gIGRhdGVDb25maWc6IGFueTtcclxuICB0b2RheURhdGUgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUoXHJcbiAgICBuZXcgRGF0ZSgpPy5zZXREYXRlKG5ldyBEYXRlKCk/LmdldERhdGUoKSArIDEpXHJcbiAgKTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIGRhdGVPYmplY3REYXRhID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKFxyXG4gICAgbmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKVxyXG4gICk7XHJcbiAgbWluRGF0ZSA9IG1vbWVudChEYXRlLm5vdygpKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKT8uc3BsaXQoJyAnKVswXTtcclxuICBzZWxlY3RlZERhdGU6IGFueTtcclxuICBvbmVUaW1lRXh0ZW5zaW9uOiBudW1iZXIgPSA1O1xyXG4gIG9uZVRpbWVXaW5kb3dPcGVuOiBudW1iZXIgPSAxNTtcclxuXHJcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlQ29uZmlnID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRhdGVDb25maWc7XHJcbiAgICB0aGlzLmRhdGVDb25maWdbJ21pbiddID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXHJcbiAgICAgIC5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpPy5zZXREYXRlKG5ldyBEYXRlKCk/LmdldERhdGUoKSArIDEpKVxyXG4gICAgICA/LmdldERhdGUoKVxyXG4gICAgICA/LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMuc2hvcnRNb250aCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5Lm1hcCgobW9udGgpID0+XHJcbiAgICAgIG1vbnRoLnN1YnN0cmluZygwLCAzKVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuICE9ICcnICYmXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpWzBdID09PSAnMCdcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKTtcclxuICAgIGNvbnN0IHRpbWVTdGFtcCA9IG1vbWVudChcclxuICAgICAgYCR7cGF0dGVybkluZm9bM119LSR7cGF0dGVybkluZm9bMl19LSR7cGF0dGVybkluZm9bMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lfWAsXHJcbiAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXHJcbiAgICApLnVuaXgoKTtcclxuICAgIHRoaXMudG9kYXlEYXRlID0gbmV3IERhdGUodGltZVN0YW1wICogMTAwMCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XHJcbiAgICB0aGlzLm9uZVRpbWVGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIHRoaXMub25lVGltZVdpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93O1xyXG4gICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy5vbmVUaW1lU2VsZWN0ZWQgPVxyXG4gICAgICBwYXR0ZXJuSW5mb1sxXSArICd+JyArIHBhdHRlcm5JbmZvWzJdICsgJ34nICsgcGF0dGVybkluZm9bM107XHJcbiAgICB0aGlzLmRhdGVPYmplY3REYXRhID0gbmV3IERhdGUoXHJcbiAgICAgIG1vbWVudChcclxuICAgICAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCArICcgJyArIHRoaXMub25lVGltZVN0YXJ0VGltZSxcclxuICAgICAgICAnWVlZWX5NTX5ERCBISDptbTpzcydcclxuICAgICAgKS51bml4KCkgKiAxMDAwXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbmVUaW1lV2luZG93T3BlbiA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uY2FuX2Fzc2Vzc19iZWZvcmVfZGF5cztcclxuICAgIHRoaXMub25lVGltZUV4dGVuc2lvbiA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkX2FmdGVyX2RheXM7XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgY29uc3QgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgIHRoaXMub25lVGltZVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsb3NlRGF0ZXBpY2tlcigpO1xyXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvbldpbmRvd09wZW5DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnd2luZG93IG9wZW4nKSB7XHJcbiAgICAgIHRoaXMub25lVGltZVdpbmRvd09wZW4gPSBldmVudD8udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2V4dGVuc2lvbicpIHtcclxuICAgICAgdGhpcy5vbmVUaW1lRXh0ZW5zaW9uID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lID0gZXZlbnQ7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZGF0ZU9iamVjdERhdGEgPT0gJ29iamVjdCcpIHtcclxuICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YSA9IG1vbWVudCh0aGlzLmRhdGVPYmplY3REYXRhKS50b0RhdGUoKTtcclxuICAgIH1cclxuICAgIGxldCB0aW1lU3RhbXAgPSBtb21lbnQoXHJcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgICh0aGlzLmRhdGVPYmplY3REYXRhLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICB0aGlzLmRhdGVPYmplY3REYXRhLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxyXG4gICAgICAnREQtTU0tWVlZWSBoaDptbSBhJ1xyXG4gICAgKS51bml4KCk7XHJcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IG1vbWVudCh0aW1lU3RhbXAgKiAxMDAwKVxyXG4gICAgICAuZm9ybWF0KCdZWVlZfk1NfkREVEhIOm1tOnNzWicpXHJcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xyXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZXZlbnQuZGF0ZTtcclxuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQoZXZlbnQuZGF0ZSkudW5peCgpO1xyXG5cclxuICAgIHRoaXMuZGF0ZU9iamVjdERhdGEgPSBuZXcgRGF0ZShuZXdEYXRlICogMTAwMCk7XHJcbiAgICB0aGlzLnRvZGF5RGF0ZSA9IHRoaXMuZGF0ZU9iamVjdERhdGE7XHJcbiAgICBsZXQgdGltZVN0YW1wID0gbW9tZW50KFxyXG4gICAgICB0aGlzLmRhdGVPYmplY3REYXRhLmdldERhdGUoKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAodGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHRoaXMub25lVGltZVN0YXJ0VGltZSxcclxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcclxuICAgICkudW5peCgpO1xyXG4gICAgdGhpcy5vbmVUaW1lU2VsZWN0ZWQgPSBldmVudC5kYXRlXHJcbiAgICAgIC5mb3JtYXQoJ1lZWVl+TU1+RERUSEg6bW06c3NaJylcclxuICAgICAgLnNwbGl0KCdUJylbMF07XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGdldE9uZVRpbWVGcmVxdWVuY3koKSB7XHJcbiAgICBpZiAodGhpcy5vbmVUaW1lU2VsZWN0ZWQgIT09ICcnKSB7XHJcbiAgICAgIHRoaXMudG9kYXlEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKS50b0RhdGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9XHJcbiAgICAgICdPbmUgVGltZSAnICtcclxuICAgICAgdGhpcy50b2RheURhdGUuZ2V0RGF0ZSgpICtcclxuICAgICAgJyAnICtcclxuICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMudG9kYXlEYXRlLmdldE1vbnRoKCldICtcclxuICAgICAgJyAnICtcclxuICAgICAgdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSArXHJcbiAgICAgICcgYnkgJyArXHJcbiAgICAgIHRoaXMub25lVGltZVN0YXJ0VGltZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cclxuICAgICAgMCArXHJcbiAgICAgICd+JyArXHJcbiAgICAgICh0aGlzLm9uZVRpbWVTZWxlY3RlZCA9PT0gJydcclxuICAgICAgICA/IHRoaXMuZnJlcXVlbmN5U2VydmljZVxyXG4gICAgICAgICAgICAuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKSlcclxuICAgICAgICAgICAgPy5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAgICd+JyArXHJcbiAgICAgICAgICAodGhpcy5mcmVxdWVuY3lTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpPy5zZXREYXRlKG5ldyBEYXRlKCk/LmdldERhdGUoKSArIDEpKVxyXG4gICAgICAgICAgICA/LmdldE1vbnRoKCkgK1xyXG4gICAgICAgICAgICAxKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpPy5zZXREYXRlKG5ldyBEYXRlKCk/LmdldERhdGUoKSArIDEpKVxyXG4gICAgICAgICAgICA/LmdldERhdGUoKVxyXG4gICAgICAgIDogdGhpcy5vbmVUaW1lU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnb25lVGltZSc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLm9uZVRpbWVGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5vbmVUaW1lV2luZG93O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLm9uZVRpbWVTdGFydFRpbWU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLm9uZVRpbWVTdGFydFRpbWVcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX2FmdGVyX2RheXMgPSB0aGlzLm9uZVRpbWVFeHRlbnNpb247XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FuX2Fzc2Vzc19iZWZvcmVfZGF5cyA9IHRoaXMub25lVGltZVdpbmRvd09wZW47XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgY29uc29sZS5sb2coJyB0aGlzLmZyZXF1ZW5jeUluZm8gPT0+JywgdGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lXCIgKm5nSWY9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBGUkVRVUVOQ1k6PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS1pdGVtIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1tYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNCB2eC10eHQtYmx1ZVwiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImRhdGVQaWNrZXJcIiAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIj4gLS0+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImRhdGVQaWNrZXJcIiB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJ0b2RheURhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgW3BsYWNlaG9sZGVyXT1cInRvZGF5RGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIiAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICA8IS0tIDxkcC1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciBwbGFjZWhvbGRlcj0nU2VsZWN0IERhdGUnIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCIgKGNsaWNrKT1cImNsb3NlRGF0ZXBpY2tlcigpXCI+PC9kcC1kYXRlLXBpY2tlcj4gLS0+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI2RhdGVQaWNrZXJcclxuICAgICAgICAgICAgICAgIFtpZF09XCInc3RhcnQtZGF0ZS0nICsgNlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidG9kYXlEYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9wZW5EYXRlUGlja2VyKCk7ZGF0ZUNoYW5nZSgkZXZlbnQpOyBzaG93RGF0ZUVycm9yID0gZmFsc2U7IGRhdGVwaWNrZXJPdmVybGF5ID0gZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKClcIiAqbmdJZj1cImRhdGVwaWNrZXJPdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtcHItM1wiPlxyXG4gICAgICAgICAgICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFtuZ3hUaW1lcGlja2VyXT1cImRhaWx5VGltZVwiIHBsYWNlaG9sZGVyPVwiMTE6NTkgUE1cIj4gLS0+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFsobmdNb2RlbCldPVwib25lVGltZVN0YXJ0VGltZVwiICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC10eHQtYmx1ZVwiPiYjeGU5NTU7PC9pPiAtLT5cclxuICAgICAgICAgICAgPG5neC1tYXRlcmlhbC10aW1lcGlja2VyIFtob3Vyc09ubHldPVwidHJ1ZVwiICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIiAjZGFpbHlUaW1lPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICBbaWRdID0gJzYnXHJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICBbcGFnZU5hbWVdPVwiJ29uZS10aW1lJ1wiXHJcbiAgICAgIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcclxuICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uZVRpbWVXaW5kb3dcIlxyXG4gICAgICBbd2luZG93Q2xvc2VzXT1cIm9uZVRpbWVFeHRlbnNpb25cIlxyXG4gICAgICBbYXNzZXNzV2luZG93T3Blbl09XCJvbmVUaW1lV2luZG93T3BlblwiXHJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAod2luZG93T3BlbkNoYW5nZSk9XCJvbldpbmRvd09wZW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChleHRlbnNpb25WYWx1ZUNoYW5nZSk9XCJvbkV4dGVuc2lvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG48L2Rpdj5cclxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lL2ZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQU9uQyxNQUFNLE9BQU8sK0JBQStCO0lBNEMxQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXZCdEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFRLFVBQVUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixjQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FDOUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FB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QkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsK0JBQStCO3VHQXdCaEIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQW1CZCxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dPbmVUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyB0aW1lRGF0YSA9ICcxMTo1OSBwbSc7XHJcbiAgLy8gQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIC8vIGRhdGVwaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcblxyXG4gIC8vIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgLy8gICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gIC8vICAgdGhpcy5kYXRlcGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBjbG9zZURhdGVwaWNrZXIoKSB7XHJcbiAgLy8gICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAvLyAgIHRoaXMuZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAvLyB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBkYXRlcGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gIHNob3dEYXRlRXJyb3IgPSBmYWxzZTtcclxuICBvbmVUaW1lRmFpbGVkID0gNTtcclxuICBvbmVUaW1lV2luZG93ID0gMTU7XHJcbiAgb25lVGltZVN0YXJ0VGltZTogYW55ID0gJzExOjAwIHBtJztcclxuICBvbmVUaW1lU2VsZWN0ZWQgPSAnJztcclxuICBkYXRlQ29uZmlnOiBhbnk7XHJcbiAgdG9kYXlEYXRlID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKFxyXG4gICAgbmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKVxyXG4gICk7XHJcbiAgLy8gdG9kYXlEYXRlID0gJ2ZyaSBKYW4gMjAgMjAyMyAyMzo0MDowOSBHTVQrMDUzMCAoSW5kaWEgU3RhbmRhcmQgVGltZSknO1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBzaG9ydE1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgZGF0ZU9iamVjdERhdGEgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUoXHJcbiAgICBuZXcgRGF0ZSgpPy5zZXREYXRlKG5ldyBEYXRlKCk/LmdldERhdGUoKSArIDEpXHJcbiAgKTtcclxuICBtaW5EYXRlID0gbW9tZW50KERhdGUubm93KCkpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpPy5zcGxpdCgnICcpWzBdO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55O1xyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZUNvbmZpZyA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5kYXRlQ29uZmlnO1xyXG4gICAgdGhpcy5kYXRlQ29uZmlnWydtaW4nXSA9IHRoaXMuZnJlcXVlbmN5U2VydmljZVxyXG4gICAgICAuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKSlcclxuICAgICAgPy5nZXREYXRlKClcclxuICAgICAgPy50b1N0cmluZygpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoKSA9PlxyXG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5kYXRlQ29uZmlnICcsIHRoaXMuZGF0ZUNvbmZpZywgdGhpcy50b2RheURhdGUpO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICd0aGlzLmZyZXF1ZW5jeURhdGEgPT0+JyxcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKVxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuICE9ICcnICYmXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpWzBdID09PSAnMCdcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKTtcclxuICAgIGNvbnNvbGUubG9nKCdwYXR0ZXJuSW5mbyA9PT4nLCBwYXR0ZXJuSW5mbyk7XHJcbiAgICBjb25zdCB0aW1lU3RhbXAgPSBtb21lbnQoXHJcbiAgICAgIGAke3BhdHRlcm5JbmZvWzNdfS0ke3BhdHRlcm5JbmZvWzJdfS0ke3BhdHRlcm5JbmZvWzFdfSAke3RoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkVGltZX1gLFxyXG4gICAgICAnREQtTU0tWVlZWSBISDptbSBhJ1xyXG4gICAgKS51bml4KCk7XHJcbiAgICBjb25zb2xlLmxvZygndGltZVN0YW1wICAtLT4nLCB0aW1lU3RhbXApO1xyXG4gICAgdGhpcy50b2RheURhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXAgKiAxMDAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcclxuICAgIHRoaXMub25lVGltZUZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkO1xyXG4gICAgdGhpcy5vbmVUaW1lV2luZG93ID0gdGhpcy5mcmVxdWVuY3lEYXRhPy53aW5kb3c7XHJcbiAgICB0aGlzLm9uZVRpbWVTdGFydFRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZFRpbWU7XHJcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9XHJcbiAgICAgIHBhdHRlcm5JbmZvWzFdICsgJ34nICsgcGF0dGVybkluZm9bMl0gKyAnficgKyBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMuZGF0ZU9iamVjdERhdGEgPSBuZXcgRGF0ZShcclxuICAgICAgbW9tZW50KFxyXG4gICAgICAgIHRoaXMub25lVGltZVNlbGVjdGVkICsgJyAnICsgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxyXG4gICAgICAgICdZWVlZfk1NfkREIEhIOm1tOnNzJ1xyXG4gICAgICApLnVuaXgoKSAqIDEwMDBcclxuICAgICk7XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgY29uc3QgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgIHRoaXMub25lVGltZVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsb3NlRGF0ZXBpY2tlcigpO1xyXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCBzcmluZycsIGV2ZW50KTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0ZU9iamVjdERhdGEpO1xyXG5cclxuICAgIHRoaXMub25lVGltZVN0YXJ0VGltZSA9IGV2ZW50O1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGVPYmplY3REYXRhID09ICdvYmplY3QnKSB7XHJcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEgPSBtb21lbnQodGhpcy5kYXRlT2JqZWN0RGF0YSkudG9EYXRlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGVPYmplY3REYXRhKTtcclxuICAgIGxldCB0aW1lU3RhbXAgPSBtb21lbnQoXHJcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgICh0aGlzLmRhdGVPYmplY3REYXRhLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICB0aGlzLmRhdGVPYmplY3REYXRhLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxyXG4gICAgICAnREQtTU0tWVlZWSBoaDptbSBhJ1xyXG4gICAgKS51bml4KCk7XHJcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IG1vbWVudCh0aW1lU3RhbXAgKiAxMDAwKVxyXG4gICAgICAuZm9ybWF0KCdZWVlZfk1NfkREVEhIOm1tOnNzWicpXHJcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xyXG4gICAgY29uc29sZS5sb2coJ3RpbWVTdGFtcCcsIHRpbWVTdGFtcCwgdGhpcy5vbmVUaW1lU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZXZlbnQuZGF0ZTtcclxuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQoZXZlbnQuZGF0ZSkudW5peCgpO1xyXG5cclxuICAgIHRoaXMuZGF0ZU9iamVjdERhdGEgPSBuZXcgRGF0ZShuZXdEYXRlICogMTAwMCk7XHJcbiAgICB0aGlzLnRvZGF5RGF0ZSA9IHRoaXMuZGF0ZU9iamVjdERhdGE7XHJcbiAgICBsZXQgdGltZVN0YW1wID0gbW9tZW50KFxyXG4gICAgICB0aGlzLmRhdGVPYmplY3REYXRhLmdldERhdGUoKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAodGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHRoaXMub25lVGltZVN0YXJ0VGltZSxcclxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcclxuICAgICkudW5peCgpO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ3RpbWVTdGFtcCcsXHJcbiAgICAgIHRpbWVTdGFtcCxcclxuICAgICAgRGF0ZS5ub3coKSAvIDEwMDAsXHJcbiAgICAgIERhdGUubm93KCkgLyAxMDAwID4gdGltZVN0YW1wXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbmVUaW1lU2VsZWN0ZWQgPSBldmVudC5kYXRlXHJcbiAgICAgIC5mb3JtYXQoJ1lZWVl+TU1+RERUSEg6bW06c3NaJylcclxuICAgICAgLnNwbGl0KCdUJylbMF07XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZyhldmVudC5kYXRlLmZvcm1hdCgnWVlZWX5NTX5ERFRISDptbTpzc1onKSk7XHJcbiAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGdldE9uZVRpbWVGcmVxdWVuY3koKSB7XHJcbiAgICBpZiAodGhpcy5vbmVUaW1lU2VsZWN0ZWQgIT09ICcnKSB7XHJcbiAgICAgIHRoaXMudG9kYXlEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKS50b0RhdGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPVxyXG4gICAgICAnT25lIFRpbWUgJyArXHJcbiAgICAgIHRoaXMudG9kYXlEYXRlLmdldERhdGUoKSArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpXSArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnIGJ5ICcgK1xyXG4gICAgICB0aGlzLm9uZVRpbWVTdGFydFRpbWU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XHJcbiAgICAgIDAgK1xyXG4gICAgICAnficgK1xyXG4gICAgICAodGhpcy5vbmVUaW1lU2VsZWN0ZWQgPT09ICcnXHJcbiAgICAgICAgPyB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcclxuICAgICAgICAgICAgLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCk/LnNldERhdGUobmV3IERhdGUoKT8uZ2V0RGF0ZSgpICsgMSkpXHJcbiAgICAgICAgICAgID8uZ2V0RnVsbFllYXIoKSArXHJcbiAgICAgICAgICAnficgK1xyXG4gICAgICAgICAgKHRoaXMuZnJlcXVlbmN5U2VydmljZVxyXG4gICAgICAgICAgICAuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKSlcclxuICAgICAgICAgICAgPy5nZXRNb250aCgpICtcclxuICAgICAgICAgICAgMSkgK1xyXG4gICAgICAgICAgJ34nICtcclxuICAgICAgICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZVxyXG4gICAgICAgICAgICAuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKT8uc2V0RGF0ZShuZXcgRGF0ZSgpPy5nZXREYXRlKCkgKyAxKSlcclxuICAgICAgICAgICAgPy5nZXREYXRlKClcclxuICAgICAgICA6IHRoaXMub25lVGltZVNlbGVjdGVkKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uZVRpbWUnO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5vbmVUaW1lRmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMub25lVGltZVdpbmRvdztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbmVUaW1lU3RhcnRUaW1lO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcclxuICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IDA7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5mcmVxdWVuY3lJbmZvID09PicsIHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lLWl0ZW0gdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LW1iLTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjYWxlbmRhci1pY29uIHZ4LWZzLTE0IHZ4LXR4dC1ibHVlXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImRhdGVQaWNrZXJcIiAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIj5cclxuICAgICAgICAgICAgPGRwLWRhdGUtcGlja2VyICNkYXRlUGlja2VyIHBsYWNlaG9sZGVyPSdTZWxlY3QgRGF0ZScgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIiAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKClcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZXBpY2tlck92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWVuZCB2eC1wci0zXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFtuZ3hUaW1lcGlja2VyXT1cImRhaWx5VGltZVwiIHBsYWNlaG9sZGVyPVwiMTE6NTkgUE1cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC10eHQtYmx1ZVwiPiYjeGU5NTU7PC9pPlxyXG4gICAgICAgICAgICA8bmd4LW1hdGVyaWFsLXRpbWVwaWNrZXIgI2RhaWx5VGltZT48L25neC1tYXRlcmlhbC10aW1lcGlja2VyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBFTUFJTCBOT1RJRklDQVRJT046PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZVwiICpuZ0lmPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUtaXRlbSB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbWItNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNhbGVuZGFyLWljb24gdngtZnMtMTQgdngtdHh0LWJsdWVcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgPCEtLSA8aW5wdXQgY2xhc3M9XCJkYXRlUGlja2VyXCIgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlXCI+IC0tPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkYXRlUGlja2VyXCIgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwidG9kYXlEYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiIFtwbGFjZWhvbGRlcl09XCJ0b2RheURhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgPCEtLSA8ZHAtZGF0ZS1waWNrZXIgI2RhdGVQaWNrZXIgcGxhY2Vob2xkZXI9J1NlbGVjdCBEYXRlJyAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKVwiIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiPjwvZHAtZGF0ZS1waWNrZXI+IC0tPlxyXG4gICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ3N0YXJ0LWRhdGUtJyArIDZcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRvZGF5RGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJvcGVuRGF0ZVBpY2tlcigpO2RhdGVDaGFuZ2UoJGV2ZW50KTsgc2hvd0RhdGVFcnJvciA9IGZhbHNlOyBkYXRlcGlja2VyT3ZlcmxheSA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRGF0ZXBpY2tlcigpXCIgKm5nSWY9XCJkYXRlcGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktZW5kIHZ4LXByLTNcIj5cclxuICAgICAgICAgICAgPCEtLSA8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBhcmlhLWxhYmVsPVwiMTJociBmb3JtYXRcIiBbbmd4VGltZXBpY2tlcl09XCJkYWlseVRpbWVcIiBwbGFjZWhvbGRlcj1cIjExOjU5IFBNXCI+IC0tPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBhcmlhLWxhYmVsPVwiMTJociBmb3JtYXRcIiBbKG5nTW9kZWwpXT1cIm9uZVRpbWVTdGFydFRpbWVcIiAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtdHh0LWJsdWVcIj4mI3hlOTU1OzwvaT4gLS0+XHJcbiAgICAgICAgICAgIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciBbaG91cnNPbmx5XT1cInRydWVcIiAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCIgI2RhaWx5VGltZT48L25neC1tYXRlcmlhbC10aW1lcGlja2VyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBFTUFJTCBOT1RJRklDQVRJT046PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZS1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGVcclxuICAgICAgICAgICAgW2lkXSA9ICc2J1xyXG4gICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgW3BhZ2VOYW1lXT1cIidvbmUtdGltZSdcIlxyXG4gICAgICAgICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJvbmVUaW1lV2luZG93XCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==