UNPKG

@kre-form/ant

Version:

237 lines (236 loc) 18.1 kB
/** * @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=