@kre-form/ant
Version:
237 lines (236 loc) • 18.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component } from "@angular/core";
import { FieldWrapper, FormGlobalService } from "@kre-form/core";
import { KreFormAntService } from "../tools/service";
import * as _ from "lodash";
export class KreFormWrapperFormField extends FieldWrapper {
/**
* @param {?} dyService
* @param {?} globalService
*/
constructor(dyService, globalService) {
super();
this.globalService = globalService;
if (this.field &&
(this.field.checked === undefined || this.field.checked == null)) {
this.field.checked = false;
}
this.service = dyService;
}
// 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 {?}
*/
fieldOperational(sign) {
this.service.fieldOperational(sign, this.field);
}
/**
* @return {?}
*/
contentStyle() {
return this.to.style || {};
}
/**
* @return {?}
*/
buttonClick() {
this.globalService.notifyDataChanged("FieldWrapperClick", {
rdm: Math.random(),
config: this.field,
});
}
/**
* @return {?}
*/
hasTips() {
if (!_.isEmpty(this.to.tipsI18n)) {
/** @type {?} */
let lang = this.to.lang || "zh-cn";
(/** @type {?} */ (((/** @type {?} */ (this.to))))).tips = (/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (this.to))))).tipsI18n)).filter((/**
* @param {?} el
* @return {?}
*/
(el) => el.language === lang))[0]["value"];
}
return (/** @type {?} */ (((/** @type {?} */ (this.to))))).tips;
}
/**
* @param {?} e
* @return {?}
*/
fieldCheckChange(e) { }
/**
* @return {?}
*/
showFieldButton() {
/** @type {?} */
let showFieldButton = true;
if (!!this.to && this.to.showFieldButton === false) {
showFieldButton = false;
}
return showFieldButton;
}
}
KreFormWrapperFormField.decorators = [
{ type: Component, args: [{
selector: "krefield-wrapper",
template: `
<ng-container *ngIf="formStatus !== 0; else formControl">
<label
nz-checkbox
[(ngModel)]="field.checked"
(ngModelChange)="fieldCheckChange($event)"
[nzDisabled]="
!!field.editProperty &&
field.editProperty.canMove !== undefined &&
field.editProperty.canMove === false
"
></label>
<div class="fieldbox">
<div
class="fieldlabel"
[ngStyle]="{
color: fontProperty.color,
'font-size': fontProperty.fontSize + 'px',
'font-style': fontProperty.fontStyle ? 'italic' : 'normal',
'font-weight': fontProperty.fontWeight ? 'bold' : 'normal'
}"
>
<span *ngIf="to.required">*</span>
<label
[innerHtml]="to.label | safeHtml"
nz-tooltip
[nzTooltipTitle]="to.label"
></label>
</div>
<div
class="field-content-box"
[class.field-has-button]="
to.button && to.button != null && to.button?.show == true
"
>
<div class="fieldcontrol " [ngStyle]="contentStyle()">
<ng-template #fieldComponent></ng-template>
</div>
<div
class="field-unit"
*ngIf="to.unit && to.unit != null && to.unit != ''"
>
<label [innerHtml]="to.unit | safeHtml"></label>
</div>
<div
class="field-button"
*ngIf="to.button && to.button != null && to.button?.show == true"
>
<label
[innerHtml]="to.button.label | safeHtml"
(click)="buttonClick()"
></label>
</div>
<kreform-fieldbutton
[field]="field"
(buttonClick)="fieldOperational($event)"
*ngIf="showFieldButton()"
></kreform-fieldbutton>
<div class="field-hide" *ngIf="field.hide == true">已隐藏</div>
</div>
</div>
</ng-container>
<ng-template #formControl>
<div
class="fieldlabel"
[ngStyle]="{
color: fontProperty.color,
'font-size': fontProperty.fontSize + 'px',
'font-style': fontProperty.fontStyle ? 'italic' : 'normal',
'font-weight': fontProperty.fontWeight ? 'bold' : 'normal'
}"
*ngIf="
field.type != 'line' &&
field.type != 'htmlcontent' &&
to.hideLabel !== true
"
>
<span *ngIf="to.required">*</span
><label [innerHtml]="to.label | safeHtml"></label>
</div>
<div
class="field-content-box"
[class.field-has-button]="
to.button && to.button != null && to.button?.show == true
"
>
<div
class="fieldcontrol"
[class.has-error]="showError"
[class.inherit]="contentStyle()"
[ngStyle]="contentStyle()"
>
<ng-template #fieldComponent></ng-template>
<div class="invalid-feedback" [style.display]="'block'">
<kreform-validation-message
*ngIf="showError"
style="color:red"
[field]="field"
></kreform-validation-message>
</div>
<ng-container *ngIf="tags.mark">
<span [nzTooltipTitle]="tags.content" nz-tooltip class="field-tags">
{{ tags.mark | tags }}
</span>
</ng-container>
</div>
<div
class="field-unit"
*ngIf="to.unit && to.unit != null && to.unit != ''"
>
<label [innerHtml]="to.unit | safeHtml"></label>
</div>
<div
class="field-button"
*ngIf="to.button && to.button != null && to.button?.show == true"
>
<label
[innerHtml]="to.button.label | safeHtml"
(click)="buttonClick()"
></label>
</div>
<div class="field-tips" *ngIf="hasTips()">
<i
nz-icon
nzType="question-circle"
nzTheme="outline"
nz-tooltip
[nzTooltipTitle]="to.tips"
></i>
</div>
</div>
</ng-template>
`
}] }
];
/** @nocollapse */
KreFormWrapperFormField.ctorParameters = () => [
{ type: KreFormAntService },
{ type: FormGlobalService }
];
if (false) {
/** @type {?} */
KreFormWrapperFormField.prototype.service;
/**
* @type {?}
* @private
*/
KreFormWrapperFormField.prototype.globalService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC53cmFwcGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi93cmFwcGVycy9mb3JtLWZpZWxkLndyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBMEk1QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBWTs7Ozs7SUFFdkQsWUFDRSxTQUE0QixFQUNwQixhQUFnQztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQUZBLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUd4QyxJQUNFLElBQUksQ0FBQyxLQUFLO1lBQ1YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEVBQ2hFO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDM0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lBVUQsZ0JBQWdCLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7OztJQUNELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7O0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUU7WUFDeEQsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTs7Z0JBQzVCLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxPQUFPO1lBQ2xDLG1CQUFBLENBQUMsbUJBQUEsSUFBSSxDQUFDLEVBQUUsRUFBTyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEdBQUcsbUJBQUEsbUJBQUEsQ0FBQyxtQkFBQSxJQUFJLENBQUMsRUFBRSxFQUFPLENBQUMsRUFBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLE1BQU07Ozs7WUFDekQsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLG1CQUFBLENBQUMsbUJBQUEsSUFBSSxDQUFDLEVBQUUsRUFBTyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFNLElBQUcsQ0FBQzs7OztJQUMzQixlQUFlOztZQUNULGVBQWUsR0FBRyxJQUFJO1FBQzFCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEtBQUssS0FBSyxFQUFFO1lBQ2xELGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzs7WUEvTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFJVDthQUNGOzs7O1lBMUlRLGlCQUFpQjtZQURILGlCQUFpQjs7OztJQTZJdEMsMENBQWE7Ozs7O0lBR1gsZ0RBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkV3JhcHBlciwgRm9ybUdsb2JhbFNlcnZpY2UgfSBmcm9tIFwiQGtyZS1mb3JtL2NvcmVcIjtcbmltcG9ydCB7IEtyZUZvcm1BbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3Rvb2xzL3NlcnZpY2VcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImtyZWZpZWxkLXdyYXBwZXJcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybVN0YXR1cyAhPT0gMDsgZWxzZSBmb3JtQ29udHJvbFwiPlxuICAgICAgPGxhYmVsXG4gICAgICAgIG56LWNoZWNrYm94XG4gICAgICAgIFsobmdNb2RlbCldPVwiZmllbGQuY2hlY2tlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpZWxkQ2hlY2tDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtuekRpc2FibGVkXT1cIlxuICAgICAgICAgICEhZmllbGQuZWRpdFByb3BlcnR5ICYmXG4gICAgICAgICAgZmllbGQuZWRpdFByb3BlcnR5LmNhbk1vdmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGZpZWxkLmVkaXRQcm9wZXJ0eS5jYW5Nb3ZlID09PSBmYWxzZVxuICAgICAgICBcIlxuICAgICAgPjwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGRib3hcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmllbGRsYWJlbFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgY29sb3I6IGZvbnRQcm9wZXJ0eS5jb2xvcixcbiAgICAgICAgICAgICdmb250LXNpemUnOiBmb250UHJvcGVydHkuZm9udFNpemUgKyAncHgnLFxuICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnOiBmb250UHJvcGVydHkuZm9udFN0eWxlID8gJ2l0YWxpYycgOiAnbm9ybWFsJyxcbiAgICAgICAgICAgICdmb250LXdlaWdodCc6IGZvbnRQcm9wZXJ0eS5mb250V2VpZ2h0ID8gJ2JvbGQnIDogJ25vcm1hbCdcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJ0by5sYWJlbCB8IHNhZmVIdG1sXCJcbiAgICAgICAgICAgIG56LXRvb2x0aXBcbiAgICAgICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJ0by5sYWJlbFwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWVsZC1jb250ZW50LWJveFwiXG4gICAgICAgICAgW2NsYXNzLmZpZWxkLWhhcy1idXR0b25dPVwiXG4gICAgICAgICAgICB0by5idXR0b24gJiYgdG8uYnV0dG9uICE9IG51bGwgJiYgdG8uYnV0dG9uPy5zaG93ID09IHRydWVcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkY29udHJvbCBcIiBbbmdTdHlsZV09XCJjb250ZW50U3R5bGUoKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWVsZENvbXBvbmVudD48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmllbGQtdW5pdFwiXG4gICAgICAgICAgICAqbmdJZj1cInRvLnVuaXQgJiYgdG8udW5pdCAhPSBudWxsICYmIHRvLnVuaXQgIT0gJydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbCBbaW5uZXJIdG1sXT1cInRvLnVuaXQgfCBzYWZlSHRtbFwiPjwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmaWVsZC1idXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCJ0by5idXR0b24gJiYgdG8uYnV0dG9uICE9IG51bGwgJiYgdG8uYnV0dG9uPy5zaG93ID09IHRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cInRvLmJ1dHRvbi5sYWJlbCB8IHNhZmVIdG1sXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKClcIlxuICAgICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGtyZWZvcm0tZmllbGRidXR0b25cbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiZmllbGRPcGVyYXRpb25hbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0ZpZWxkQnV0dG9uKClcIlxuICAgICAgICAgID48L2tyZWZvcm0tZmllbGRidXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWhpZGVcIiAqbmdJZj1cImZpZWxkLmhpZGUgPT0gdHJ1ZVwiPuW3sumakOiXjzwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZm9ybUNvbnRyb2w+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmllbGRsYWJlbFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBjb2xvcjogZm9udFByb3BlcnR5LmNvbG9yLFxuICAgICAgICAgICdmb250LXNpemUnOiBmb250UHJvcGVydHkuZm9udFNpemUgKyAncHgnLFxuICAgICAgICAgICdmb250LXN0eWxlJzogZm9udFByb3BlcnR5LmZvbnRTdHlsZSA/ICdpdGFsaWMnIDogJ25vcm1hbCcsXG4gICAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogZm9udFByb3BlcnR5LmZvbnRXZWlnaHQgPyAnYm9sZCcgOiAnbm9ybWFsJ1xuICAgICAgICB9XCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBmaWVsZC50eXBlICE9ICdsaW5lJyAmJlxuICAgICAgICAgIGZpZWxkLnR5cGUgIT0gJ2h0bWxjb250ZW50JyAmJlxuICAgICAgICAgIHRvLmhpZGVMYWJlbCAhPT0gdHJ1ZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInRvLnJlcXVpcmVkXCI+Kjwvc3BhblxuICAgICAgICA+PGxhYmVsIFtpbm5lckh0bWxdPVwidG8ubGFiZWwgfCBzYWZlSHRtbFwiPjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWVsZC1jb250ZW50LWJveFwiXG4gICAgICAgIFtjbGFzcy5maWVsZC1oYXMtYnV0dG9uXT1cIlxuICAgICAgICAgIHRvLmJ1dHRvbiAmJiB0by5idXR0b24gIT0gbnVsbCAmJiB0by5idXR0b24/LnNob3cgPT0gdHJ1ZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWVsZGNvbnRyb2xcIlxuICAgICAgICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwic2hvd0Vycm9yXCJcbiAgICAgICAgICBbY2xhc3MuaW5oZXJpdF09XCJjb250ZW50U3R5bGUoKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwiY29udGVudFN0eWxlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWVsZENvbXBvbmVudD48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgW3N0eWxlLmRpc3BsYXldPVwiJ2Jsb2NrJ1wiPlxuICAgICAgICAgICAgPGtyZWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Vycm9yXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjpyZWRcIlxuICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgPjwva3JlZm9ybS12YWxpZGF0aW9uLW1lc3NhZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhZ3MubWFya1wiPlxuICAgICAgICAgICAgPHNwYW4gW256VG9vbHRpcFRpdGxlXT1cInRhZ3MuY29udGVudFwiIG56LXRvb2x0aXAgY2xhc3M9XCJmaWVsZC10YWdzXCI+XG4gICAgICAgICAgICAgIHt7IHRhZ3MubWFyayB8IHRhZ3MgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpZWxkLXVuaXRcIlxuICAgICAgICAgICpuZ0lmPVwidG8udW5pdCAmJiB0by51bml0ICE9IG51bGwgJiYgdG8udW5pdCAhPSAnJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgW2lubmVySHRtbF09XCJ0by51bml0IHwgc2FmZUh0bWxcIj48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmllbGQtYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cInRvLmJ1dHRvbiAmJiB0by5idXR0b24gIT0gbnVsbCAmJiB0by5idXR0b24/LnNob3cgPT0gdHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwidG8uYnV0dG9uLmxhYmVsIHwgc2FmZUh0bWxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKClcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtdGlwc1wiICpuZ0lmPVwiaGFzVGlwcygpXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIG56LWljb25cbiAgICAgICAgICAgIG56VHlwZT1cInF1ZXN0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgICBuelRoZW1lPVwib3V0bGluZVwiXG4gICAgICAgICAgICBuei10b29sdGlwXG4gICAgICAgICAgICBbbnpUb29sdGlwVGl0bGVdPVwidG8udGlwc1wiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBLcmVGb3JtV3JhcHBlckZvcm1GaWVsZCBleHRlbmRzIEZpZWxkV3JhcHBlciB7XG4gIHNlcnZpY2U6IGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAgZHlTZXJ2aWNlOiBLcmVGb3JtQW50U2VydmljZSxcbiAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IEZvcm1HbG9iYWxTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5maWVsZCAmJlxuICAgICAgKHRoaXMuZmllbGQuY2hlY2tlZCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZmllbGQuY2hlY2tlZCA9PSBudWxsKVxuICAgICkge1xuICAgICAgdGhpcy5maWVsZC5jaGVja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZXJ2aWNlID0gZHlTZXJ2aWNlO1xuICB9XG4gIC8vIGxhYmVsKCk6c3RyaW5ne1xuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMudG8ubGFuZyAsIHRoaXMudG8pXG4gIC8vICAgbGV0IGxhYmVsID0gdGhpcy50by5sYWJlbDtcbiAgLy8gICBpZighIXRoaXMudG8ubGFiZWxJMThuICYmIHRoaXMudG8ubGFiZWxJMThuLmxlbmd0aCA+IDAgICkge1xuXG4gIC8vICAgfVxuICAvLyAgIHJldHVybiBsYWJlbDtcbiAgLy8gfVxuXG4gIGZpZWxkT3BlcmF0aW9uYWwoc2lnbjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmZpZWxkT3BlcmF0aW9uYWwoc2lnbiwgdGhpcy5maWVsZCk7XG4gIH1cbiAgY29udGVudFN0eWxlKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMudG8uc3R5bGUgfHwge307XG4gIH1cbiAgYnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5nbG9iYWxTZXJ2aWNlLm5vdGlmeURhdGFDaGFuZ2VkKFwiRmllbGRXcmFwcGVyQ2xpY2tcIiwge1xuICAgICAgcmRtOiBNYXRoLnJhbmRvbSgpLFxuICAgICAgY29uZmlnOiB0aGlzLmZpZWxkLFxuICAgIH0pO1xuICB9XG4gIGhhc1RpcHMoKTogc3RyaW5nIHtcbiAgICBpZiAoIV8uaXNFbXB0eSh0aGlzLnRvLnRpcHNJMThuKSkge1xuICAgICAgbGV0IGxhbmcgPSB0aGlzLnRvLmxhbmcgfHwgXCJ6aC1jblwiO1xuICAgICAgKHRoaXMudG8gYXMgYW55KSEudGlwcyA9ICh0aGlzLnRvIGFzIGFueSkhLnRpcHNJMThuIS5maWx0ZXIoXG4gICAgICAgIChlbDogYW55KSA9PiBlbC5sYW5ndWFnZSA9PT0gbGFuZ1xuICAgICAgKVswXVtcInZhbHVlXCJdO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMudG8gYXMgYW55KSEudGlwcztcbiAgfVxuXG4gIGZpZWxkQ2hlY2tDaGFuZ2UoZTogYW55KSB7fVxuICBzaG93RmllbGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3dGaWVsZEJ1dHRvbiA9IHRydWU7XG4gICAgaWYgKCEhdGhpcy50byAmJiB0aGlzLnRvLnNob3dGaWVsZEJ1dHRvbiA9PT0gZmFsc2UpIHtcbiAgICAgIHNob3dGaWVsZEJ1dHRvbiA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gc2hvd0ZpZWxkQnV0dG9uO1xuICB9XG59XG4iXX0=