UNPKG

@hxui/angular

Version:

* * *

216 lines (207 loc) 25.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Component, Input, ViewChild, ElementRef } from '@angular/core'; import { DatepickerFormComponent } from './datepicker-form.component'; import * as moment_ from 'moment'; /** @type {?} */ const moment = moment_; import { DatepickerConfig } from './datepicker.config'; import { DatepickerComponent } from './datepicker.component'; export class DatepickerIntervalComponent { /** * @param {?} _datepickerForm * @param {?} datePickerConfig * @param {?} _datepickerComponent */ constructor(_datepickerForm, datePickerConfig, _datepickerComponent) { this._datepickerForm = _datepickerForm; this.datePickerConfig = datePickerConfig; this._datepickerComponent = _datepickerComponent; this.placement = 'bottom'; this.onCancel = () => { this._datepickerComponent.OpenDiv = false; }; this.onSelect = () => { if (this.dropdownNumber && this.Duration) { this.text = moment().add(this.dropdownNumber, this.Duration.replace('(s)', 's')); this._DueDate = (this.text).format('ddd DD/MM/YYYY'); this._dueDatestring = (this.text).format('DD/MM/YYYY'); /** @type {?} */ const date = this.text ? new Date(this.text) : new Date(); this.presentDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()); this._datepickerComponent.viewDate = new Date(date.getFullYear(), date.getMonth()); this._datepickerComponent.renderCalendar(); this._datepickerForm.dueDateInterval = this.dropdownNumber + ' ' + this.Duration; this._datepickerForm.onChange(this._dueDatestring); return this._DueDate; } }; } /** * @return {?} */ ngOnInit() { /** @type {?} */ const selectedDueDateInterval = this.datePickerConfig.selectedDueDateInterval === undefined ? (this._datepickerComponent.selectedDueDateInterval ? this._datepickerComponent.selectedDueDateInterval.split(' ') : undefined) : this.datePickerConfig.selectedDueDateInterval.split(' '); if (selectedDueDateInterval && selectedDueDateInterval.length > 1) { this.dropdownNumber = selectedDueDateInterval[0]; this.Duration = this.resetDurationText(selectedDueDateInterval[1]); if (this.datePickerConfig && this.datePickerConfig.tabSelected === 'tab1') { this.durationText1 = this.SelectElement(this.durationText, this.Duration); this.numberText1 = this.SelectElement(this.numberText, this.dropdownNumber); this._DueDate = this.onSelectoptions(this.numberText1, this.durationText1); } else if (this.datePickerConfig && this.datePickerConfig.tabSelected === 'tab2') { this.text = moment().add(this.dropdownNumber, this.Duration.replace('(s)', 's')); this._DueDate = (this.text).format('ddd DD/MM/YYYY'); } } } /** * @param {?} numbervalue * @param {?} durationValue * @return {?} */ onSelectoptions(numbervalue, durationValue) { this.text = moment().add(numbervalue, durationValue.replace('(s)', 's')); this._DueDate = (this.text).format('ddd DD/MM/YYYY'); this._dueDatestring = (this.text).format('DD/MM/YYYY'); this._datepickerForm.onChange(this._dueDatestring); return this._DueDate; } /** * @return {?} */ onChoose() { this._datepickerForm.date = new Date(this.text); this._datepickerForm.setDate(new Date(this.text)); this._datepickerComponent.OpenDiv = false; this._datepickerForm.onChange(this._dueDatestring); this._datepickerComponent.selectedDueDateInterval = undefined; this._datepickerForm.dueDateInterval = this.dropdownNumber + ' ' + this.Duration; } /** * @param {?} id * @param {?} valueToSelect * @return {?} */ SelectElement(id, valueToSelect) { (id.nativeElement).value = valueToSelect; return ((id.nativeElement).value); } /** * @param {?} duration * @return {?} */ resetDurationText(duration) { if (duration === 'day' || duration === 'week' || duration === 'month' || duration === 'year') { return duration + '(s)'; } else if (duration === 'days' || duration === 'weeks' || duration === 'months' || duration === 'years') { return duration.replace('s', '(s)'); } else { return duration; } } } DatepickerIntervalComponent.decorators = [ { type: Component, args: [{ selector: 'hxa-datepicker-interval', template: `<div class="hx-datepicker-set-interval is-flex hx-flex-justify-between hx-flex-column"> <div class="hx-datepicker-set-interval-content is-flex hx-flex-column hx-flex-auto hx-flex-align-center hx-flex-justify-center pa-3"> <div class="mb-5"> <div class="hx-datepicker-set-interval-number mr-5"> <input type="number" id="numberText" class="hx-input" min=1 [(ngModel)]="dropdownNumber" (change)="onSelect()" #numberText> </div> <span class="hx-dropdown month mr-5" hxaDropdown> <select id="durationText" class= "hx-input" (change)="onSelect()" [(ngModel)]="Duration" #durationText> <option>day(s)</option> <option>week(s)</option> <option>month(s)</option> <option>year(s)</option> </select> </span> <span><small>from</small> <span class="hx-datepicker-set-interval-today ml-2">today</span></span> </div> <div class="mb-3"> <span><small>will be</small></span> <span class="hx-datepicker-set-interval-selected-date ml-1"> {{ _DueDate }} </span> </div> </div> <div class="hx-datepicker-set-interval-footer pa-3"> <div class="hx-columns"> <div class="hx-column"> <button class="hx-button" (click)="onCancel()">Cancel</button> </div> <div class="hx-column is-text-right"> <button class="hx-button is-primary" (click)="onChoose()">Select</button> </div> </div> </div> </div> `, styles: [`.hx-datepicker-set-interval{max-width:19rem;width:19rem;height:13.86rem;background-color:#fff}.hx-datepicker-set-interval .hx-datepicker-set-interval-content .hx-datepicker-set-interval-number{width:2.5rem;display:inline-block}.hx-datepicker-set-interval .hx-datepicker-set-interval-content .hx-datepicker-set-interval-today{font-size:1rem}.hx-datepicker-set-interval .hx-datepicker-set-interval-content .hx-datepicker-set-interval-selected-date{font-size:1.1rem;font-weight:500}.hx-datepicker-set-interval .hx-datepicker-set-interval-footer{flex:0 0 auto;background-color:rgba(0,0,0,.04)}`] },] }, ]; /** @nocollapse */ DatepickerIntervalComponent.ctorParameters = () => [ { type: DatepickerFormComponent }, { type: DatepickerConfig }, { type: DatepickerComponent } ]; DatepickerIntervalComponent.propDecorators = { durationText: [{ type: ViewChild, args: ['durationText',] }], numberText: [{ type: ViewChild, args: ['numberText',] }], selectedDateInterval: [{ type: Input }], placement: [{ type: Input }] }; if (false) { /** @type {?} */ DatepickerIntervalComponent.prototype.durationText; /** @type {?} */ DatepickerIntervalComponent.prototype.numberText; /** @type {?} */ DatepickerIntervalComponent.prototype.close; /** @type {?} */ DatepickerIntervalComponent.prototype.Duration; /** @type {?} */ DatepickerIntervalComponent.prototype.dropdownNumber; /** @type {?} */ DatepickerIntervalComponent.prototype.text; /** @type {?} */ DatepickerIntervalComponent.prototype._DueDate; /** @type {?} */ DatepickerIntervalComponent.prototype._dueDatestring; /** @type {?} */ DatepickerIntervalComponent.prototype.durationText1; /** @type {?} */ DatepickerIntervalComponent.prototype.numberText1; /** @type {?} */ DatepickerIntervalComponent.prototype.selectedDuration; /** @type {?} */ DatepickerIntervalComponent.prototype.presentDate; /** @type {?} */ DatepickerIntervalComponent.prototype.viewDate; /** @type {?} */ DatepickerIntervalComponent.prototype.selectedDateInterval; /** @type {?} */ DatepickerIntervalComponent.prototype.placement; /** @type {?} */ DatepickerIntervalComponent.prototype.onCancel; /** @type {?} */ DatepickerIntervalComponent.prototype.onSelect; /** @type {?} */ DatepickerIntervalComponent.prototype._datepickerForm; /** @type {?} */ DatepickerIntervalComponent.prototype.datePickerConfig; /** @type {?} */ DatepickerIntervalComponent.prototype._datepickerComponent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnRlcnZhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnRlcnZhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O01BQzVCLE1BQU0sR0FBRyxPQUFPO0FBQ3RCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBa0QzRCxNQUFNLE9BQU8sMkJBQTJCOzs7Ozs7SUFzQnRDLFlBQW9CLGVBQXdDLEVBQVUsZ0JBQWtDLEVBQzlGLG9CQUF5QztRQUQvQixvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzlGLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFIbkQsY0FBUyxHQUF3QyxRQUFRLENBQUM7UUF3QjFELGFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QyxDQUFDLENBQUE7UUFDRCxhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMs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Q0FBc0I7O0lBQ3RCLHFEQUE0Qjs7SUFDNUIsMkNBQWtCOztJQUNsQiwrQ0FBeUI7O0lBQ3pCLHFEQUE4Qjs7SUFDOUIsb0RBQTBCOztJQUMxQixrREFBd0I7O0lBQ3hCLHVEQUFnQzs7SUFDaEMsa0RBQTBCOztJQUMxQiwrQ0FBZTs7SUFFZiwyREFDMkI7O0lBRTNCLGdEQUMwRDs7SUF3QjFELCtDQUVDOztJQUNELCtDQWFDOztJQXRDVyxzREFBZ0Q7O0lBQUUsdURBQTBDOztJQUN0RywyREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZXBpY2tlckZvcm1Db21wb25lbnR9IGZyb20gJy4vZGF0ZXBpY2tlci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcclxuaW1wb3J0IHtEYXRlcGlja2VyQ29uZmlnfSBmcm9tICcuL2RhdGVwaWNrZXIuY29uZmlnJztcclxuaW1wb3J0IHtEYXRlcGlja2VyQ29tcG9uZW50fSBmcm9tICcuL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaHhhLWRhdGVwaWNrZXItaW50ZXJ2YWwnLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIGlzLWZsZXggaHgtZmxleC1qdXN0aWZ5LWJldHdlZW4gaHgtZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLWNvbnRlbnQgaXMtZmxleCBoeC1mbGV4LWNvbHVtbiBoeC1mbGV4LWF1dG8gaHgtZmxleC1hbGlnbi1jZW50ZXIgaHgtZmxleC1qdXN0aWZ5LWNlbnRlciAgcGEtM1wiPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLW51bWJlciBtci01XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwibnVtYmVyVGV4dFwiIGNsYXNzPVwiaHgtaW5wdXRcIiBtaW49MSAgWyhuZ01vZGVsKV09XCJkcm9wZG93bk51bWJlclwiIChjaGFuZ2UpPVwib25TZWxlY3QoKVwiICNudW1iZXJUZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImh4LWRyb3Bkb3duIG1vbnRoIG1yLTVcIiBoeGFEcm9wZG93bj5cclxuICAgICAgICAgIDxzZWxlY3QgaWQ9XCJkdXJhdGlvblRleHRcIiBjbGFzcz0gXCJoeC1pbnB1dFwiICAoY2hhbmdlKT1cIm9uU2VsZWN0KClcIiBbKG5nTW9kZWwpXT1cIkR1cmF0aW9uXCIgI2R1cmF0aW9uVGV4dD5cclxuICAgICAgICAgICAgPG9wdGlvbj5kYXkocyk8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbj53ZWVrKHMpPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24+bW9udGgocyk8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbj55ZWFyKHMpPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuPjxzbWFsbD5mcm9tPC9zbWFsbD4gPHNwYW4gY2xhc3M9XCJoeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC10b2RheSBtbC0yXCI+dG9kYXk8L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPHNwYW4+PHNtYWxsPndpbGwgYmU8L3NtYWxsPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLXNlbGVjdGVkLWRhdGUgbWwtMVwiPlxyXG4gICAgICAgIHt7IF9EdWVEYXRlIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJoeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1mb290ZXIgcGEtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJoeC1idXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtbiBpcy10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImh4LWJ1dHRvbiBpcy1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2hvb3NlKClcIj5TZWxlY3Q8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5gLFxyXG4gIHN0eWxlczogW2AuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWx7bWF4LXdpZHRoOjE5cmVtO3dpZHRoOjE5cmVtO2hlaWdodDoxMy44NnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1jb250ZW50IC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1udW1iZXJ7d2lkdGg6Mi41cmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtY29udGVudCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtdG9kYXl7Zm9udC1zaXplOjFyZW19Lmh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1jb250ZW50IC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1zZWxlY3RlZC1kYXRle2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6NTAwfS5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtZm9vdGVye2ZsZXg6MCAwIGF1dG87YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCl9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJJbnRlcnZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2R1cmF0aW9uVGV4dCcpIGR1cmF0aW9uVGV4dDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdudW1iZXJUZXh0JykgbnVtYmVyVGV4dDogRWxlbWVudFJlZjtcclxuICBwcm90ZWN0ZWQgY2xvc2U6IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyBEdXJhdGlvbjogYW55IDsgLy8gPSAnZGF5KHMpJztcclxuICBwdWJsaWMgZHJvcGRvd25OdW1iZXI6IGFueSA7IC8vID0gMDtcclxuICBwdWJsaWMgdGV4dDogYW55IDsgLy8gPSAgbW9tZW50KCkuYWRkKHRoaXMuZHJvcGRvd25OdW1iZXIgLCB0aGlzLkR1cmF0aW9uKTtcclxuICBwdWJsaWMgX0R1ZURhdGU6IHN0cmluZyA7XHJcbiAgcHVibGljIF9kdWVEYXRlc3RyaW5nOiBzdHJpbmc7XHJcbiAgcHVibGljIGR1cmF0aW9uVGV4dDE6IGFueTtcclxuICBwdWJsaWMgbnVtYmVyVGV4dDE6IGFueTtcclxuICBwdWJsaWMgc2VsZWN0ZWREdXJhdGlvbjogc3RyaW5nO1xyXG4gIHByaXZhdGUgcHJlc2VudERhdGU6IERhdGU7XHJcbiAgdmlld0RhdGU6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWREYXRlSW50ZXJ2YWw6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdib3R0b20nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRlcGlja2VyRm9ybTogRGF0ZXBpY2tlckZvcm1Db21wb25lbnQsIHByaXZhdGUgZGF0ZVBpY2tlckNvbmZpZzogRGF0ZXBpY2tlckNvbmZpZyxcclxuICAgIHByaXZhdGUgX2RhdGVwaWNrZXJDb21wb25lbnQ6IERhdGVwaWNrZXJDb21wb25lbnQpIHtcclxuICAgICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPSB0aGlzLmRhdGVQaWNrZXJDb25maWcuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPT09IHVuZGVmaW5lZCA/XHJcbiAgICAgKHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPyB0aGlzLl9kYXRlcGlja2VyQ29tcG9uZW50LnNlbGVjdGVkRHVlRGF0ZUludGVydmFsLnNwbGl0KCcgJykgOiB1bmRlZmluZWQpIDpcclxuICAgICAgdGhpcy5kYXRlUGlja2VyQ29uZmlnLnNlbGVjdGVkRHVlRGF0ZUludGVydmFsLnNwbGl0KCcgJyk7XHJcbiAgICBpZiAoc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgJiYgc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTnVtYmVyID0gc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWxbMF07XHJcbiAgICAgIHRoaXMuRHVyYXRpb24gPSB0aGlzLnJlc2V0RHVyYXRpb25UZXh0KHNlbGVjdGVkRHVlRGF0ZUludGVydmFsWzFdKTtcclxuICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlckNvbmZpZyAmJiB0aGlzLmRhdGVQaWNrZXJDb25maWcudGFiU2VsZWN0ZWQgPT09ICd0YWIxJykge1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb25UZXh0MSA9IHRoaXMuU2VsZWN0RWxlbWVudCh0aGlzLmR1cmF0aW9uVGV4dCwgdGhpcy5EdXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5udW1iZXJUZXh0MSA9IHRoaXMuU2VsZWN0RWxlbWVudCh0aGlzLm51bWJlclRleHQsIHRoaXMuZHJvcGRvd25OdW1iZXIpO1xyXG4gICAgICAgIHRoaXMuX0R1ZURhdGUgPSB0aGlzLm9uU2VsZWN0b3B0aW9ucyh0aGlzLm51bWJlclRleHQxLCB0aGlzLmR1cmF0aW9uVGV4dDEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlckNvbmZpZyAmJiB0aGlzLmRhdGVQaWNrZXJDb25maWcudGFiU2VsZWN0ZWQgPT09ICd0YWIyJykge1xyXG4gICAgICAgIHRoaXMudGV4dCA9IG1vbWVudCgpLmFkZCh0aGlzLmRyb3Bkb3duTnVtYmVyLCB0aGlzLkR1cmF0aW9uLnJlcGxhY2UoJyhzKScsICdzJykpO1xyXG4gICAgICAgIHRoaXMuX0R1ZURhdGUgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ2RkZCBERC9NTS9ZWVlZJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fZGF0ZXBpY2tlckNvbXBvbmVudC5PcGVuRGl2ID0gZmFsc2U7XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25OdW1iZXIgJiYgdGhpcy5EdXJhdGlvbikge1xyXG4gICAgICB0aGlzLnRleHQgPSBtb21lbnQoKS5hZGQodGhpcy5kcm9wZG93bk51bWJlciAsIHRoaXMuRHVyYXRpb24ucmVwbGFjZSgnKHMpJywgJ3MnKSk7XHJcbiAgICAgIHRoaXMuX0R1ZURhdGUgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ2RkZCBERC9NTS9ZWVlZJyk7XHJcbiAgICAgIHRoaXMuX2R1ZURhdGVzdHJpbmcgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ0REL01NL1lZWVknKTtcclxuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IHRoaXMudGV4dCA/IG5ldyBEYXRlKCB0aGlzLnRleHQpIDogbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5wcmVzZW50RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XHJcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQudmlld0RhdGUgPSAgbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkpO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyQ29tcG9uZW50LnJlbmRlckNhbGVuZGFyKCk7XHJcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJGb3JtLmR1ZURhdGVJbnRlcnZhbCA9IHRoaXMuZHJvcGRvd25OdW1iZXIgKyAnICcgKyB0aGlzLkR1cmF0aW9uO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuICAgICByZXR1cm4gdGhpcy5fRHVlRGF0ZTtcclxuICAgICB9XHJcbiAgfVxyXG4gIG9uU2VsZWN0b3B0aW9ucyhudW1iZXJ2YWx1ZSAsIGR1cmF0aW9uVmFsdWUpIHtcclxuICAgICAgdGhpcy50ZXh0ID0gbW9tZW50KCkuYWRkKG51bWJlcnZhbHVlICwgZHVyYXRpb25WYWx1ZS5yZXBsYWNlKCcocyknLCAncycpKTtcclxuICAgICAgdGhpcy5fRHVlRGF0ZSA9ICh0aGlzLnRleHQpLmZvcm1hdCgnZGRkIEREL01NL1lZWVknKTtcclxuICAgICAgdGhpcy5fZHVlRGF0ZXN0cmluZyA9ICh0aGlzLnRleHQpLmZvcm1hdCgnREQvTU0vWVlZWScpO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9EdWVEYXRlO1xyXG4gIH1cclxuICBwdWJsaWMgb25DaG9vc2UoKSB7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5kYXRlID0gIG5ldyBEYXRlKHRoaXMudGV4dCk7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5zZXREYXRlKG5ldyBEYXRlKHRoaXMudGV4dCkpO1xyXG4gICAgdGhpcy5fZGF0ZXBpY2tlckNvbXBvbmVudC5PcGVuRGl2ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuICAgIHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5kdWVEYXRlSW50ZXJ2YWwgPSB0aGlzLmRyb3Bkb3duTnVtYmVyICsgJyAnICsgdGhpcy5EdXJhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RFbGVtZW50KGlkICwgdmFsdWVUb1NlbGVjdCkge1xyXG4gICAgKGlkLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gdmFsdWVUb1NlbGVjdDtcclxuICAgIHJldHVybiAoKGlkLm5hdGl2ZUVsZW1lbnQpLnZhbHVlKTtcclxuICB9XHJcbiAgcHVibGljIHJlc2V0RHVyYXRpb25UZXh0KGR1cmF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGR1cmF0aW9uID09PSAnZGF5JyB8fCBkdXJhdGlvbiA9PT0gJ3dlZWsnIHx8IGR1cmF0aW9uID09PSAnbW9udGgnIHx8IGR1cmF0aW9uID09PSAneWVhcicpIHtcclxuICAgICAgcmV0dXJuIGR1cmF0aW9uICsgJyhzKSc7XHJcbiAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09PSAnZGF5cycgfHwgZHVyYXRpb24gPT09ICd3ZWVrcycgfHwgZHVyYXRpb24gPT09ICdtb250aHMnIHx8IGR1cmF0aW9uID09PSAneWVhcnMnKSB7XHJcbiAgICAgIHJldHVybiBkdXJhdGlvbi5yZXBsYWNlKCdzJywgJyhzKScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=