@datarailsshared/datarailsshared 1.5.301 → 1.5.302
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datarailsshared-datarailsshared-1.5.302.tgz +0 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +9 -1
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +4 -2
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +3 -3
- package/fesm2022/datarailsshared-datarailsshared.mjs +12 -3
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +4 -0
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.5.301.tgz +0 -0
|
Binary file
|
|
@@ -7,6 +7,7 @@ import { Subject } from 'rxjs';
|
|
|
7
7
|
import { takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';
|
|
9
9
|
import moment from 'moment';
|
|
10
|
+
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@angular/material/core";
|
|
12
13
|
import * as i2 from "../services/dr-date-picker.service";
|
|
@@ -16,6 +17,11 @@ import * as i5 from "../directives/dr-date-picker-format.directive";
|
|
|
16
17
|
import * as i6 from "@angular/common";
|
|
17
18
|
const noop = () => {
|
|
18
19
|
};
|
|
20
|
+
export class CustomDateAdapter extends MomentDateAdapter {
|
|
21
|
+
getFirstDayOfWeek() {
|
|
22
|
+
return 1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
19
25
|
export class DrDatePickerComponent {
|
|
20
26
|
set min(minDate) {
|
|
21
27
|
this._min = minDate ? moment.unix(minDate).utc() : null;
|
|
@@ -210,6 +216,7 @@ export class DrDatePickerComponent {
|
|
|
210
216
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DateAdapter }, { token: i2.DrDatePickerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
211
217
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrDatePickerComponent, selector: "dr-date-picker", inputs: { format: "format", min: "min", max: "max", periodPosition: "periodPosition", placeholder: "placeholder", disabled: "disabled", fiscalYearMonthsModifier: "fiscalYearMonthsModifier", datepickerFilter: "datepickerFilter" }, host: { properties: { "class.disabled": "this.disabled", "class.active": "this.active" } }, providers: [
|
|
212
218
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },
|
|
219
|
+
{ provide: DateAdapter, useClass: CustomDateAdapter },
|
|
213
220
|
DrDatePickerService
|
|
214
221
|
], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<i class=\"dr-icon-date\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9EA1AA;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #AEABAC;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host:after,:host:before{position:absolute;display:flex;border-color:#6D6E6F transparent transparent;color:#6d6e6f}:host:after{font-family:DataRails!important;content:\"\\ea13\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i5.DrDatePickerFormatDirective, selector: "[drDatePickerFormat]", inputs: ["configDateParse", "configDateDisplay", "drDatePickerFormat"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
215
222
|
}
|
|
@@ -217,6 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
217
224
|
type: Component,
|
|
218
225
|
args: [{ selector: 'dr-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
219
226
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },
|
|
227
|
+
{ provide: DateAdapter, useClass: CustomDateAdapter },
|
|
220
228
|
DrDatePickerService
|
|
221
229
|
], template: "<i class=\"dr-icon-date\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9EA1AA;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #AEABAC;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host:after,:host:before{position:absolute;display:flex;border-color:#6D6E6F transparent transparent;color:#6d6e6f}:host:after{font-family:DataRails!important;content:\"\\ea13\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}\n"] }]
|
|
222
230
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DateAdapter }, { type: i2.DrDatePickerService }]; }, propDecorators: { format: [{
|
|
@@ -245,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
245
253
|
type: HostBinding,
|
|
246
254
|
args: ['class.active']
|
|
247
255
|
}] } });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFFM0gsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUU1QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDO0FBWUYsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixJQUFhLEdBQUcsQ0FBQyxP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c0JBQWhDLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUUwQixVQUFVO3NCQUF6QyxTQUFTO3VCQUFDLFlBQVk7Z0JBZ01mLE1BQU07c0JBRGIsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24sIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyRGF0ZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgRHJEYXRlUGlja2VyU2VydmljZVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBmb3JtYXQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHNldCBtaW4obWluRGF0ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX21pbiA9IG1pbkRhdGUgPyBtb21lbnQudW5peChtaW5EYXRlKS51dGMoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1heChtYXhEYXRlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWF4ID0gbWF4RGF0ZSA/IG1vbWVudC51bml4KG1heERhdGUpLnV0YygpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIHRvIHRyYW5zZm9ybSBkYXRlLCB0YWtpbmcgZW5kLCBzdGFydCwgbWlkZGxlIG9mIHByZWlvZCAoaS5lLiBzZXQgbWlkZGxlIG9mIG1vbnRoIGlmIHRpbWVmcmFtZT0nbW9udGgnKVxuICAgIEBJbnB1dCgpIHBlcmlvZFBvc2l0aW9uOiBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24gPSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uREVGQVVMVDtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgPSAwO1xuXG4gICAgQElucHV0KCkgZGF0ZXBpY2tlckZpbHRlcjogKG1vbWVudDogTW9tZW50KSA9PiBib29sZWFuO1xuXG4gICAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIHB1YmxpYyBkYXRlUGlja2VyOiBhbnk7XG5cbiAgICBwdWJsaWMgY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmc6IGFueSA9IHtcbiAgICAgICAgeWVhcjogJ211bHRpLXllYXInLFxuICAgICAgICBtb250aDogJ3llYXInLFxuICAgICAgICBxdWFydGVyOiAnbm9uZScsXG4gICAgICAgIGRheTogJ21vbnRoJyxcbiAgICB9O1xuXG4gICAgcHVibGljIGN1c3RvbUhlYWRlciA9IERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgPSB0cnVlO1xuICAgIHB1YmxpYyBfbWluOiBNb21lbnQ7XG4gICAgcHVibGljIF9tYXg6IE1vbWVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGltZWZyYW1lT3B0aW9uID0gVGltZWZyYW1lT3B0aW9uO1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogTW9tZW50KSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHYpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbm5lclZhbHVlOiBNb21lbnQgPSBudWxsO1xuICAgIHByb3RlY3RlZCBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZpc2NhbFllYXJNb250aHNNb2RpZmllciA9IHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZSA9IHRoaXMuZGF0ZVBpY2tlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyLnN0YXJ0VmlldyA9IHRoaXMuY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmdbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm1hdD8uY3VycmVudFZhbHVlICYmIGNoYW5nZXMuZm9ybWF0LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5mb3JtYXQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IHRpbWVmcmFtZTtcbiAgICAgICAgICAgIGxldCBmb3JtYXQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldENvbmZpZ3VyZWRGb3JtYXQodGhpcy5mb3JtYXQgYXMgVGltZWZyYW1lT3B0aW9uKTtcbiAgICAgICAgICAgIGlmIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICB0aW1lZnJhbWUgPSB0aGlzLmZvcm1hdCBhcyBUaW1lZnJhbWVPcHRpb247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uubm9ybWFsaXplVmFsdWUodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKGZvcm1hdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9IHRpbWVmcmFtZTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JC5uZXh0KGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGluZyBjb21wb25lbnQgaW5uZXIgdmFsdWUgYWNjb3JkaW5nIHRvIGRhdGVwaWNrZXIgdGltZWZyYW1lIChkYXksIG1vbnRoIGV0Yy4pXG4gICAgICogYW5kIGRhdGUgcG9zaXRpb24gaW4gcGVyaW9kIChzdGFydCwgZW5kLCBtaWRkbGUpXG4gICAgICovXG4gICAgdHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aW1lZnJhbWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBlcmlvZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5TVEFSVF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLkVORF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcih0aGlzLmlubmVyVmFsdWUsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5lbmRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLk1JRERMRV9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgbGV0IGVuZE9mUGVyaW9kOiBNb21lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICBlbmRPZlBlcmlvZCA9IHRoaXMuaW5uZXJWYWx1ZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIoZW5kT2ZQZXJpb2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIoZW5kT2ZQZXJpb2QsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5zdGFydE9mKHRpbWVmcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCkuZW5kT2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IGVuZE9mUGVyaW9kLmRpZmYodGhpcy5pbm5lclZhbHVlLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5hZGQoZGlmZiAvIDIgKyAxLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNob3NlblBlcmlvZEhhbmRsZXIoY2hvc2VuRGF0ZTogTW9tZW50LCB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbikge1xuXG4gICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICBjaG9zZW5EYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyTW9udGhzVG9EYXRlKGNob3NlbkRhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUiAmJiB0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuY3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5hY3RpdmVEYXRlID0gY2hvc2VuRGF0ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudChjaG9zZW5EYXRlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGluZyB2YWx1ZSBmcm9tIG91dHNpZGUgb2YgY29tcG9uZW50IHZpYSBuZ01vZGVsIG9yIGZvcm1Db250cm9sIHVwZGF0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8qXG4gICAgICAgICogV2UgbmVlZCBrZWVwIGxvY2FsIHRpbWVzdGFtcCBmb3IgRWxlY3Ryb24gQXBwbGljYXRpb25cbiAgICAgICAgKiBJc3N1ZSBpbiBlbGVjdHJvbjogd2hlbiB3ZSBzZWxlY3QgZGF0ZSwgZGF0ZSBzZWxlY3Qgd2l0aCAtMSAoaWYgd2UncmUgY2hvb3NpbmcgMjAyMywgb3V0cHV0IHdpbGwgYmUgMjAyMilcbiAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY29udmVydGVkVmFsdWUgPSAoZG9jdW1lbnQgYXMgYW55KS5pc19lbGVjdHJvbiA/IG1vbWVudC51bml4KHZhbHVlKSA6IG1vbWVudC51bml4KHZhbHVlKS51dGMoKTtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWUgPyBjb252ZXJ0ZWRWYWx1ZSA6IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBTaG91bGQgYmUgYXMgYXJyb3cgZnVuY3Rpb24gdG8gYXZvaWQgbG9zZSBzY29wZVxuICAgIHB1YmxpYyBkYXRlRmlsdGVyID0gKG1vbWVudDogTW9tZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJGaWx0ZXIgJiYgbW9tZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyRmlsdGVyKG1vbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSBNb21lbnQgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1vbWVudERhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWVGcm9tTW9tZW50KG1vbWVudERhdGU6IE1vbWVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKG1vbWVudERhdGUudW5peCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSB0aW1lc3RhbXAgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHRpbWVzdGFtcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIC8vIGlzVmFsdWVVcGRhdGluZyBpcyByZXF1aXJlZCBmb3IgbWFuYWdlIGNsaWNrcyBvbiBzYW1lIGRhdGVzOiBpZiBpc1ZhbHVlVXBkYXRpbmcgLSB0cnVlIHRoZW5cbiAgICAgICAgLy8gZGF5cyBhcmUgZGlmZmVyZW50IGFuZCBzdWJzY3JpcHRpb24gb24gY2FsZW5kYXIgZGF5IGNsaWNrIGFjdGlvbiB3b24ndCB0cmlnZ2VyIEFjY2Vzc29yIG5nTW9kZWwgdXBkYXRlXG4gICAgICAgIC8vIG9uZSBtb3JlIHRpbWVcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGltZXN0YW1wKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5uZXJWYWx1ZS51bml4KCkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWx1ZVVwZGF0aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gICAgcHJpdmF0ZSBhY3RpdmUgPSBmYWxzZTtcbiAgICBvbk9wZW4oKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNMb3NlKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbn1cbiIsIjxpIGNsYXNzPVwiZHItaWNvbi1kYXRlXCI+PC9pPlxuPGlucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgIChjbGljayk9XCJkYXRlUGlja2VyLm9wZW4oKVwiXG4gICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFtkckRhdGVQaWNrZXJGb3JtYXRdPVwiZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgIFttaW5dPVwiX21pblwiXG4gICAgICAgW21heF09XCJfbWF4XCIvPlxuPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyXG4gICAgICAgICAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLllFQVIpXCJcbiAgICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLk1PTlRIKVwiXG4gICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJvbkNMb3NlKClcIj5cbjwvbWF0LWRhdGVwaWNrZXI+XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFFM0gsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQUVyRSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFD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LEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTt3QkFDckQsbUJBQW1CO3FCQUN0QjtvS0FJRCxNQUFNO3NCQURMLEtBQUs7Z0JBR08sR0FBRztzQkFBZixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWtDLFFBQVE7c0JBQS9DLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUU3Qix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUUwQixVQUFVO3NCQUF6QyxTQUFTO3VCQUFDLFlBQVk7Z0JBZ01mLE1BQU07c0JBRGIsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24sIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGVBZGFwdGVyIGV4dGVuZHMgTW9tZW50RGF0ZUFkYXB0ZXIge1xuICAgIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJEYXRlUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQ3VzdG9tRGF0ZUFkYXB0ZXIgfSxcbiAgICAgICAgRHJEYXRlUGlja2VyU2VydmljZVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBmb3JtYXQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHNldCBtaW4obWluRGF0ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX21pbiA9IG1pbkRhdGUgPyBtb21lbnQudW5peChtaW5EYXRlKS51dGMoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1heChtYXhEYXRlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWF4ID0gbWF4RGF0ZSA/IG1vbWVudC51bml4KG1heERhdGUpLnV0YygpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIHRvIHRyYW5zZm9ybSBkYXRlLCB0YWtpbmcgZW5kLCBzdGFydCwgbWlkZGxlIG9mIHByZWlvZCAoaS5lLiBzZXQgbWlkZGxlIG9mIG1vbnRoIGlmIHRpbWVmcmFtZT0nbW9udGgnKVxuICAgIEBJbnB1dCgpIHBlcmlvZFBvc2l0aW9uOiBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24gPSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uREVGQVVMVDtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgPSAwO1xuXG4gICAgQElucHV0KCkgZGF0ZXBpY2tlckZpbHRlcjogKG1vbWVudDogTW9tZW50KSA9PiBib29sZWFuO1xuXG4gICAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIHB1YmxpYyBkYXRlUGlja2VyOiBhbnk7XG5cbiAgICBwdWJsaWMgY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmc6IGFueSA9IHtcbiAgICAgICAgeWVhcjogJ211bHRpLXllYXInLFxuICAgICAgICBtb250aDogJ3llYXInLFxuICAgICAgICBxdWFydGVyOiAnbm9uZScsXG4gICAgICAgIGRheTogJ21vbnRoJyxcbiAgICB9O1xuXG4gICAgcHVibGljIGN1c3RvbUhlYWRlciA9IERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgPSB0cnVlO1xuICAgIHB1YmxpYyBfbWluOiBNb21lbnQ7XG4gICAgcHVibGljIF9tYXg6IE1vbWVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGltZWZyYW1lT3B0aW9uID0gVGltZWZyYW1lT3B0aW9uO1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogTW9tZW50KSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHYpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbm5lclZhbHVlOiBNb21lbnQgPSBudWxsO1xuICAgIHByb3RlY3RlZCBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZpc2NhbFllYXJNb250aHNNb2RpZmllciA9IHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZSA9IHRoaXMuZGF0ZVBpY2tlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyLnN0YXJ0VmlldyA9IHRoaXMuY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmdbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm1hdD8uY3VycmVudFZhbHVlICYmIGNoYW5nZXMuZm9ybWF0LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5mb3JtYXQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IHRpbWVmcmFtZTtcbiAgICAgICAgICAgIGxldCBmb3JtYXQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldENvbmZpZ3VyZWRGb3JtYXQodGhpcy5mb3JtYXQgYXMgVGltZWZyYW1lT3B0aW9uKTtcbiAgICAgICAgICAgIGlmIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICB0aW1lZnJhbWUgPSB0aGlzLmZvcm1hdCBhcyBUaW1lZnJhbWVPcHRpb247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uubm9ybWFsaXplVmFsdWUodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKGZvcm1hdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9IHRpbWVmcmFtZTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JC5uZXh0KGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGluZyBjb21wb25lbnQgaW5uZXIgdmFsdWUgYWNjb3JkaW5nIHRvIGRhdGVwaWNrZXIgdGltZWZyYW1lIChkYXksIG1vbnRoIGV0Yy4pXG4gICAgICogYW5kIGRhdGUgcG9zaXRpb24gaW4gcGVyaW9kIChzdGFydCwgZW5kLCBtaWRkbGUpXG4gICAgICovXG4gICAgdHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aW1lZnJhbWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBlcmlvZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5TVEFSVF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLkVORF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcih0aGlzLmlubmVyVmFsdWUsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5lbmRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLk1JRERMRV9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgbGV0IGVuZE9mUGVyaW9kOiBNb21lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICBlbmRPZlBlcmlvZCA9IHRoaXMuaW5uZXJWYWx1ZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIoZW5kT2ZQZXJpb2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIoZW5kT2ZQZXJpb2QsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5zdGFydE9mKHRpbWVmcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCkuZW5kT2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IGVuZE9mUGVyaW9kLmRpZmYodGhpcy5pbm5lclZhbHVlLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5hZGQoZGlmZiAvIDIgKyAxLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNob3NlblBlcmlvZEhhbmRsZXIoY2hvc2VuRGF0ZTogTW9tZW50LCB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbikge1xuXG4gICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICBjaG9zZW5EYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyTW9udGhzVG9EYXRlKGNob3NlbkRhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUiAmJiB0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuY3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5hY3RpdmVEYXRlID0gY2hvc2VuRGF0ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudChjaG9zZW5EYXRlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGluZyB2YWx1ZSBmcm9tIG91dHNpZGUgb2YgY29tcG9uZW50IHZpYSBuZ01vZGVsIG9yIGZvcm1Db250cm9sIHVwZGF0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8qXG4gICAgICAgICogV2UgbmVlZCBrZWVwIGxvY2FsIHRpbWVzdGFtcCBmb3IgRWxlY3Ryb24gQXBwbGljYXRpb25cbiAgICAgICAgKiBJc3N1ZSBpbiBlbGVjdHJvbjogd2hlbiB3ZSBzZWxlY3QgZGF0ZSwgZGF0ZSBzZWxlY3Qgd2l0aCAtMSAoaWYgd2UncmUgY2hvb3NpbmcgMjAyMywgb3V0cHV0IHdpbGwgYmUgMjAyMilcbiAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY29udmVydGVkVmFsdWUgPSAoZG9jdW1lbnQgYXMgYW55KS5pc19lbGVjdHJvbiA/IG1vbWVudC51bml4KHZhbHVlKSA6IG1vbWVudC51bml4KHZhbHVlKS51dGMoKTtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWUgPyBjb252ZXJ0ZWRWYWx1ZSA6IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBTaG91bGQgYmUgYXMgYXJyb3cgZnVuY3Rpb24gdG8gYXZvaWQgbG9zZSBzY29wZVxuICAgIHB1YmxpYyBkYXRlRmlsdGVyID0gKG1vbWVudDogTW9tZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJGaWx0ZXIgJiYgbW9tZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyRmlsdGVyKG1vbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSBNb21lbnQgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1vbWVudERhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWVGcm9tTW9tZW50KG1vbWVudERhdGU6IE1vbWVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKG1vbWVudERhdGUudW5peCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSB0aW1lc3RhbXAgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHRpbWVzdGFtcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIC8vIGlzVmFsdWVVcGRhdGluZyBpcyByZXF1aXJlZCBmb3IgbWFuYWdlIGNsaWNrcyBvbiBzYW1lIGRhdGVzOiBpZiBpc1ZhbHVlVXBkYXRpbmcgLSB0cnVlIHRoZW5cbiAgICAgICAgLy8gZGF5cyBhcmUgZGlmZmVyZW50IGFuZCBzdWJzY3JpcHRpb24gb24gY2FsZW5kYXIgZGF5IGNsaWNrIGFjdGlvbiB3b24ndCB0cmlnZ2VyIEFjY2Vzc29yIG5nTW9kZWwgdXBkYXRlXG4gICAgICAgIC8vIG9uZSBtb3JlIHRpbWVcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGltZXN0YW1wKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5uZXJWYWx1ZS51bml4KCkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWx1ZVVwZGF0aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gICAgcHJpdmF0ZSBhY3RpdmUgPSBmYWxzZTtcbiAgICBvbk9wZW4oKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNMb3NlKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbn1cbiIsIjxpIGNsYXNzPVwiZHItaWNvbi1kYXRlXCI+PC9pPlxuPGlucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgIChjbGljayk9XCJkYXRlUGlja2VyLm9wZW4oKVwiXG4gICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFtkckRhdGVQaWNrZXJGb3JtYXRdPVwiZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgIFttaW5dPVwiX21pblwiXG4gICAgICAgW21heF09XCJfbWF4XCIvPlxuPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyXG4gICAgICAgICAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLllFQVIpXCJcbiAgICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLk1PTlRIKVwiXG4gICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJvbkNMb3NlKClcIj5cbjwvbWF0LWRhdGVwaWNrZXI+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, TemplateRef } from '@angular/core';
|
|
2
|
-
import { DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';
|
|
2
|
+
import { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';
|
|
3
3
|
import { DateAdapter } from '@angular/material/core';
|
|
4
4
|
import { DrDatePickerService } from '../services/dr-date-picker.service';
|
|
5
5
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
@@ -165,6 +165,7 @@ export class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent {
|
|
|
165
165
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrDatePickerWithTimeframeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DateAdapter }, { token: i2.DrDatePickerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
166
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrDatePickerWithTimeframeComponent, selector: "dr-date-picker-with-timeframe", inputs: { isDashboardDatepicker: "isDashboardDatepicker", dateFormatConfig: "dateFormatConfig", canSelectTimeframe: "canSelectTimeframe", availableTimeframes: "availableTimeframes", paginationDebounce: "paginationDebounce", isUsingDateTagPresets: "isUsingDateTagPresets", presetTag: "presetTag", datepickerTooltip: "datepickerTooltip", datepickerTooltipPosition: "datepickerTooltipPosition", datepickerTooltipTimeout: "datepickerTooltipTimeout" }, outputs: { onChangeFormat: "onChangeFormat", onChangePresetTag: "onChangePresetTag" }, host: { properties: { "class.dr-date-picker-on-dashboard": "this.isDashboardClassDisplayed" } }, providers: [
|
|
167
167
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },
|
|
168
|
+
{ provide: DateAdapter, useClass: CustomDateAdapter },
|
|
168
169
|
{ provide: DrDatePickerService }
|
|
169
170
|
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<dr-button [disabled]=\"isPrevDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-left\" (click)=\"pagingClicked(false)\"></dr-button>\n<div [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <span *ngIf=\"presetTagSelected && datePickerService.isUsingDateTagPresets\"> {{ presetTagSelected }} </span>\n <span>{{ presetTagSelected && datePickerService.isUsingDateTagPresets ? '(' + displayedFormattedValue + ')' : displayedFormattedValue }}</span>\n </div>\n <input\n #datepickerInput\n [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n />\n</div>\n<dr-button [disabled]=\"isNextDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-right\" (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\"\n >\n</mat-datepicker>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9EA1AA;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #AEABAC;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host:after,:host:before{position:absolute;display:flex;border-color:#6D6E6F transparent transparent;color:#6d6e6f}:host:after{font-family:DataRails!important;content:\"\\ea13\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}:host{border:none;display:flex;align-items:center}:host.disabled{background:transparent;color:#aeabac}:host.disabled.dr-date-picker-on-dashboard{border:none;padding:0 8px}:host.disabled.dr-date-picker-on-dashboard .dr-datepicker-input-container__formatted-value-display{text-decoration:none;color:#aeabac;font-weight:400}:host.disabled.dr-date-picker-on-dashboard .dr-datepicker-input-container i{color:#aeabac}:host.dr-date-picker-on-dashboard{width:-moz-fit-content;width:fit-content;justify-content:space-between}:host.dr-date-picker-on-dashboard mat-datepicker{position:absolute}:host.dr-date-picker-on-dashboard:after{visibility:hidden}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container{display:flex;flex-direction:row;justify-content:center;align-items:center;margin-left:-10px}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container__formatted-value-display{font-weight:600;width:auto;margin-left:5px}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container .dr-icon-date{display:block;position:relative;top:0;margin-right:8px;color:#4e566c}:host .dr-datepicker-input-container input{visibility:hidden;position:absolute;width:100%}:host .dr-datepicker-input-container__formatted-value-display{width:90px;height:22px;padding-left:0;text-align:center;line-height:22px;color:#0c142b;text-decoration-line:underline}:host .dr-datepicker-input-container__formatted-value-display:hover{background-color:#f2f2fb;border-radius:5px;cursor:pointer;text-decoration-line:underline;color:#4646ce}::ng-deep .date-picker-preset-tag{width:386px!important}::ng-deep .date-picker-preset-tag .mat-calendar-content{padding-left:32px!important;padding-right:32px!important}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i6.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipOptions", "drTooltipShow"] }, { kind: "component", type: i7.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
170
171
|
}
|
|
@@ -172,6 +173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
172
173
|
type: Component,
|
|
173
174
|
args: [{ selector: 'dr-date-picker-with-timeframe', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
174
175
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },
|
|
176
|
+
{ provide: DateAdapter, useClass: CustomDateAdapter },
|
|
175
177
|
{ provide: DrDatePickerService }
|
|
176
178
|
], template: "<dr-button [disabled]=\"isPrevDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-left\" (click)=\"pagingClicked(false)\"></dr-button>\n<div [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <span *ngIf=\"presetTagSelected && datePickerService.isUsingDateTagPresets\"> {{ presetTagSelected }} </span>\n <span>{{ presetTagSelected && datePickerService.isUsingDateTagPresets ? '(' + displayedFormattedValue + ')' : displayedFormattedValue }}</span>\n </div>\n <input\n #datepickerInput\n [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n />\n</div>\n<dr-button [disabled]=\"isNextDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-right\" (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\"\n >\n</mat-datepicker>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9EA1AA;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #AEABAC;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host:after,:host:before{position:absolute;display:flex;border-color:#6D6E6F transparent transparent;color:#6d6e6f}:host:after{font-family:DataRails!important;content:\"\\ea13\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}:host{border:none;display:flex;align-items:center}:host.disabled{background:transparent;color:#aeabac}:host.disabled.dr-date-picker-on-dashboard{border:none;padding:0 8px}:host.disabled.dr-date-picker-on-dashboard .dr-datepicker-input-container__formatted-value-display{text-decoration:none;color:#aeabac;font-weight:400}:host.disabled.dr-date-picker-on-dashboard .dr-datepicker-input-container i{color:#aeabac}:host.dr-date-picker-on-dashboard{width:-moz-fit-content;width:fit-content;justify-content:space-between}:host.dr-date-picker-on-dashboard mat-datepicker{position:absolute}:host.dr-date-picker-on-dashboard:after{visibility:hidden}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container{display:flex;flex-direction:row;justify-content:center;align-items:center;margin-left:-10px}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container__formatted-value-display{font-weight:600;width:auto;margin-left:5px}:host.dr-date-picker-on-dashboard .dr-datepicker-input-container .dr-icon-date{display:block;position:relative;top:0;margin-right:8px;color:#4e566c}:host .dr-datepicker-input-container input{visibility:hidden;position:absolute;width:100%}:host .dr-datepicker-input-container__formatted-value-display{width:90px;height:22px;padding-left:0;text-align:center;line-height:22px;color:#0c142b;text-decoration-line:underline}:host .dr-datepicker-input-container__formatted-value-display:hover{background-color:#f2f2fb;border-radius:5px;cursor:pointer;text-decoration-line:underline;color:#4646ce}::ng-deep .date-picker-preset-tag{width:386px!important}::ng-deep .date-picker-preset-tag .mat-calendar-content{padding-left:32px!important;padding-right:32px!important}\n"] }]
|
|
177
179
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DateAdapter }, { type: i2.DrDatePickerService }]; }, propDecorators: { isDashboardClassDisplayed: [{
|
|
@@ -202,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
202
204
|
}], onChangePresetTag: [{
|
|
203
205
|
type: Output
|
|
204
206
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXItd2l0aC10aW1lZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFxQyxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FB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LGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQVlJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlVGFncywgSURhdGVQaWNrZXJGb3JtYXRDb25maWcsIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBSRVNFVF9UQUdTX0xJU1QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RyLXRvb2x0aXAvZW51bXMvdG9vbHRpcC1wb3NpdGlvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJEYXRlUGlja2VyV2l0aFRpbWVmcmFtZUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEckRhdGVQaWNrZXJTZXJ2aWNlIH1cbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEckRhdGVQaWNrZXJXaXRoVGltZWZyYW1lQ29tcG9uZW50IGV4dGVuZHMgRHJEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByZXNldFRhZ1NlbGVjdGVkOiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRyLWRhdGUtcGlja2VyLW9uLWRhc2hib2FyZCcpIGdldCBpc0Rhc2hib2FyZENsYXNzRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rhc2hib2FyZERhdGVwaWNrZXI7XG4gICAgfTtcblxuICAgIEBJbnB1dCgpIGlzRGFzaGJvYXJkRGF0ZXBpY2tlciA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGRhdGVGb3JtYXRDb25maWcodmFsdWU6IElEYXRlUGlja2VyRm9ybWF0Q29uZmlnKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcgPSB7IC4uLnRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLCAuLi52YWx1ZSB9O1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBjYW5TZWxlY3RUaW1lZnJhbWUgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgc2V0IGF2YWlsYWJsZVRpbWVmcmFtZXModmFsdWU6IFRpbWVmcmFtZU9wdGlvbltdKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlVGltZWZyYW1lcyA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBJbnB1dCgpIHBhZ2luYXRpb25EZWJvdW5jZTtcblxuICAgIEBJbnB1dCgpIHNldCBpc1VzaW5nRGF0ZVRhZ1ByZXNldHMoZmxhZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVXNpbmdEYXRlVGFnUHJlc2V0cyA9IGZsYWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHByZXNldFRhZyh0YWc6IHN0cmluZykge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQubmV4dCh0YWcgYXMgRGF0ZVRhZ3MpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJUb29sdGlwOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgICBASW5wdXQoKSBkYXRlcGlja2VyVG9vbHRpcFBvc2l0aW9uOiBzdHJpbmcgPSBUb29sdGlwUG9zaXRpb24uVE9QO1xuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJUb29sdGlwVGltZW91dDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IE1vbWVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudCh2KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlRm9ybWF0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlUHJlc2V0VGFnID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlVGFncz4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5nU2V0dXAgPSB7XG4gICAgICAgIFtUaW1lZnJhbWVPcHRpb24uWUVBUl06IChmb3J3YXJkKSA9PiB0aGlzLmdldE5leHREYXRlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtUaW1lZnJhbWVPcHRpb24uUVVBUlRFUl06IChmb3J3YXJkKSA9PiB0aGlzLmdldE5leHREYXRlKCdhZGRDYWxlbmRhck1vbnRocycsIDMsIGZvcndhcmQpLFxuICAgICAgICBbVGltZWZyYW1lT3B0aW9uLk1PTlRIXTogKGZvcndhcmQpID0+IHRoaXMuZ2V0TmV4dERhdGUoJ2FkZENhbGVuZGFyTW9udGhzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtUaW1lZnJhbWVPcHRpb24uREFZXTogKGZvcndhcmQpID0+IHRoaXMuZ2V0TmV4dERhdGUoJ2FkZENhbGVuZGFyRGF5cycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbVGltZWZyYW1lT3B0aW9uLldFRUtdOiAoZm9yd2FyZCkgPT4gdGhpcy5nZXROZXh0RGF0ZSgnYWRkQ2FsZW5kYXJEYXlzJywgNywgZm9yd2FyZClcbiAgICB9O1xuXG4gICAgcHVibGljIGdldCBkaXNwbGF5ZWRGb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9IF8uY2xvbmVEZWVwKHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZURlcGVuZGluZ09uRlkodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpKSB7XG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKGRpc3BsYXlWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtYXRDYWNoZWQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQuZ2V0VmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0RGlzcGxheVByZWZpeCgpICsgZGlzcGxheVZhbHVlLmZvcm1hdChmb3JtYXRDYWNoZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05leHREYXRlRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNQcmV2RGF0ZURpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlRGVib3VuY2VkJDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPGFueT4sXG4gICAgICAgIHB1YmxpYyBkYXRlUGlja2VyU2VydmljZTogRHJEYXRlUGlja2VyU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2RyLCBkYXRlQWRhcHRlciwgZGF0ZVBpY2tlclNlcnZpY2UpO1xuICAgICAgICBkYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWQgPSB0cnVlO1xuXG4gICAgICAgIGRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZvcm1hdC5lbWl0KGRhdGVQaWNrZXJTZXJ2aWNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHRhZ09iaiA9IFBSRVNFVF9UQUdTX0xJU1QuZmluZCgodmFsKSA9PiB2YWw/LmtleSA9PT0gdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5wcmVzZXRUYWdTZWxlY3RlZCA9IHRhZ09iaj8ubGFiZWw7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlUHJlc2V0VGFnLmVtaXQodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLm9uU2FtZURheVNlbGVjdGVkSW5DYWxlbmRhciQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZUZyb21Nb21lbnQodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkYXRlUGlja2VyU2VydmljZS51cGRhdGVkRGF0ZUFuZENsb3NlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudCh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmlubmVyVmFsdWUudW5peCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLmNhblNlbGVjdFRpbWVmcmFtZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbkRlYm91bmNlKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRGVib3VuY2VkJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLCBkZWJvdW5jZVRpbWUodGhpcy5wYWdpbmF0aW9uRGVib3VuY2UpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5mb3JtYXQ/LmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzLmZvcm1hdC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZm9ybWF0LnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNoYW5nZXMuZm9ybWF0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYWdpbmdDbGlja2VkKGZvcndhcmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5nU2V0dXBbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLnBhZ2luZ1NldHVwW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXShmb3J3YXJkKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5nRGF0ZUNoYW5nZShuZXh0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xuICAgIH1cblxuICAgIHBhZ2luZ0RhdGVDaGFuZ2UobmV3VmFsdWU6IE1vbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uRGVib3VuY2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgcmVxdWlyZWQgZm9yIG5vdCBzZW5kaW5nIGV4dHJhIHJlcXVlc3RzIHdoZW4gdXNlciBxdWlja2x5IGNsaWNraW5nIG9uIHBhZ2luYXRpb25cbiAgICAgICAgICAgIC8vIGhlcmUgd2UgZG8gdGhlIHNhbWUgYXMgaW4gc2V0VmFsdWVGcm9tTW9tZW50KG5ld1ZhbHVlKSB3aXRoIGRpZmZlcmVuY2VcbiAgICAgICAgICAgIC8vIHRoYXQgdXBkYXRpbmcgb2YgbmdNb2RlbC9mb3JtQ29udHJvbCBpcyBkZWJvdW5jZWRcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucmVzZXRQcmVzZXRUYWcoKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ld1ZhbHVlLnVuaXgoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aW1lc3RhbXApO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZURlYm91bmNlZCQubmV4dCh0aGlzLmlubmVyVmFsdWUudW5peCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSB0aW1lc3RhbXAgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHRpbWVzdGFtcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnJlc2V0UHJlc2V0VGFnKCk7XG4gICAgICAgIHN1cGVyLnNldFZhbHVlKHRpbWVzdGFtcCk7XG4gICAgfVxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZXN0cmljdFBhZ2luYXRpb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHREYXRlKGFjdGlvbkNhbGw6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGZvcndhcmQ6IGJvb2xlYW4pOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlQWRhcHRlclthY3Rpb25DYWxsXT8uKHRoaXMuaW5uZXJWYWx1ZSwgZm9yd2FyZCA/IGFtb3VudCA6IC1hbW91bnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdHJpY3RQYWdpbmF0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX21pbiAmJiAhdGhpcy5fbWF4KSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRoaXMucGFnaW5nU2V0dXBbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdKHRydWUpO1xuICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSB0aGlzLnBhZ2luZ1NldHVwW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXShmYWxzZSk7XG4gICAgICAgIHRoaXMuaXNOZXh0RGF0ZURpc2FibGVkID0gdGhpcy5fbWF4ICYmIG5leHRWYWx1ZSAmJiBuZXh0VmFsdWUudW5peCgpID4gdGhpcy5fbWF4LnVuaXgoKTtcbiAgICAgICAgdGhpcy5pc1ByZXZEYXRlRGlzYWJsZWQgPSB0aGlzLl9taW4gJiYgcHJldlZhbHVlICYmIHByZXZWYWx1ZS51bml4KCkgPCB0aGlzLl9taW4udW5peCgpO1xuICAgIH1cbn1cbiIsIjxkci1idXR0b24gW2Rpc2FibGVkXT1cImlzUHJldkRhdGVEaXNhYmxlZFwiICpuZ0lmPVwiIWRpc2FibGVkXCIgdGhlbWU9XCJpY29uXCIgaWNvbj1cImRyLWljb24tYXJyb3ctbGVmdFwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPjwvZHItYnV0dG9uPlxuPGRpdiBbZHJUb29sdGlwXT1cImRhdGVwaWNrZXJUb29sdGlwXCJcbiAgICAgW2RyVG9vbHRpcFBvc2l0aW9uXT1cImRhdGVwaWNrZXJUb29sdGlwUG9zaXRpb25cIlxuICAgICBbZHJUb29sdGlwTW91c2xlYXZlVGltZW91dF09XCJkYXRlcGlja2VyVG9vbHRpcFRpbWVvdXRcIlxuICAgICBjbGFzcz1cImRyLWRhdGVwaWNrZXItaW5wdXQtY29udGFpbmVyXCI+XG4gICAgPGkgKm5nSWY9XCJpc0Rhc2hib2FyZERhdGVwaWNrZXJcIiBjbGFzcz1cImRyLWljb24tZGF0ZVwiPjwvaT5cblxuICAgIDxkaXYgY2xhc3M9XCJkci1kYXRlcGlja2VyLWlucHV0LWNvbnRhaW5lcl9fZm9ybWF0dGVkLXZhbHVlLWRpc3BsYXlcIiAoY2xpY2spPVwiZGF0ZXBpY2tlcklucHV0LmNsaWNrKClcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmVzZXRUYWdTZWxlY3RlZCAmJiBkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIj4ge3sgcHJlc2V0VGFnU2VsZWN0ZWQgfX0gPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBwcmVzZXRUYWdTZWxlY3RlZCAmJiBkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHMgPyAnKCcgKyBkaXNwbGF5ZWRGb3JtYXR0ZWRWYWx1ZSArICcpJyA6IGRpc3BsYXllZEZvcm1hdHRlZFZhbHVlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxpbnB1dFxuICAgICAgICAgICAgI2RhdGVwaWNrZXJJbnB1dFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW21pbl09XCJfbWluXCJcbiAgICAgICAgICAgIFttYXhdPVwiX21heFwiXG4gICAgLz5cbjwvZGl2PlxuPGRyLWJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNOZXh0RGF0ZURpc2FibGVkXCIgKm5nSWY9XCIhZGlzYWJsZWRcIiB0aGVtZT1cImljb25cIiBpY29uPVwiZHItaWNvbi1hcnJvdy1yaWdodFwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKHRydWUpXCI+PC9kci1idXR0b24+XG48bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRyLXRpbWVmcmFtZS1kYXRlcGlja2VyXCJcbiAgICAgICAgICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiY3VzdG9tSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAoeWVhclNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uWUVBUilcIlxuICAgICAgICAgICAgICAgIChtb250aFNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uTU9OVEgpXCJcbiAgICAgICAgICAgICAgICBbcGFuZWxDbGFzc109XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHMgPyAnZGF0ZS1waWNrZXItcHJlc2V0LXRhZycgOiAnZHItdGltZWZyYW1lLWRhdGVwaWNrZXInXCJcbiAgICAgICAgICAgICAgICA+XG48L21hdC1kYXRlcGlja2VyPlxuIl19
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXItd2l0aC10aW1lZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFxQyxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENB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QWtCO3NCQUExQixLQUFLO2dCQUVPLG1CQUFtQjtzQkFBL0IsS0FBSztnQkFLRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRU8scUJBQXFCO3NCQUFqQyxLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBWUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCwgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21EYXRlQWRhcHRlciwgRHJEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlVGFncywgSURhdGVQaWNrZXJGb3JtYXRDb25maWcsIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBSRVNFVF9UQUdTX0xJU1QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RyLXRvb2x0aXAvZW51bXMvdG9vbHRpcC1wb3NpdGlvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRhdGUtcGlja2VyLXdpdGgtdGltZWZyYW1lLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJEYXRlUGlja2VyV2l0aFRpbWVmcmFtZUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IEN1c3RvbURhdGVBZGFwdGVyIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRHJEYXRlUGlja2VyU2VydmljZSB9XG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyV2l0aFRpbWVmcmFtZUNvbXBvbmVudCBleHRlbmRzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwcmVzZXRUYWdTZWxlY3RlZDogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kci1kYXRlLXBpY2tlci1vbi1kYXNoYm9hcmQnKSBnZXQgaXNEYXNoYm9hcmRDbGFzc0Rpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNEYXNoYm9hcmREYXRlcGlja2VyO1xuICAgIH07XG5cbiAgICBASW5wdXQoKSBpc0Rhc2hib2FyZERhdGVwaWNrZXIgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBkYXRlRm9ybWF0Q29uZmlnKHZhbHVlOiBJRGF0ZVBpY2tlckZvcm1hdENvbmZpZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnID0geyAuLi50aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZywgLi4udmFsdWUgfTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2FuU2VsZWN0VGltZWZyYW1lID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHNldCBhdmFpbGFibGVUaW1lZnJhbWVzKHZhbHVlOiBUaW1lZnJhbWVPcHRpb25bXSkge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXMgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBASW5wdXQoKSBwYWdpbmF0aW9uRGVib3VuY2U7XG5cbiAgICBASW5wdXQoKSBzZXQgaXNVc2luZ0RhdGVUYWdQcmVzZXRzKGZsYWc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHMgPSBmbGFnO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBwcmVzZXRUYWcodGFnOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnIGFzIERhdGVUYWdzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBkYXRlcGlja2VyVG9vbHRpcDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgQElucHV0KCkgZGF0ZXBpY2tlclRvb2x0aXBQb3NpdGlvbjogc3RyaW5nID0gVG9vbHRpcFBvc2l0aW9uLlRPUDtcbiAgICBASW5wdXQoKSBkYXRlcGlja2VyVG9vbHRpcFRpbWVvdXQ6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBNb21lbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZUZyb21Nb21lbnQodik7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIEBPdXRwdXQoKSBvbkNoYW5nZUZvcm1hdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZVByZXNldFRhZyA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVRhZ3M+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2luZ1NldHVwID0ge1xuICAgICAgICBbVGltZWZyYW1lT3B0aW9uLllFQVJdOiAoZm9yd2FyZCkgPT4gdGhpcy5nZXROZXh0RGF0ZSgnYWRkQ2FsZW5kYXJZZWFycycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbVGltZWZyYW1lT3B0aW9uLlFVQVJURVJdOiAoZm9yd2FyZCkgPT4gdGhpcy5nZXROZXh0RGF0ZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAzLCBmb3J3YXJkKSxcbiAgICAgICAgW1RpbWVmcmFtZU9wdGlvbi5NT05USF06IChmb3J3YXJkKSA9PiB0aGlzLmdldE5leHREYXRlKCdhZGRDYWxlbmRhck1vbnRocycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbVGltZWZyYW1lT3B0aW9uLkRBWV06IChmb3J3YXJkKSA9PiB0aGlzLmdldE5leHREYXRlKCdhZGRDYWxlbmRhckRheXMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW1RpbWVmcmFtZU9wdGlvbi5XRUVLXTogKGZvcndhcmQpID0+IHRoaXMuZ2V0TmV4dERhdGUoJ2FkZENhbGVuZGFyRGF5cycsIDcsIGZvcndhcmQpXG4gICAgfTtcblxuICAgIHB1YmxpYyBnZXQgZGlzcGxheWVkRm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBkaXNwbGF5VmFsdWUgPSBfLmNsb25lRGVlcCh0aGlzLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVEZXBlbmRpbmdPbkZZKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lKSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShkaXNwbGF5VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybWF0Q2FjaGVkID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLmdldFZhbHVlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldERpc3BsYXlQcmVmaXgoKSArIGRpc3BsYXlWYWx1ZS5mb3JtYXQoZm9ybWF0Q2FjaGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOZXh0RGF0ZURpc2FibGVkID0gZmFsc2U7XG4gICAgcHVibGljIGlzUHJldkRhdGVEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZURlYm91bmNlZCQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkciwgZGF0ZUFkYXB0ZXIsIGRhdGVQaWNrZXJTZXJ2aWNlKTtcbiAgICAgICAgZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTtcblxuICAgICAgICBkYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGb3JtYXQuZW1pdChkYXRlUGlja2VyU2VydmljZS5ub3JtYWxpemVWYWx1ZSh2YWx1ZSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YWdPYmogPSBQUkVTRVRfVEFHU19MSVNULmZpbmQoKHZhbCkgPT4gdmFsPy5rZXkgPT09IHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucHJlc2V0VGFnU2VsZWN0ZWQgPSB0YWdPYmo/LmxhYmVsO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZVByZXNldFRhZy5lbWl0KHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5vblNhbWVEYXlTZWxlY3RlZEluQ2FsZW5kYXIkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZERhdGVBbmRDbG9zZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZUZyb21Nb21lbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5pbm5lclZhbHVlLnVuaXgoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXIuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkID0gdGhpcy5jYW5TZWxlY3RUaW1lZnJhbWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb25EZWJvdW5jZSkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZURlYm91bmNlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSwgZGVib3VuY2VUaW1lKHRoaXMucGFnaW5hdGlvbkRlYm91bmNlKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZm9ybWF0Py5jdXJyZW50VmFsdWUgJiYgY2hhbmdlcy5mb3JtYXQuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmZvcm1hdC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChjaGFuZ2VzLmZvcm1hdC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFnaW5nQ2xpY2tlZChmb3J3YXJkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZ1NldHVwW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy5wYWdpbmdTZXR1cFt0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZV0oZm9yd2FyZCk7XG4gICAgICAgICAgICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGVQaWNrZXIuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwYWdpbmdEYXRlQ2hhbmdlKG5ld1ZhbHVlOiBNb21lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbkRlYm91bmNlKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGZvciBub3Qgc2VuZGluZyBleHRyYSByZXF1ZXN0cyB3aGVuIHVzZXIgcXVpY2tseSBjbGlja2luZyBvbiBwYWdpbmF0aW9uXG4gICAgICAgICAgICAvLyBoZXJlIHdlIGRvIHRoZSBzYW1lIGFzIGluIHNldFZhbHVlRnJvbU1vbWVudChuZXdWYWx1ZSkgd2l0aCBkaWZmZXJlbmNlXG4gICAgICAgICAgICAvLyB0aGF0IHVwZGF0aW5nIG9mIG5nTW9kZWwvZm9ybUNvbnRyb2wgaXMgZGVib3VuY2VkXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnJlc2V0UHJlc2V0VGFnKCk7XG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXdWYWx1ZS51bml4KCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VEZWJvdW5jZWQkLm5leHQodGhpcy5pbm5lclZhbHVlLnVuaXgoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudChuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAgLyoqXG4gICAgICogU2V0IGlubmVyIHZhbHVlIGZyb20gdGltZXN0YW1wIGFuZCBwcm9wYWdhdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lc3RhbXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUodGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5yZXNldFByZXNldFRhZygpO1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh0aW1lc3RhbXApO1xuICAgIH1cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVzdHJpY3RQYWdpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0RGF0ZShhY3Rpb25DYWxsOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBmb3J3YXJkOiBib29sZWFuKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXJbYWN0aW9uQ2FsbF0/Lih0aGlzLmlubmVyVmFsdWUsIGZvcndhcmQgPyBhbW91bnQgOiAtYW1vdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3RyaWN0UGFnaW5hdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9taW4gJiYgIXRoaXMuX21heCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLnBhZ2luZ1NldHVwW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXSh0cnVlKTtcbiAgICAgICAgY29uc3QgcHJldlZhbHVlID0gdGhpcy5wYWdpbmdTZXR1cFt0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZV0oZmFsc2UpO1xuICAgICAgICB0aGlzLmlzTmV4dERhdGVEaXNhYmxlZCA9IHRoaXMuX21heCAmJiBuZXh0VmFsdWUgJiYgbmV4dFZhbHVlLnVuaXgoKSA+IHRoaXMuX21heC51bml4KCk7XG4gICAgICAgIHRoaXMuaXNQcmV2RGF0ZURpc2FibGVkID0gdGhpcy5fbWluICYmIHByZXZWYWx1ZSAmJiBwcmV2VmFsdWUudW5peCgpIDwgdGhpcy5fbWluLnVuaXgoKTtcbiAgICB9XG59XG4iLCI8ZHItYnV0dG9uIFtkaXNhYmxlZF09XCJpc1ByZXZEYXRlRGlzYWJsZWRcIiAqbmdJZj1cIiFkaXNhYmxlZFwiIHRoZW1lPVwiaWNvblwiIGljb249XCJkci1pY29uLWFycm93LWxlZnRcIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZChmYWxzZSlcIj48L2RyLWJ1dHRvbj5cbjxkaXYgW2RyVG9vbHRpcF09XCJkYXRlcGlja2VyVG9vbHRpcFwiXG4gICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCJkYXRlcGlja2VyVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgW2RyVG9vbHRpcE1vdXNsZWF2ZVRpbWVvdXRdPVwiZGF0ZXBpY2tlclRvb2x0aXBUaW1lb3V0XCJcbiAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxpICpuZ0lmPVwiaXNEYXNoYm9hcmREYXRlcGlja2VyXCIgY2xhc3M9XCJkci1pY29uLWRhdGVcIj48L2k+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXJfX2Zvcm1hdHRlZC12YWx1ZS1kaXNwbGF5XCIgKGNsaWNrKT1cImRhdGVwaWNrZXJJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicHJlc2V0VGFnU2VsZWN0ZWQgJiYgZGF0ZVBpY2tlclNlcnZpY2UuaXNVc2luZ0RhdGVUYWdQcmVzZXRzXCI+IHt7IHByZXNldFRhZ1NlbGVjdGVkIH19IDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgcHJlc2V0VGFnU2VsZWN0ZWQgJiYgZGF0ZVBpY2tlclNlcnZpY2UuaXNVc2luZ0RhdGVUYWdQcmVzZXRzID8gJygnICsgZGlzcGxheWVkRm9ybWF0dGVkVmFsdWUgKyAnKScgOiBkaXNwbGF5ZWRGb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8aW5wdXRcbiAgICAgICAgICAgICNkYXRlcGlja2VySW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFttaW5dPVwiX21pblwiXG4gICAgICAgICAgICBbbWF4XT1cIl9tYXhcIlxuICAgIC8+XG48L2Rpdj5cbjxkci1idXR0b24gW2Rpc2FibGVkXT1cImlzTmV4dERhdGVEaXNhYmxlZFwiICpuZ0lmPVwiIWRpc2FibGVkXCIgdGhlbWU9XCJpY29uXCIgaWNvbj1cImRyLWljb24tYXJyb3ctcmlnaHRcIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPjwvZHItYnV0dG9uPlxuPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci10aW1lZnJhbWUtZGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLllFQVIpXCJcbiAgICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLk1PTlRIKVwiXG4gICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiZGF0ZVBpY2tlclNlcnZpY2UuaXNVc2luZ0RhdGVUYWdQcmVzZXRzID8gJ2RhdGUtcGlja2VyLXByZXNldC10YWcnIDogJ2RyLXRpbWVmcmFtZS1kYXRlcGlja2VyJ1wiXG4gICAgICAgICAgICAgICAgPlxuPC9tYXQtZGF0ZXBpY2tlcj5cbiJdfQ==
|
|
@@ -116,8 +116,8 @@ export class DrDatePickerCustomHeaderComponent {
|
|
|
116
116
|
const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];
|
|
117
117
|
const fullPeriodLabel = currentTimeframeOption.periodLabel();
|
|
118
118
|
if (this._calendar.currentView === CalendarView.FOR_DAYS) {
|
|
119
|
-
this.periodMonthLabel = fullPeriodLabel.
|
|
120
|
-
this.periodYearLabel = fullPeriodLabel.
|
|
119
|
+
this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();
|
|
120
|
+
this.periodYearLabel = fullPeriodLabel.match(/[0-9]+/g).toString();
|
|
121
121
|
}
|
|
122
122
|
else {
|
|
123
123
|
this.periodMonthLabel = '';
|
|
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
184
184
|
type: Inject,
|
|
185
185
|
args: [MAT_DATE_FORMATS]
|
|
186
186
|
}] }, { type: i0.ChangeDetectorRef }, { type: i3.DrDatePickerService }]; } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQWEsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFtQyxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7O0FBUzVCLE1BQU0sT0FBTyxpQ0FBaUM7SUFvRDFD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QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQW9CLENBQUM7UUFDMUQsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9HLGFBQWEsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDdEIsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUYsQ0FBQztrSUE1S1EsaUNBQWlDLHdFQTREdEIsZ0JBQWdCO3NIQTVEM0IsaUNBQWlDLDhFQ2pCOUMsdXBFQThDQTs7NEZEN0JhLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFDSSx3Q0FBd0MsbUJBR2pDLHVCQUF1QixDQUFDLE1BQU07OzBCQStEbEMsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0Q2FsZW5kYXJWaWV3IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBDdXN0b21EYXRlRm9ybWF0LCBJVGltZWZyYW1lT3B0aW9uLCBUQ2FsZW5kYXJWaWV3LCBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQUkVTRVRfVEFHU19MSVNUIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9jb25zdGFudHNcIjtcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ8TW9tZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHF1YXJ0ZXJzID0gWzEsIDIsIDMsIDRdO1xuICAgIHNlbGVjdGVkUXVhcnRlciA9IDE7XG4gICAgdGltZWZyYW1lT3B0aW9uczogSVRpbWVmcmFtZU9wdGlvbltdID0gW3tcbiAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uREFZLFxuICAgICAgICB0aXRsZTogJ0RheScsXG4gICAgICAgIHZhbHVlOiBDYWxlbmRhclZpZXcuRk9SX0RBWVMsXG4gICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcuZGF5LFxuICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKClcbiAgICB9LCB7XG4gICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLldFRUssXG4gICAgICAgIHRpdGxlOiAnV2VlaycsXG4gICAgICAgIHZhbHVlOiBDYWxlbmRhclZpZXcuRk9SX0RBWVMsXG4gICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcud2VlayxcbiAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLl9kYXRlRm9ybWF0cy5kaXNwbGF5Lm1vbnRoWWVhckxhYmVsKS50b0xvY2FsZVVwcGVyQ2FzZSgpXG4gICAgfSwge1xuICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5NT05USCxcbiAgICAgICAgdGl0bGU6ICdNb250aCcsXG4gICAgICAgIHZhbHVlOiBDYWxlbmRhclZpZXcuRk9SX01PTlRIUyxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5tb250aCxcbiAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkudXRjKCkueWVhcigpKVxuICAgIH0sIHtcbiAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUixcbiAgICAgICAgdGl0bGU6ICdRdWFydGVyJyxcbiAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlMsXG4gICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcucXVhcnRlcixcbiAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSkudXRjKCkueWVhcigpKVxuICAgIH0sIHtcbiAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uWUVBUixcbiAgICAgICAgdGl0bGU6ICdZZWFyJyxcbiAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfWUVBUlMsXG4gICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcueWVhcixcbiAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gbW9tZW50KHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkpLnV0YygpLnllYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0UGVyaW9kID0gTWF0aC5mbG9vcihjdXJyZW50WWVhciAvIDI0KSAqIDI0O1xuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0UGVyaW9kICsgJy0nICsgKHN0YXJ0UGVyaW9kICsgMjMpO1xuICAgICAgICB9XG4gICAgfV07XG5cbiAgICBwYWdpbmdTZXR1cCA9IHtcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfTU9OVEhTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfREFZU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyTW9udGhzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX1lFQVJTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDI0LCBmb3J3YXJkKVxuICAgIH07XG5cbiAgICBzZWxlY3RlZFRpbWVmcmFtZTogVENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5GT1JfREFZUztcbiAgICB0aW1lZnJhbWVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICBwZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgcGVyaW9kWWVhckxhYmVsID0gJyc7XG4gICAgcHJlc2V0VGFnTGlzdCA9IFBSRVNFVF9UQUdTX0xJU1Q7XG4gICAgZ2V0IHNlbGVjdGVkUHJlc2V0VGFnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLmdldFZhbHVlKCk7XG4gICAgfTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jYWxlbmRhcjogTWF0Q2FsZW5kYXI8YW55PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVGb3JtYXRzOiBDdXN0b21EYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2UpIHtcblxuICAgICAgICBfY2FsZW5kYXIuc3RhdGVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFBlcmlvZExhYmVscygpKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0aW1lZnJhbWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFRpbWVmcmFtZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWZyYW1lID0gdGhpcy50aW1lZnJhbWVPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKVswXS52YWx1ZTtcbiAgICAgICAgICAgX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSBhcyBNYXRDYWxlbmRhclZpZXc7XG4gICAgICAgICAgICB0aGlzLnNldFBlcmlvZExhYmVscygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPT09IENhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgX2NhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFBlcmlvZExhYmVscygpO1xuICAgICAgICAgICAgaWYgKF9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfY2FsZW5kYXIuX3VzZXJTZWxlY3Rpb24uc3Vic2NyaWJlKGRhdGUgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVmFsdWVVcGRhdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uub25TYW1lRGF5U2VsZWN0ZWRJbkNhbGVuZGFyJC5uZXh0KGRhdGUudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UgPSBfY2FsZW5kYXI7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZXRQZXJpb2RMYWJlbHMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3KVswXTtcbiAgICAgICAgY29uc3QgZnVsbFBlcmlvZExhYmVsID0gY3VycmVudFRpbWVmcmFtZU9wdGlvbi5wZXJpb2RMYWJlbCgpO1xuICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcgPT09IENhbGVuZGFyVmlldy5GT1JfREFZUykge1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gZnVsbFBlcmlvZExhYmVsLnNsaWNlKDAsIDMpO1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwuc2xpY2UoNCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICAgICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHNldFRpbWVmcmFtZSh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucmVzZXRQcmVzZXRUYWcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWZyYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMudGltZWZyYW1lU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSBhcyBNYXRDYWxlbmRhclZpZXc7XG4gICAgICAgIGNvbnN0IGNob3NlblRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuICFbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLCBDYWxlbmRhclZpZXcuRk9SX01PTlRIUywgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU10uaW5jbHVkZXModGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcgYXMgQ2FsZW5kYXJWaWV3KTtcbiAgICB9XG5cbiAgICBzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwodmlldzogQ2FsZW5kYXJWaWV3LkZPUl9NT05USFMgfCBDYWxlbmRhclZpZXcuRk9SX1lFQVJTKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBvblNlbGVjdFF1YXJ0ZXIocXVhcnRlck51bWJlcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gcXVhcnRlck51bWJlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgcXVhcnRlck51bWJlcik7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLm5leHQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZGF0ZVBpY2tlckluc3RhbmNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcGFnaW5nQ2xpY2tlZChmb3J3YXJkKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZ1NldHVwW3RoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3XSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10oZm9yd2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYWdpbmdEYXRlQ2hhbmdlKGFjdGlvbkNhbGw6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGZvcndhcmQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyW2FjdGlvbkNhbGxdKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIGZvcndhcmQgPyBhbW91bnQgOiAtYW1vdW50KTtcbiAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpIHtcbiAgICAgICAgY29uc3QgbXVsdHVZZWFyVmlldyA9IHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcgYXMgYW55O1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlKTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fc2VsZWN0ZWRZZWFyID0gbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZS55ZWFyKCk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX2luaXQoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFByZXNldFRhZyh0YWc6IGFueSkge1xuICAgICAgICBpZiAodGFnLmtleSA9PT0gdGhpcy5zZWxlY3RlZFByZXNldFRhZykge1xuICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucHJlc2V0VGFnJC5uZXh0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGhpcy5zZWxlY3RlZFByZXNldFRhZywgdGhpcy5fY2FsZW5kYXIpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXJfX3RpbWVmcmFtZS1zZWxlY3RfX3dyYXBwZXJcIj5cblxuICAgIDxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVfX3RhZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhZyBvZiBwcmVzZXRUYWdMaXN0XCIgXG4gICAgICAgICAgICAgICAgaWQ9XCJwcmVzZXRfdGFnXCIgXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIiBcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RQcmVzZXRUYWcodGFnKVwiIFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZV9fdGFnc19fdGFnLS1zZWxlY3RlZCc6IHRhZy5rZXkgPT09IHNlbGVjdGVkUHJlc2V0VGFnfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleT8gJ1Vuc2VsZWN0IHByZXNldCcgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcFBvc2l0aW9uXT1cIid0b3AnXCI+XG4gICAgICAgICAgICAgICAge3sgdGFnLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRyLXNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkVGltZWZyYW1lXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0aW1lZnJhbWVPcHRpb25zIHwgZHJTaG93VGltZWZyYW1lUGlwZTogZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlVGltZWZyYW1lc1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRUaW1lZnJhbWUoJGV2ZW50KVwiPlxuICAgIDwvZHItc2VsZWN0PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkci1kYXRlLXBhZ2luZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkci1kYXRlLXBhZ2luZyBmbGlwLXBhZ2UtYnV0dG9uXCJcbiAgICAgICAgIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIlxuICAgICAgICAgKGNsaWNrKT1cInBhZ2luZ0NsaWNrZWQodHJ1ZSlcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJkci1pY29uLWFycm93LXJpZ2h0IHByZXNlbnRhdGlvbl9idXR0b25zLW5hdmlnYXRlX2lucHV0XCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICNxdWFydGVybHlEYXRlUGlja2VyIGNsYXNzPVwiZHItcXVhcnRlcmx5LWRhdGVwaWNrZXJcIiAqbmdJZj1cImN1cnJlbnRWaWV3SXNRdWFydGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVhcnRlciBvZiBxdWFydGVyc1wiXG4gICAgICAgICBjbGFzcz1cInF1YXJ0ZXItc2VsZWN0b3JcIiAoY2xpY2spPVwib25TZWxlY3RRdWFydGVyKHF1YXJ0ZXIpXCJcbiAgICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgID5Re3txdWFydGVyfX08L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQWEsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFtQyxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7O0FBUzVCLE1BQU0sT0FBTyxpQ0FBaUM7SUFvRDFD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QUFDO0lBRUQseUNBQXlDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBb0IsQ0FBQztRQUMxRCxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0csYUFBYSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9ELGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN0QixJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RixDQUFDO2tJQTVLUSxpQ0FBaUMsd0VBNER0QixnQkFBZ0I7c0hBNUQzQixpQ0FBaUMsOEVDakI5Qyx1cEVBOENBOzs0RkQ3QmEsaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNJLHdDQUF3QyxtQkFHakMsdUJBQXVCLENBQUMsTUFBTTs7MEJBK0RsQyxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcsIEN1c3RvbURhdGVGb3JtYXQsIElUaW1lZnJhbWVPcHRpb24sIFRDYWxlbmRhclZpZXcsIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IERyRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kci1kYXRlLXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBSRVNFVF9UQUdTX0xJU1QgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2NvbnN0YW50c1wiO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDxNb21lbnQ+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIHByaXZhdGUgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcXVhcnRlcnMgPSBbMSwgMiwgMywgNF07XG4gICAgc2VsZWN0ZWRRdWFydGVyID0gMTtcbiAgICB0aW1lZnJhbWVPcHRpb25zOiBJVGltZWZyYW1lT3B0aW9uW10gPSBbe1xuICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5EQVksXG4gICAgICAgIHRpdGxlOiAnRGF5JyxcbiAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5kYXksXG4gICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5tb250aFllYXJMYWJlbCkudG9Mb2NhbGVVcHBlckNhc2UoKVxuICAgIH0sIHtcbiAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uV0VFSyxcbiAgICAgICAgdGl0bGU6ICdXZWVrJyxcbiAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy53ZWVrLFxuICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKClcbiAgICB9LCB7XG4gICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLk1PTlRILFxuICAgICAgICB0aXRsZTogJ01vbnRoJyxcbiAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTLFxuICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLm1vbnRoLFxuICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4gU3RyaW5nKG1vbWVudCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKS51dGMoKS55ZWFyKCkpXG4gICAgfSwge1xuICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5RVUFSVEVSLFxuICAgICAgICB0aXRsZTogJ1F1YXJ0ZXInLFxuICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUyxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5xdWFydGVyLFxuICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4gU3RyaW5nKG1vbWVudCh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpKS51dGMoKS55ZWFyKCkpXG4gICAgfSwge1xuICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5ZRUFSLFxuICAgICAgICB0aXRsZTogJ1llYXInLFxuICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUyxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy55ZWFyLFxuICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSBtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSkudXRjKCkueWVhcigpO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRQZXJpb2QgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyIC8gMjQpICogMjQ7XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRQZXJpb2QgKyAnLScgKyAoc3RhcnRQZXJpb2QgKyAyMyk7XG4gICAgICAgIH1cbiAgICB9XTtcblxuICAgIHBhZ2luZ1NldHVwID0ge1xuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9NT05USFNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfWUVBUlNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMjQsIGZvcndhcmQpXG4gICAgfTtcblxuICAgIHNlbGVjdGVkVGltZWZyYW1lOiBUQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTO1xuICAgIHRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIHBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICBwZXJpb2RZZWFyTGFiZWwgPSAnJztcbiAgICBwcmVzZXRUYWdMaXN0ID0gUFJFU0VUX1RBR1NfTElTVDtcbiAgICBnZXQgc2VsZWN0ZWRQcmVzZXRUYWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQuZ2V0VmFsdWUoKTtcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NhbGVuZGFyOiBNYXRDYWxlbmRhcjxhbnk+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxNb21lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSBfZGF0ZUZvcm1hdHM6IEN1c3RvbURhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBkYXRlUGlja2VyU2VydmljZTogRHJEYXRlUGlja2VyU2VydmljZSkge1xuXG4gICAgICAgIF9jYWxlbmRhci5zdGF0ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGVyaW9kTGFiZWxzKCkpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udGltZWZyYW1lID09PSB0aW1lZnJhbWUpWzBdLnZhbHVlO1xuICAgICAgICAgICBfY2FsZW5kYXIuY3VycmVudFZpZXcgPSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfY2FsZW5kYXIudmlld0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAoX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIF9jYWxlbmRhci5fdXNlclNlbGVjdGlvbi5zdWJzY3JpYmUoZGF0ZSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWx1ZVVwZGF0aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5vblNhbWVEYXlTZWxlY3RlZEluQ2FsZW5kYXIkLm5leHQoZGF0ZS52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZSA9IF9jYWxlbmRhcjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIubXVsdGlZZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNldFBlcmlvZExhYmVscygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcpWzBdO1xuICAgICAgICBjb25zdCBmdWxsUGVyaW9kTGFiZWwgPSBjdXJyZW50VGltZWZyYW1lT3B0aW9uLnBlcmlvZExhYmVsKCk7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1thLXpBLVpdKy9nKS50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWw9IGZ1bGxQZXJpb2RMYWJlbC5tYXRjaCgvWzAtOV0rL2cpLnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICAgICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHNldFRpbWVmcmFtZSh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucmVzZXRQcmVzZXRUYWcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWZyYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMudGltZWZyYW1lU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSBhcyBNYXRDYWxlbmRhclZpZXc7XG4gICAgICAgIGNvbnN0IGNob3NlblRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuICFbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLCBDYWxlbmRhclZpZXcuRk9SX01PTlRIUywgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU10uaW5jbHVkZXModGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcgYXMgQ2FsZW5kYXJWaWV3KTtcbiAgICB9XG5cbiAgICBzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwodmlldzogQ2FsZW5kYXJWaWV3LkZPUl9NT05USFMgfCBDYWxlbmRhclZpZXcuRk9SX1lFQVJTKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBvblNlbGVjdFF1YXJ0ZXIocXVhcnRlck51bWJlcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gcXVhcnRlck51bWJlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgcXVhcnRlck51bWJlcik7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLm5leHQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZGF0ZVBpY2tlckluc3RhbmNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcGFnaW5nQ2xpY2tlZChmb3J3YXJkKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZ1NldHVwW3RoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3XSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10oZm9yd2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYWdpbmdEYXRlQ2hhbmdlKGFjdGlvbkNhbGw6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGZvcndhcmQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyW2FjdGlvbkNhbGxdKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIGZvcndhcmQgPyBhbW91bnQgOiAtYW1vdW50KTtcbiAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpIHtcbiAgICAgICAgY29uc3QgbXVsdHVZZWFyVmlldyA9IHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcgYXMgYW55O1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlKTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fc2VsZWN0ZWRZZWFyID0gbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZS55ZWFyKCk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX2luaXQoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFByZXNldFRhZyh0YWc6IGFueSkge1xuICAgICAgICBpZiAodGFnLmtleSA9PT0gdGhpcy5zZWxlY3RlZFByZXNldFRhZykge1xuICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucHJlc2V0VGFnJC5uZXh0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGhpcy5zZWxlY3RlZFByZXNldFRhZywgdGhpcy5fY2FsZW5kYXIpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXJfX3RpbWVmcmFtZS1zZWxlY3RfX3dyYXBwZXJcIj5cblxuICAgIDxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVfX3RhZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhZyBvZiBwcmVzZXRUYWdMaXN0XCIgXG4gICAgICAgICAgICAgICAgaWQ9XCJwcmVzZXRfdGFnXCIgXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIiBcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RQcmVzZXRUYWcodGFnKVwiIFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZV9fdGFnc19fdGFnLS1zZWxlY3RlZCc6IHRhZy5rZXkgPT09IHNlbGVjdGVkUHJlc2V0VGFnfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleT8gJ1Vuc2VsZWN0IHByZXNldCcgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcFBvc2l0aW9uXT1cIid0b3AnXCI+XG4gICAgICAgICAgICAgICAge3sgdGFnLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRyLXNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkVGltZWZyYW1lXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0aW1lZnJhbWVPcHRpb25zIHwgZHJTaG93VGltZWZyYW1lUGlwZTogZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlVGltZWZyYW1lc1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRUaW1lZnJhbWUoJGV2ZW50KVwiPlxuICAgIDwvZHItc2VsZWN0PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkci1kYXRlLXBhZ2luZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkci1kYXRlLXBhZ2luZyBmbGlwLXBhZ2UtYnV0dG9uXCJcbiAgICAgICAgIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIlxuICAgICAgICAgKGNsaWNrKT1cInBhZ2luZ0NsaWNrZWQodHJ1ZSlcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJkci1pY29uLWFycm93LXJpZ2h0IHByZXNlbnRhdGlvbl9idXR0b25zLW5hdmlnYXRlX2lucHV0XCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICNxdWFydGVybHlEYXRlUGlja2VyIGNsYXNzPVwiZHItcXVhcnRlcmx5LWRhdGVwaWNrZXJcIiAqbmdJZj1cImN1cnJlbnRWaWV3SXNRdWFydGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVhcnRlciBvZiBxdWFydGVyc1wiXG4gICAgICAgICBjbGFzcz1cInF1YXJ0ZXItc2VsZWN0b3JcIiAoY2xpY2spPVwib25TZWxlY3RRdWFydGVyKHF1YXJ0ZXIpXCJcbiAgICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgID5Re3txdWFydGVyfX08L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
|