@kre-form/ant
Version:
140 lines • 19.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component } from "@angular/core";
import { FieldWrapper, FormGlobalService } from "@kre-form/core";
import { KreFormAntService } from "../tools/service";
import * as _ from "lodash";
var KreFormWrapperFormField = /** @class */ (function (_super) {
tslib_1.__extends(KreFormWrapperFormField, _super);
function KreFormWrapperFormField(dyService, globalService) {
var _this = _super.call(this) || this;
_this.globalService = globalService;
if (_this.field &&
(_this.field.checked === undefined || _this.field.checked == null)) {
_this.field.checked = false;
}
_this.service = dyService;
return _this;
}
// label():string{
// console.log(this.to.lang , this.to)
// let label = this.to.label;
// if(!!this.to.labelI18n && this.to.labelI18n.length > 0 ) {
// }
// return label;
// }
// label():string{
// console.log(this.to.lang , this.to)
// let label = this.to.label;
// if(!!this.to.labelI18n && this.to.labelI18n.length > 0 ) {
// }
// return label;
// }
/**
* @param {?} sign
* @return {?}
*/
KreFormWrapperFormField.prototype.fieldOperational =
// label():string{
// console.log(this.to.lang , this.to)
// let label = this.to.label;
// if(!!this.to.labelI18n && this.to.labelI18n.length > 0 ) {
// }
// return label;
// }
/**
* @param {?} sign
* @return {?}
*/
function (sign) {
this.service.fieldOperational(sign, this.field);
};
/**
* @return {?}
*/
KreFormWrapperFormField.prototype.contentStyle = /**
* @return {?}
*/
function () {
return this.to.style || {};
};
/**
* @return {?}
*/
KreFormWrapperFormField.prototype.buttonClick = /**
* @return {?}
*/
function () {
this.globalService.notifyDataChanged("FieldWrapperClick", {
rdm: Math.random(),
config: this.field,
});
};
/**
* @return {?}
*/
KreFormWrapperFormField.prototype.hasTips = /**
* @return {?}
*/
function () {
if (!_.isEmpty(this.to.tipsI18n)) {
/** @type {?} */
var lang_1 = this.to.lang || "zh-cn";
(/** @type {?} */ (((/** @type {?} */ (this.to))))).tips = (/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (this.to))))).tipsI18n)).filter((/**
* @param {?} el
* @return {?}
*/
function (el) { return el.language === lang_1; }))[0]["value"];
}
return (/** @type {?} */ (((/** @type {?} */ (this.to))))).tips;
};
/**
* @param {?} e
* @return {?}
*/
KreFormWrapperFormField.prototype.fieldCheckChange = /**
* @param {?} e
* @return {?}
*/
function (e) { };
/**
* @return {?}
*/
KreFormWrapperFormField.prototype.showFieldButton = /**
* @return {?}
*/
function () {
/** @type {?} */
var showFieldButton = true;
if (!!this.to && this.to.showFieldButton === false) {
showFieldButton = false;
}
return showFieldButton;
};
KreFormWrapperFormField.decorators = [
{ type: Component, args: [{
selector: "krefield-wrapper",
template: "\n <ng-container *ngIf=\"formStatus !== 0; else formControl\">\n <label\n nz-checkbox\n [(ngModel)]=\"field.checked\"\n (ngModelChange)=\"fieldCheckChange($event)\"\n [nzDisabled]=\"\n !!field.editProperty &&\n field.editProperty.canMove !== undefined &&\n field.editProperty.canMove === false\n \"\n ></label>\n <div class=\"fieldbox\">\n <div\n class=\"fieldlabel\"\n [ngStyle]=\"{\n color: fontProperty.color,\n 'font-size': fontProperty.fontSize + 'px',\n 'font-style': fontProperty.fontStyle ? 'italic' : 'normal',\n 'font-weight': fontProperty.fontWeight ? 'bold' : 'normal'\n }\"\n >\n <span *ngIf=\"to.required\">*</span>\n <label\n [innerHtml]=\"to.label | safeHtml\"\n nz-tooltip\n [nzTooltipTitle]=\"to.label\"\n ></label>\n </div>\n <div\n class=\"field-content-box\"\n [class.field-has-button]=\"\n to.button && to.button != null && to.button?.show == true\n \"\n >\n <div class=\"fieldcontrol \" [ngStyle]=\"contentStyle()\">\n <ng-template #fieldComponent></ng-template>\n </div>\n <div\n class=\"field-unit\"\n *ngIf=\"to.unit && to.unit != null && to.unit != ''\"\n >\n <label [innerHtml]=\"to.unit | safeHtml\"></label>\n </div>\n <div\n class=\"field-button\"\n *ngIf=\"to.button && to.button != null && to.button?.show == true\"\n >\n <label\n [innerHtml]=\"to.button.label | safeHtml\"\n (click)=\"buttonClick()\"\n ></label>\n </div>\n <kreform-fieldbutton\n [field]=\"field\"\n (buttonClick)=\"fieldOperational($event)\"\n *ngIf=\"showFieldButton()\"\n ></kreform-fieldbutton>\n <div class=\"field-hide\" *ngIf=\"field.hide == true\">\u5DF2\u9690\u85CF</div>\n </div>\n </div>\n </ng-container>\n <ng-template #formControl>\n <div\n class=\"fieldlabel\"\n [ngStyle]=\"{\n color: fontProperty.color,\n 'font-size': fontProperty.fontSize + 'px',\n 'font-style': fontProperty.fontStyle ? 'italic' : 'normal',\n 'font-weight': fontProperty.fontWeight ? 'bold' : 'normal'\n }\"\n *ngIf=\"\n field.type != 'line' &&\n field.type != 'htmlcontent' &&\n to.hideLabel !== true\n \"\n >\n <span *ngIf=\"to.required\">*</span\n ><label [innerHtml]=\"to.label | safeHtml\"></label>\n </div>\n <div\n class=\"field-content-box\"\n [class.field-has-button]=\"\n to.button && to.button != null && to.button?.show == true\n \"\n >\n <div\n class=\"fieldcontrol\"\n [class.has-error]=\"showError\"\n [class.inherit]=\"contentStyle()\"\n [ngStyle]=\"contentStyle()\"\n >\n <ng-template #fieldComponent></ng-template>\n <div class=\"invalid-feedback\" [style.display]=\"'block'\">\n <kreform-validation-message\n *ngIf=\"showError\"\n style=\"color:red\"\n [field]=\"field\"\n ></kreform-validation-message>\n </div>\n <ng-container *ngIf=\"tags.mark\">\n <span [nzTooltipTitle]=\"tags.content\" nz-tooltip class=\"field-tags\">\n {{ tags.mark | tags }}\n </span>\n </ng-container>\n </div>\n <div\n class=\"field-unit\"\n *ngIf=\"to.unit && to.unit != null && to.unit != ''\"\n >\n <label [innerHtml]=\"to.unit | safeHtml\"></label>\n </div>\n <div\n class=\"field-button\"\n *ngIf=\"to.button && to.button != null && to.button?.show == true\"\n >\n <label\n [innerHtml]=\"to.button.label | safeHtml\"\n (click)=\"buttonClick()\"\n ></label>\n </div>\n\n <div class=\"field-tips\" *ngIf=\"hasTips()\">\n <i\n nz-icon\n nzType=\"question-circle\"\n nzTheme=\"outline\"\n nz-tooltip\n [nzTooltipTitle]=\"to.tips\"\n ></i>\n </div>\n </div>\n </ng-template>\n "
}] }
];
/** @nocollapse */
KreFormWrapperFormField.ctorParameters = function () { return [
{ type: KreFormAntService },
{ type: FormGlobalService }
]; };
return KreFormWrapperFormField;
}(FieldWrapper));
export { KreFormWrapperFormField };
if (false) {
/** @type {?} */
KreFormWrapperFormField.prototype.service;
/**
* @type {?}
* @private
*/
KreFormWrapperFormField.prototype.globalService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC53cmFwcGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi93cmFwcGVycy9mb3JtLWZpZWxkLndyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QjtJQXlJNkMsbURBQVk7SUFFdkQsaUNBQ0UsU0FBNEIsRUFDcEIsYUFBZ0M7UUFGMUMsWUFJRSxpQkFBTyxTQVNSO1FBWFMsbUJBQWEsR0FBYixhQUFhLENBQW1CO1FBR3hDLElBQ0UsS0FBSSxDQUFDLEtBQUs7WUFDVixDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxLQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFDaEU7WUFDQSxLQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDNUI7UUFFRCxLQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQzs7SUFDM0IsQ0FBQztJQUNELGtCQUFrQjtJQUNsQix3Q0FBd0M7SUFDeEMsK0JBQStCO0lBQy9CLGdFQUFnRTtJQUVoRSxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLElBQUk7Ozs7Ozs7Ozs7OztJQUVKLGtEQUFnQjs7Ozs7Ozs7Ozs7O0lBQWhCLFVBQWlCLElBQVk7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7SUFDRCw4Q0FBWTs7O0lBQVo7UUFDRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7O0lBQ0QsNkNBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRTtZQUN4RCxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUNELHlDQUFPOzs7SUFBUDtRQUNFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7O2dCQUM1QixNQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTztZQUNsQyxtQkFBQSxDQUFDLG1CQUFBLElBQUksQ0FBQyxFQUFFLEVBQU8sQ0FBQyxFQUFDLENBQUMsSUFBSSxHQUFHLG1CQUFBLG1CQUFBLENBQUMsbUJBQUEsSUFBSSxDQUFDLEVBQUUsRUFBTyxDQUFDLEVBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxNQUFNOzs7O1lBQ3pELFVBQUMsRUFBTyxJQUFLLE9BQUEsRUFBRSxDQUFDLFFBQVEsS0FBSyxNQUFJLEVBQXBCLENBQW9CLEVBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDZjtRQUNELE9BQU8sbUJBQUEsQ0FBQyxtQkFBQSxJQUFJLENBQUMsRUFBRSxFQUFPLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELGtEQUFnQjs7OztJQUFoQixVQUFpQixDQUFNLElBQUcsQ0FBQzs7OztJQUMzQixpREFBZTs7O0lBQWY7O1lBQ00sZUFBZSxHQUFHLElBQUk7UUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsS0FBSyxLQUFLLEVBQUU7WUFDbEQsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUN6QjtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7O2dCQS9MRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLG01SUFxSVQ7aUJBQ0Y7Ozs7Z0JBMUlRLGlCQUFpQjtnQkFESCxpQkFBaUI7O0lBbU14Qyw4QkFBQztDQUFBLEFBaE1ELENBeUk2QyxZQUFZLEdBdUR4RDtTQXZEWSx1QkFBdUI7OztJQUNsQywwQ0FBYTs7Ozs7SUFHWCxnREFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRmllbGRXcmFwcGVyLCBGb3JtR2xvYmFsU2VydmljZSB9IGZyb20gXCJAa3JlLWZvcm0vY29yZVwiO1xuaW1wb3J0IHsgS3JlRm9ybUFudFNlcnZpY2UgfSBmcm9tIFwiLi4vdG9vbHMvc2VydmljZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3JlZmllbGQtd3JhcHBlclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtU3RhdHVzICE9PSAwOyBlbHNlIGZvcm1Db250cm9sXCI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgbnotY2hlY2tib3hcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZC5jaGVja2VkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZmllbGRDaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW256RGlzYWJsZWRdPVwiXG4gICAgICAgICAgISFmaWVsZC5lZGl0UHJvcGVydHkgJiZcbiAgICAgICAgICBmaWVsZC5lZGl0UHJvcGVydHkuY2FuTW92ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZmllbGQuZWRpdFByb3BlcnR5LmNhbk1vdmUgPT09IGZhbHNlXG4gICAgICAgIFwiXG4gICAgICA+PC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZGJveFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWVsZGxhYmVsXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICBjb2xvcjogZm9udFByb3BlcnR5LmNvbG9yLFxuICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6IGZvbnRQcm9wZXJ0eS5mb250U2l6ZSArICdweCcsXG4gICAgICAgICAgICAnZm9udC1zdHlsZSc6IGZvbnRQcm9wZXJ0eS5mb250U3R5bGUgPyAnaXRhbGljJyA6ICdub3JtYWwnLFxuICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogZm9udFByb3BlcnR5LmZvbnRXZWlnaHQgPyAnYm9sZCcgOiAnbm9ybWFsJ1xuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0by5yZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBbaW5uZXJIdG1sXT1cInRvLmxhYmVsIHwgc2FmZUh0bWxcIlxuICAgICAgICAgICAgbnotdG9vbHRpcFxuICAgICAgICAgICAgW256VG9vbHRpcFRpdGxlXT1cInRvLmxhYmVsXCJcbiAgICAgICAgICA+PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpZWxkLWNvbnRlbnQtYm94XCJcbiAgICAgICAgICBbY2xhc3MuZmllbGQtaGFzLWJ1dHRvbl09XCJcbiAgICAgICAgICAgIHRvLmJ1dHRvbiAmJiB0by5idXR0b24gIT0gbnVsbCAmJiB0by5idXR0b24/LnNob3cgPT0gdHJ1ZVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRjb250cm9sIFwiIFtuZ1N0eWxlXT1cImNvbnRlbnRTdHlsZSgpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZpZWxkQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmaWVsZC11bml0XCJcbiAgICAgICAgICAgICpuZ0lmPVwidG8udW5pdCAmJiB0by51bml0ICE9IG51bGwgJiYgdG8udW5pdCAhPSAnJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIFtpbm5lckh0bWxdPVwidG8udW5pdCB8IHNhZmVIdG1sXCI+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpZWxkLWJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cInRvLmJ1dHRvbiAmJiB0by5idXR0b24gIT0gbnVsbCAmJiB0by5idXR0b24/LnNob3cgPT0gdHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwidG8uYnV0dG9uLmxhYmVsIHwgc2FmZUh0bWxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgICA+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8a3JlZm9ybS1maWVsZGJ1dHRvblxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJmaWVsZE9wZXJhdGlvbmFsKCRldmVudClcIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93RmllbGRCdXR0b24oKVwiXG4gICAgICAgICAgPjwva3JlZm9ybS1maWVsZGJ1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtaGlkZVwiICpuZ0lmPVwiZmllbGQuaGlkZSA9PSB0cnVlXCI+5bey6ZqQ6JePPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtQ29udHJvbD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWVsZGxhYmVsXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGNvbG9yOiBmb250UHJvcGVydHkuY29sb3IsXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6IGZvbnRQcm9wZXJ0eS5mb250U2l6ZSArICdweCcsXG4gICAgICAgICAgJ2ZvbnQtc3R5bGUnOiBmb250UHJvcGVydHkuZm9udFN0eWxlID8gJ2l0YWxpYycgOiAnbm9ybWFsJyxcbiAgICAgICAgICAnZm9udC13ZWlnaHQnOiBmb250UHJvcGVydHkuZm9udFdlaWdodCA/ICdib2xkJyA6ICdub3JtYWwnXG4gICAgICAgIH1cIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGZpZWxkLnR5cGUgIT0gJ2xpbmUnICYmXG4gICAgICAgICAgZmllbGQudHlwZSAhPSAnaHRtbGNvbnRlbnQnICYmXG4gICAgICAgICAgdG8uaGlkZUxhYmVsICE9PSB0cnVlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWRcIj4qPC9zcGFuXG4gICAgICAgID48bGFiZWwgW2lubmVySHRtbF09XCJ0by5sYWJlbCB8IHNhZmVIdG1sXCI+PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZpZWxkLWNvbnRlbnQtYm94XCJcbiAgICAgICAgW2NsYXNzLmZpZWxkLWhhcy1idXR0b25dPVwiXG4gICAgICAgICAgdG8uYnV0dG9uICYmIHRvLmJ1dHRvbiAhPSBudWxsICYmIHRvLmJ1dHRvbj8uc2hvdyA9PSB0cnVlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpZWxkY29udHJvbFwiXG4gICAgICAgICAgW2NsYXNzLmhhcy1lcnJvcl09XCJzaG93RXJyb3JcIlxuICAgICAgICAgIFtjbGFzcy5pbmhlcml0XT1cImNvbnRlbnRTdHlsZSgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJjb250ZW50U3R5bGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZpZWxkQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiBbc3R5bGUuZGlzcGxheV09XCInYmxvY2snXCI+XG4gICAgICAgICAgICA8a3JlZm9ybS12YWxpZGF0aW9uLW1lc3NhZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RXJyb3JcIlxuICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOnJlZFwiXG4gICAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICA+PC9rcmVmb3JtLXZhbGlkYXRpb24tbWVzc2FnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFncy5tYXJrXCI+XG4gICAgICAgICAgICA8c3BhbiBbbnpUb29sdGlwVGl0bGVdPVwidGFncy5jb250ZW50XCIgbnotdG9vbHRpcCBjbGFzcz1cImZpZWxkLXRhZ3NcIj5cbiAgICAgICAgICAgICAge3sgdGFncy5tYXJrIHwgdGFncyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmllbGQtdW5pdFwiXG4gICAgICAgICAgKm5nSWY9XCJ0by51bml0ICYmIHRvLnVuaXQgIT0gbnVsbCAmJiB0by51bml0ICE9ICcnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbCBbaW5uZXJIdG1sXT1cInRvLnVuaXQgfCBzYWZlSHRtbFwiPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWVsZC1idXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwidG8uYnV0dG9uICYmIHRvLmJ1dHRvbiAhPSBudWxsICYmIHRvLmJ1dHRvbj8uc2hvdyA9PSB0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJ0by5idXR0b24ubGFiZWwgfCBzYWZlSHRtbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC10aXBzXCIgKm5nSWY9XCJoYXNUaXBzKClcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgbnotaWNvblxuICAgICAgICAgICAgbnpUeXBlPVwicXVlc3Rpb24tY2lyY2xlXCJcbiAgICAgICAgICAgIG56VGhlbWU9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIG56LXRvb2x0aXBcbiAgICAgICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJ0by50aXBzXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEtyZUZvcm1XcmFwcGVyRm9ybUZpZWxkIGV4dGVuZHMgRmllbGRXcmFwcGVyIHtcbiAgc2VydmljZTogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBkeVNlcnZpY2U6IEtyZUZvcm1BbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2xvYmFsU2VydmljZTogRm9ybUdsb2JhbFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZpZWxkICYmXG4gICAgICAodGhpcy5maWVsZC5jaGVja2VkID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWVsZC5jaGVja2VkID09IG51bGwpXG4gICAgKSB7XG4gICAgICB0aGlzLmZpZWxkLmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2UgPSBkeVNlcnZpY2U7XG4gIH1cbiAgLy8gbGFiZWwoKTpzdHJpbmd7XG4gIC8vICAgY29uc29sZS5sb2codGhpcy50by5sYW5nICwgdGhpcy50bylcbiAgLy8gICBsZXQgbGFiZWwgPSB0aGlzLnRvLmxhYmVsO1xuICAvLyAgIGlmKCEhdGhpcy50by5sYWJlbEkxOG4gJiYgdGhpcy50by5sYWJlbEkxOG4ubGVuZ3RoID4gMCAgKSB7XG5cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIGxhYmVsO1xuICAvLyB9XG5cbiAgZmllbGRPcGVyYXRpb25hbChzaWduOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuZmllbGRPcGVyYXRpb25hbChzaWduLCB0aGlzLmZpZWxkKTtcbiAgfVxuICBjb250ZW50U3R5bGUoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy50by5zdHlsZSB8fCB7fTtcbiAgfVxuICBidXR0b25DbGljaygpIHtcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2Uubm90aWZ5RGF0YUNoYW5nZWQoXCJGaWVsZFdyYXBwZXJDbGlja1wiLCB7XG4gICAgICByZG06IE1hdGgucmFuZG9tKCksXG4gICAgICBjb25maWc6IHRoaXMuZmllbGQsXG4gICAgfSk7XG4gIH1cbiAgaGFzVGlwcygpOiBzdHJpbmcge1xuICAgIGlmICghXy5pc0VtcHR5KHRoaXMudG8udGlwc0kxOG4pKSB7XG4gICAgICBsZXQgbGFuZyA9IHRoaXMudG8ubGFuZyB8fCBcInpoLWNuXCI7XG4gICAgICAodGhpcy50byBhcyBhbnkpIS50aXBzID0gKHRoaXMudG8gYXMgYW55KSEudGlwc0kxOG4hLmZpbHRlcihcbiAgICAgICAgKGVsOiBhbnkpID0+IGVsLmxhbmd1YWdlID09PSBsYW5nXG4gICAgICApWzBdW1widmFsdWVcIl07XG4gICAgfVxuICAgIHJldHVybiAodGhpcy50byBhcyBhbnkpIS50aXBzO1xuICB9XG5cbiAgZmllbGRDaGVja0NoYW5nZShlOiBhbnkpIHt9XG4gIHNob3dGaWVsZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvd0ZpZWxkQnV0dG9uID0gdHJ1ZTtcbiAgICBpZiAoISF0aGlzLnRvICYmIHRoaXMudG8uc2hvd0ZpZWxkQnV0dG9uID09PSBmYWxzZSkge1xuICAgICAgc2hvd0ZpZWxkQnV0dG9uID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBzaG93RmllbGRCdXR0b247XG4gIH1cbn1cbiJdfQ==