@hxui/angular
Version:
* * *
191 lines • 25.9 kB
JavaScript
/**
* @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 {?} */
var moment = moment_;
import { DatepickerConfig } from './datepicker.config';
import { DatepickerComponent } from './datepicker.component';
var DatepickerIntervalComponent = /** @class */ (function () {
function DatepickerIntervalComponent(_datepickerForm, datePickerConfig, _datepickerComponent) {
var _this = this;
this._datepickerForm = _datepickerForm;
this.datePickerConfig = datePickerConfig;
this._datepickerComponent = _datepickerComponent;
this.placement = 'bottom';
this.onCancel = function () {
_this._datepickerComponent.OpenDiv = false;
};
this.onSelect = function () {
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 {?} */
var 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 {?}
*/
DatepickerIntervalComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
/** @type {?} */
var 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 {?}
*/
DatepickerIntervalComponent.prototype.onSelectoptions = /**
* @param {?} numbervalue
* @param {?} durationValue
* @return {?}
*/
function (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 {?}
*/
DatepickerIntervalComponent.prototype.onChoose = /**
* @return {?}
*/
function () {
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 {?}
*/
DatepickerIntervalComponent.prototype.SelectElement = /**
* @param {?} id
* @param {?} valueToSelect
* @return {?}
*/
function (id, valueToSelect) {
(id.nativeElement).value = valueToSelect;
return ((id.nativeElement).value);
};
/**
* @param {?} duration
* @return {?}
*/
DatepickerIntervalComponent.prototype.resetDurationText = /**
* @param {?} duration
* @return {?}
*/
function (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\">\n\n <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\">\n\n\n <div class=\"mb-5\">\n <div class=\"hx-datepicker-set-interval-number mr-5\">\n <input type=\"number\" id=\"numberText\" class=\"hx-input\" min=1 [(ngModel)]=\"dropdownNumber\" (change)=\"onSelect()\" #numberText>\n </div>\n\n <span class=\"hx-dropdown month mr-5\" hxaDropdown>\n <select id=\"durationText\" class= \"hx-input\" (change)=\"onSelect()\" [(ngModel)]=\"Duration\" #durationText>\n <option>day(s)</option>\n <option>week(s)</option>\n <option>month(s)</option>\n <option>year(s)</option>\n </select>\n </span>\n\n <span><small>from</small> <span class=\"hx-datepicker-set-interval-today ml-2\">today</span></span>\n </div>\n\n <div class=\"mb-3\">\n <span><small>will be</small></span>\n <span class=\"hx-datepicker-set-interval-selected-date ml-1\">\n {{ _DueDate }}\n </span>\n </div>\n\n </div>\n\n <div class=\"hx-datepicker-set-interval-footer pa-3\">\n <div class=\"hx-columns\">\n <div class=\"hx-column\">\n <button class=\"hx-button\" (click)=\"onCancel()\">Cancel</button>\n </div>\n <div class=\"hx-column is-text-right\">\n <button class=\"hx-button is-primary\" (click)=\"onChoose()\">Select</button>\n </div>\n </div>\n </div>\n\n</div>\n",
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 = function () { return [
{ type: DatepickerFormComponent },
{ type: DatepickerConfig },
{ type: DatepickerComponent }
]; };
DatepickerIntervalComponent.propDecorators = {
durationText: [{ type: ViewChild, args: ['durationText',] }],
numberText: [{ type: ViewChild, args: ['numberText',] }],
selectedDateInterval: [{ type: Input }],
placement: [{ type: Input }]
};
return DatepickerIntervalComponent;
}());
export { DatepickerIntervalComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnRlcnZhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnRlcnZhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O0lBQzVCLE1BQU0sR0FBRyxPQUFPO0FBQ3RCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTNEO0lBc0VFLHFDQUFvQixlQUF3QyxFQUFVLGdCQUFrQyxFQUM5RixvQkFBeUM7UUFEbkQsaUJBRUk7UUFGZ0Isb0JBQWUsR0FBZixlQUFlLENBQXlCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUM5Rix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBSG5ELGNBQVMsR0FBd0MsUUFBUSxDQUFDO1FBd0IxRCxhQUFRLEdBQUc7WUFDVCxLQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QyxDQUFDLENBQUE7UUFDRCxhQUFRLEdBQUc7WUFDVCxJQUFJLEtBQUksQ0FBQyxjQUFjLElBQUksS0FBSSxDQUFDLFFBQVEsRUFBRTtnQkFDeEMsS0FBSSxDQUFDLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLGNBQWMsRUFBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztn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RDs7SUFDaEQsNENBQTBCOztJQUMxQiwrQ0FBc0I7O0lBQ3RCLHFEQUE0Qjs7SUFDNUIsMkNBQWtCOztJQUNsQiwrQ0FBeUI7O0lBQ3pCLHFEQUE4Qjs7SUFDOUIsb0RBQTBCOztJQUMxQixrREFBd0I7O0lBQ3hCLHVEQUFnQzs7SUFDaEMsa0RBQTBCOztJQUMxQiwrQ0FBZTs7SUFFZiwyREFDMkI7O0lBRTNCLGdEQUMwRDs7SUF3QjFELCtDQUVDOztJQUNELCtDQWFDOztJQXRDVyxzREFBZ0Q7O0lBQUUsdURBQTBDOztJQUN0RywyREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZXBpY2tlckZvcm1Db21wb25lbnR9IGZyb20gJy4vZGF0ZXBpY2tlci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcclxuaW1wb3J0IHtEYXRlcGlja2VyQ29uZmlnfSBmcm9tICcuL2RhdGVwaWNrZXIuY29uZmlnJztcclxuaW1wb3J0IHtEYXRlcGlja2VyQ29tcG9uZW50fSBmcm9tICcuL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaHhhLWRhdGVwaWNrZXItaW50ZXJ2YWwnLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIGlzLWZsZXggaHgtZmxleC1qdXN0aWZ5LWJldHdlZW4gaHgtZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLWNvbnRlbnQgaXMtZmxleCBoeC1mbGV4LWNvbHVtbiBoeC1mbGV4LWF1dG8gaHgtZmxleC1hbGlnbi1jZW50ZXIgaHgtZmxleC1qdXN0aWZ5LWNlbnRlciAgcGEtM1wiPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLW51bWJlciBtci01XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwibnVtYmVyVGV4dFwiIGNsYXNzPVwiaHgtaW5wdXRcIiBtaW49MSAgWyhuZ01vZGVsKV09XCJkcm9wZG93bk51bWJlclwiIChjaGFuZ2UpPVwib25TZWxlY3QoKVwiICNudW1iZXJUZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImh4LWRyb3Bkb3duIG1vbnRoIG1yLTVcIiBoeGFEcm9wZG93bj5cclxuICAgICAgICAgIDxzZWxlY3QgaWQ9XCJkdXJhdGlvblRleHRcIiBjbGFzcz0gXCJoeC1pbnB1dFwiICAoY2hhbmdlKT1cIm9uU2VsZWN0KClcIiBbKG5nTW9kZWwpXT1cIkR1cmF0aW9uXCIgI2R1cmF0aW9uVGV4dD5cclxuICAgICAgICAgICAgPG9wdGlvbj5kYXkocyk8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbj53ZWVrKHMpPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24+bW9udGgocyk8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbj55ZWFyKHMpPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuPjxzbWFsbD5mcm9tPC9zbWFsbD4gPHNwYW4gY2xhc3M9XCJoeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC10b2RheSBtbC0yXCI+dG9kYXk8L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPHNwYW4+PHNtYWxsPndpbGwgYmU8L3NtYWxsPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsLXNlbGVjdGVkLWRhdGUgbWwtMVwiPlxyXG4gICAgICAgIHt7IF9EdWVEYXRlIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJoeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1mb290ZXIgcGEtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJoeC1idXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImh4LWNvbHVtbiBpcy10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImh4LWJ1dHRvbiBpcy1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2hvb3NlKClcIj5TZWxlY3Q8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5gLFxyXG4gIHN0eWxlczogW2AuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWx7bWF4LXdpZHRoOjE5cmVtO3dpZHRoOjE5cmVtO2hlaWdodDoxMy44NnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1jb250ZW50IC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1udW1iZXJ7d2lkdGg6Mi41cmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtY29udGVudCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtdG9kYXl7Zm9udC1zaXplOjFyZW19Lmh4LWRhdGVwaWNrZXItc2V0LWludGVydmFsIC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1jb250ZW50IC5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbC1zZWxlY3RlZC1kYXRle2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6NTAwfS5oeC1kYXRlcGlja2VyLXNldC1pbnRlcnZhbCAuaHgtZGF0ZXBpY2tlci1zZXQtaW50ZXJ2YWwtZm9vdGVye2ZsZXg6MCAwIGF1dG87YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCl9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJJbnRlcnZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2R1cmF0aW9uVGV4dCcpIGR1cmF0aW9uVGV4dDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdudW1iZXJUZXh0JykgbnVtYmVyVGV4dDogRWxlbWVudFJlZjtcclxuICBwcm90ZWN0ZWQgY2xvc2U6IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyBEdXJhdGlvbjogYW55IDsgLy8gPSAnZGF5KHMpJztcclxuICBwdWJsaWMgZHJvcGRvd25OdW1iZXI6IGFueSA7IC8vID0gMDtcclxuICBwdWJsaWMgdGV4dDogYW55IDsgLy8gPSAgbW9tZW50KCkuYWRkKHRoaXMuZHJvcGRvd25OdW1iZXIgLCB0aGlzLkR1cmF0aW9uKTtcclxuICBwdWJsaWMgX0R1ZURhdGU6IHN0cmluZyA7XHJcbiAgcHVibGljIF9kdWVEYXRlc3RyaW5nOiBzdHJpbmc7XHJcbiAgcHVibGljIGR1cmF0aW9uVGV4dDE6IGFueTtcclxuICBwdWJsaWMgbnVtYmVyVGV4dDE6IGFueTtcclxuICBwdWJsaWMgc2VsZWN0ZWREdXJhdGlvbjogc3RyaW5nO1xyXG4gIHByaXZhdGUgcHJlc2VudERhdGU6IERhdGU7XHJcbiAgdmlld0RhdGU6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWREYXRlSW50ZXJ2YWw6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdib3R0b20nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRlcGlja2VyRm9ybTogRGF0ZXBpY2tlckZvcm1Db21wb25lbnQsIHByaXZhdGUgZGF0ZVBpY2tlckNvbmZpZzogRGF0ZXBpY2tlckNvbmZpZyxcclxuICAgIHByaXZhdGUgX2RhdGVwaWNrZXJDb21wb25lbnQ6IERhdGVwaWNrZXJDb21wb25lbnQpIHtcclxuICAgICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPSB0aGlzLmRhdGVQaWNrZXJDb25maWcuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPT09IHVuZGVmaW5lZCA/XHJcbiAgICAgKHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPyB0aGlzLl9kYXRlcGlja2VyQ29tcG9uZW50LnNlbGVjdGVkRHVlRGF0ZUludGVydmFsLnNwbGl0KCcgJykgOiB1bmRlZmluZWQpIDpcclxuICAgICAgdGhpcy5kYXRlUGlja2VyQ29uZmlnLnNlbGVjdGVkRHVlRGF0ZUludGVydmFsLnNwbGl0KCcgJyk7XHJcbiAgICBpZiAoc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgJiYgc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTnVtYmVyID0gc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWxbMF07XHJcbiAgICAgIHRoaXMuRHVyYXRpb24gPSB0aGlzLnJlc2V0RHVyYXRpb25UZXh0KHNlbGVjdGVkRHVlRGF0ZUludGVydmFsWzFdKTtcclxuICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlckNvbmZpZyAmJiB0aGlzLmRhdGVQaWNrZXJDb25maWcudGFiU2VsZWN0ZWQgPT09ICd0YWIxJykge1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb25UZXh0MSA9IHRoaXMuU2VsZWN0RWxlbWVudCh0aGlzLmR1cmF0aW9uVGV4dCwgdGhpcy5EdXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5udW1iZXJUZXh0MSA9IHRoaXMuU2VsZWN0RWxlbWVudCh0aGlzLm51bWJlclRleHQsIHRoaXMuZHJvcGRvd25OdW1iZXIpO1xyXG4gICAgICAgIHRoaXMuX0R1ZURhdGUgPSB0aGlzLm9uU2VsZWN0b3B0aW9ucyh0aGlzLm51bWJlclRleHQxLCB0aGlzLmR1cmF0aW9uVGV4dDEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlckNvbmZpZyAmJiB0aGlzLmRhdGVQaWNrZXJDb25maWcudGFiU2VsZWN0ZWQgPT09ICd0YWIyJykge1xyXG4gICAgICAgIHRoaXMudGV4dCA9IG1vbWVudCgpLmFkZCh0aGlzLmRyb3Bkb3duTnVtYmVyLCB0aGlzLkR1cmF0aW9uLnJlcGxhY2UoJyhzKScsICdzJykpO1xyXG4gICAgICAgIHRoaXMuX0R1ZURhdGUgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ2RkZCBERC9NTS9ZWVlZJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fZGF0ZXBpY2tlckNvbXBvbmVudC5PcGVuRGl2ID0gZmFsc2U7XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25OdW1iZXIgJiYgdGhpcy5EdXJhdGlvbikge1xyXG4gICAgICB0aGlzLnRleHQgPSBtb21lbnQoKS5hZGQodGhpcy5kcm9wZG93bk51bWJlciAsIHRoaXMuRHVyYXRpb24ucmVwbGFjZSgnKHMpJywgJ3MnKSk7XHJcbiAgICAgIHRoaXMuX0R1ZURhdGUgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ2RkZCBERC9NTS9ZWVlZJyk7XHJcbiAgICAgIHRoaXMuX2R1ZURhdGVzdHJpbmcgPSAodGhpcy50ZXh0KS5mb3JtYXQoJ0REL01NL1lZWVknKTtcclxuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IHRoaXMudGV4dCA/IG5ldyBEYXRlKCB0aGlzLnRleHQpIDogbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5wcmVzZW50RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XHJcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQudmlld0RhdGUgPSAgbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkpO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyQ29tcG9uZW50LnJlbmRlckNhbGVuZGFyKCk7XHJcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJGb3JtLmR1ZURhdGVJbnRlcnZhbCA9IHRoaXMuZHJvcGRvd25OdW1iZXIgKyAnICcgKyB0aGlzLkR1cmF0aW9uO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuICAgICByZXR1cm4gdGhpcy5fRHVlRGF0ZTtcclxuICAgICB9XHJcbiAgfVxyXG4gIG9uU2VsZWN0b3B0aW9ucyhudW1iZXJ2YWx1ZSAsIGR1cmF0aW9uVmFsdWUpIHtcclxuICAgICAgdGhpcy50ZXh0ID0gbW9tZW50KCkuYWRkKG51bWJlcnZhbHVlICwgZHVyYXRpb25WYWx1ZS5yZXBsYWNlKCcocyknLCAncycpKTtcclxuICAgICAgdGhpcy5fRHVlRGF0ZSA9ICh0aGlzLnRleHQpLmZvcm1hdCgnZGRkIEREL01NL1lZWVknKTtcclxuICAgICAgdGhpcy5fZHVlRGF0ZXN0cmluZyA9ICh0aGlzLnRleHQpLmZvcm1hdCgnREQvTU0vWVlZWScpO1xyXG4gICAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9EdWVEYXRlO1xyXG4gIH1cclxuICBwdWJsaWMgb25DaG9vc2UoKSB7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5kYXRlID0gIG5ldyBEYXRlKHRoaXMudGV4dCk7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5zZXREYXRlKG5ldyBEYXRlKHRoaXMudGV4dCkpO1xyXG4gICAgdGhpcy5fZGF0ZXBpY2tlckNvbXBvbmVudC5PcGVuRGl2ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5vbkNoYW5nZSh0aGlzLl9kdWVEYXRlc3RyaW5nKTtcclxuICAgIHRoaXMuX2RhdGVwaWNrZXJDb21wb25lbnQuc2VsZWN0ZWREdWVEYXRlSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9kYXRlcGlja2VyRm9ybS5kdWVEYXRlSW50ZXJ2YWwgPSB0aGlzLmRyb3Bkb3duTnVtYmVyICsgJyAnICsgdGhpcy5EdXJhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RFbGVtZW50KGlkICwgdmFsdWVUb1NlbGVjdCkge1xyXG4gICAgKGlkLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gdmFsdWVUb1NlbGVjdDtcclxuICAgIHJldHVybiAoKGlkLm5hdGl2ZUVsZW1lbnQpLnZhbHVlKTtcclxuICB9XHJcbiAgcHVibGljIHJlc2V0RHVyYXRpb25UZXh0KGR1cmF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGR1cmF0aW9uID09PSAnZGF5JyB8fCBkdXJhdGlvbiA9PT0gJ3dlZWsnIHx8IGR1cmF0aW9uID09PSAnbW9udGgnIHx8IGR1cmF0aW9uID09PSAneWVhcicpIHtcclxuICAgICAgcmV0dXJuIGR1cmF0aW9uICsgJyhzKSc7XHJcbiAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09PSAnZGF5cycgfHwgZHVyYXRpb24gPT09ICd3ZWVrcycgfHwgZHVyYXRpb24gPT09ICdtb250aHMnIHx8IGR1cmF0aW9uID09PSAneWVhcnMnKSB7XHJcbiAgICAgIHJldHVybiBkdXJhdGlvbi5yZXBsYWNlKCdzJywgJyhzKScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=