@kre-form/ant
Version:
180 lines • 19.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewChild, HostListener } from "@angular/core";
import { CdkOverlayOrigin } from "@angular/cdk/overlay";
import { FieldType } from "@kre-form/core";
import { ActivatedRoute } from "@angular/router";
var KreFormFieldTextI18n = /** @class */ (function (_super) {
tslib_1.__extends(KreFormFieldTextI18n, _super);
function KreFormFieldTextI18n(route) {
var _this = _super.call(this) || this;
_this.route = route;
_this.triggerWidth = "260px";
_this.languageList = [
{ languageType: "zh-cn", label: "中", resValue: null },
{ languageType: "en", label: "英", resValue: null },
];
return _this;
}
/**
* @param {?} event
* @return {?}
*/
KreFormFieldTextI18n.prototype.resize = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.visibleChange(event);
};
/**
* @return {?}
*/
KreFormFieldTextI18n.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (!!this.route.snapshot.queryParams["lang"] &&
((/** @type {?} */ (this.route.snapshot.queryParams["lang"]))).toLocaleLowerCase() === "en") {
this.languageList = [
{ languageType: "zh-cn", label: "中", resValue: null },
{ languageType: "en", label: "EN", resValue: null },
];
}
};
Object.defineProperty(KreFormFieldTextI18n.prototype, "language", {
get: /**
* @return {?}
*/
function () {
if (this.model != undefined &&
this.model != null &&
this.key != undefined &&
this.key != null &&
this.model.hasOwnProperty(this.key)) {
if (this.formControl.value != undefined &&
this.formControl.value != null &&
this.formControl.value != [] &&
this.formControl.value.length > 0) {
if (this.formControl.value != this.languageList) {
this.languageList = this.formControl.value;
}
}
}
return this.languageList;
},
enumerable: true,
configurable: true
});
/**
* @param {?} value
* @return {?}
*/
KreFormFieldTextI18n.prototype.onChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (this.to.required) {
/** @type {?} */
var empty = this.languageList.some((/**
* @param {?} item
* @return {?}
*/
function (item) {
return ((item.resValue === null ||
item.resValue === "" ||
item.resValue === " ") &&
item.languageType === "zh-cn");
}));
if (empty) {
this.formControl.setValue([]);
}
else {
this.formControl.setValue(this.languageList);
}
}
else {
this.formControl.setValue(this.languageList);
}
this.formControl.markAsTouched();
};
/**
* @param {?} event
* @return {?}
*/
KreFormFieldTextI18n.prototype.visibleChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (event) {
if (this.cdkOverlayOrigin !== undefined) {
this.triggerWidth =
this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect()
.width -
0 +
"px";
}
}
};
Object.defineProperty(KreFormFieldTextI18n.prototype, "langText", {
get: /**
* @return {?}
*/
function () {
if (this.model != undefined &&
this.model != null &&
this.key != undefined &&
this.key != null &&
this.model[this.key] != undefined) {
/** @type {?} */
var lang = this.model[this.key];
if (lang != undefined &&
lang != null &&
lang != "" &&
lang instanceof Array &&
lang.length > 0) {
return lang[0]["resValue"];
}
return "";
}
return "";
},
enumerable: true,
configurable: true
});
KreFormFieldTextI18n.decorators = [
{ type: Component, args: [{
selector: "kreform-field-inputi18n",
template: "\n <ng-container *ngIf=\"formStatus !== 0; else other\">\n <div class=\"control-design\">\n <input nz-input disabled />\n </div>\n </ng-container>\n\n <ng-template #other>\n <ng-container *ngIf=\"editor === true\">\n <div class=\"inputi18n\">\n <div class=\"inputi18n-text\" cdkOverlayOrigin>\n <input\n nz-input\n autocomplete=\"off\"\n [(ngModel)]=\"language[0].resValue\"\n [kreFormAttributes]=\"field\"\n (ngModelChange)=\"onChange(language[0].resValue)\"\n nz-popover\n nzPopoverTrigger=\"click\"\n [nzPopoverContent]=\"contentTemplate\"\n nzOverlayClassName=\"inputi18n-template\"\n nzPopoverPlacement=\"bottom\"\n [nzOverlayStyle]=\"{ width: triggerWidth }\"\n (nzVisibleChange)=\"visibleChange($event)\"\n [maxLength]=\"to.maxLength || 200\"\n [minLength]=\"to.minLength || 0\"\n />\n <i nz-icon class=\"inputi18n-i\" nzType=\"global\"></i>\n </div>\n <!-- <div class=\"tips\">\n <i\n class=\"icon-bangzhu\"\n [nzTooltipTitle]=\"tips\"\n nzTooltipPlacement=\"top\"\n nz-tooltip\n *ngIf=\"tips != ''\"\n ></i>\n </div> -->\n </div>\n\n <ng-template #contentTemplate>\n <ul>\n <ng-container *ngFor=\"let item of language; let i = index\">\n <li *ngIf=\"i > 0\">\n <label>{{ item.label }}</label>\n <input\n nz-input\n autocomplete=\"off\"\n [(ngModel)]=\"item.resValue\"\n [kreFormAttributes]=\"field\"\n (ngModelChange)=\"onChange(item.resValue)\"\n [maxLength]=\"to.maxLength || 200\"\n [minLength]=\"to.minLength || 0\"\n />\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </ng-container>\n <div class=\"fieldtext\" *ngIf=\"editor === false\">{{ langText }}</div>\n </ng-template>\n "
}] }
];
/** @nocollapse */
KreFormFieldTextI18n.ctorParameters = function () { return [
{ type: ActivatedRoute }
]; };
KreFormFieldTextI18n.propDecorators = {
cdkOverlayOrigin: [{ type: ViewChild, args: [CdkOverlayOrigin, { static: false },] }],
resize: [{ type: HostListener, args: ["window:resize", ["$event"],] }]
};
return KreFormFieldTextI18n;
}(FieldType));
export { KreFormFieldTextI18n };
if (false) {
/** @type {?} */
KreFormFieldTextI18n.prototype.triggerWidth;
/** @type {?} */
KreFormFieldTextI18n.prototype.cdkOverlayOrigin;
/** @type {?} */
KreFormFieldTextI18n.prototype.languageList;
/**
* @type {?}
* @private
*/
KreFormFieldTextI18n.prototype.route;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGkxOG4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3JlLWZvcm0vYW50LyIsInNvdXJjZXMiOlsibGliL3R5cGVzL3RleHRpMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBSXpEO0lBaUUwQyxnREFBUztJQUNqRCw4QkFBb0IsS0FBcUI7UUFBekMsWUFDRSxpQkFBTyxTQUNSO1FBRm1CLFdBQUssR0FBTCxLQUFLLENBQWdCO1FBSXpDLGtCQUFZLEdBQUcsT0FBTyxDQUFDO1FBUXZCLGtCQUFZLEdBQWU7WUFDekIsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNyRCxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ25ELENBQUM7O0lBYkYsQ0FBQzs7Ozs7SUFPRCxxQ0FBTTs7OztJQUROLFVBQ08sS0FBVTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQU1ELHVDQUFROzs7SUFBUjtRQUNFLElBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDekMsQ0FDRSxtQkFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQVUsQ0FDbEQsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLElBQUks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QUksQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLEVBQ2pDOztvQkFDSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUMvQixJQUNFLElBQUksSUFBSSxTQUFTO29CQUNqQixJQUFJLElBQUksSUFBSTtvQkFDWixJQUFJLElBQUksRUFBRTtvQkFDVixJQUFJLFlBQVksS0FBSztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ2Y7b0JBQ0EsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7OztPQUFBOztnQkE3S0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxnc0VBNkRUO2lCQUNGOzs7O2dCQXBFUSxjQUFjOzs7bUNBNEVwQixTQUFTLFNBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3lCQUU3QyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQW9HM0MsMkJBQUM7Q0FBQSxBQTlLRCxDQWlFMEMsU0FBUyxHQTZHbEQ7U0E3R1ksb0JBQW9COzs7SUFLL0IsNENBQXVCOztJQUV2QixnREFDK0M7O0lBSy9DLDRDQUdFOzs7OztJQWZVLHFDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiQGtyZS1mb3JtL2NvcmVcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5cbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3JlZm9ybS1maWVsZC1pbnB1dGkxOG5cIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybVN0YXR1cyAhPT0gMDsgZWxzZSBvdGhlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wtZGVzaWduXCI+XG4gICAgICAgIDxpbnB1dCBuei1pbnB1dCBkaXNhYmxlZCAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI290aGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRvciA9PT0gdHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRpMThuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0aTE4bi10ZXh0XCIgY2RrT3ZlcmxheU9yaWdpbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxhbmd1YWdlWzBdLnJlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgW2tyZUZvcm1BdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UobGFuZ3VhZ2VbMF0ucmVzVmFsdWUpXCJcbiAgICAgICAgICAgICAgbnotcG9wb3ZlclxuICAgICAgICAgICAgICBuelBvcG92ZXJUcmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgICBbbnpQb3BvdmVyQ29udGVudF09XCJjb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgICAgICBuek92ZXJsYXlDbGFzc05hbWU9XCJpbnB1dGkxOG4tdGVtcGxhdGVcIlxuICAgICAgICAgICAgICBuelBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICBbbnpPdmVybGF5U3R5bGVdPVwieyB3aWR0aDogdHJpZ2dlcldpZHRoIH1cIlxuICAgICAgICAgICAgICAobnpWaXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidG8ubWF4TGVuZ3RoIHx8IDIwMFwiXG4gICAgICAgICAgICAgIFttaW5MZW5ndGhdPVwidG8ubWluTGVuZ3RoIHx8IDBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIG56LWljb24gY2xhc3M9XCJpbnB1dGkxOG4taVwiIG56VHlwZT1cImdsb2JhbFwiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0aXBzXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb24tYmFuZ3podVwiXG4gICAgICAgICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJ0aXBzXCJcbiAgICAgICAgICAgICAgbnpUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgICAgbnotdG9vbHRpcFxuICAgICAgICAgICAgICAqbmdJZj1cInRpcHMgIT0gJydcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGFuZ3VhZ2U7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiaSA+IDBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgaXRlbS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5yZXNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICBba3JlRm9ybUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoaXRlbS5yZXNWYWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgW21heExlbmd0aF09XCJ0by5tYXhMZW5ndGggfHwgMjAwXCJcbiAgICAgICAgICAgICAgICAgIFttaW5MZW5ndGhdPVwidG8ubWluTGVuZ3RoIHx8IDBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGR0ZXh0XCIgKm5nSWY9XCJlZGl0b3IgPT09IGZhbHNlXCI+e3sgbGFuZ1RleHQgfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBLcmVGb3JtRmllbGRUZXh0STE4biBleHRlbmRzIEZpZWxkVHlwZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHRyaWdnZXJXaWR0aCA9IFwiMjYwcHhcIjtcblxuICBAVmlld0NoaWxkKENka092ZXJsYXlPcmlnaW4sIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjZGtPdmVybGF5T3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luIHwgdW5kZWZpbmVkO1xuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIHJlc2l6ZShldmVudDogYW55KSB7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlKGV2ZW50KTtcbiAgfVxuICBsYW5ndWFnZUxpc3Q6IEFycmF5PGFueT4gPSBbXG4gICAgeyBsYW5ndWFnZVR5cGU6IFwiemgtY25cIiwgbGFiZWw6IFwi5LitXCIsIHJlc1ZhbHVlOiBudWxsIH0sXG4gICAgeyBsYW5ndWFnZVR5cGU6IFwiZW5cIiwgbGFiZWw6IFwi6IuxXCIsIHJlc1ZhbHVlOiBudWxsIH0sXG4gIF07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKFxuICAgICAgISF0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1wibGFuZ1wiXSAmJlxuICAgICAgKFxuICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1wibGFuZ1wiXSBhcyBzdHJpbmdcbiAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJlblwiXG4gICAgKSB7XG4gICAgICB0aGlzLmxhbmd1YWdlTGlzdCA9IFtcbiAgICAgICAgeyBsYW5ndWFnZVR5cGU6IFwiemgtY25cIiwgbGFiZWw6IFwi5LitXCIsIHJlc1ZhbHVlOiBudWxsIH0sXG4gICAgICAgIHsgbGFuZ3VhZ2VUeXBlOiBcImVuXCIsIGxhYmVsOiBcIkVOXCIsIHJlc1ZhbHVlOiBudWxsIH0sXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm1vZGVsICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5tb2RlbCAhPSBudWxsICYmXG4gICAgICB0aGlzLmtleSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMua2V5ICE9IG51bGwgJiZcbiAgICAgIHRoaXMubW9kZWwuaGFzT3duUHJvcGVydHkodGhpcy5rZXkpXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJlxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9IFtdICYmXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9IHRoaXMubGFuZ3VhZ2VMaXN0KSB7XG4gICAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlTGlzdDtcbiAgfVxuXG4gIG9uQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy50by5yZXF1aXJlZCkge1xuICAgICAgbGV0IGVtcHR5ID0gdGhpcy5sYW5ndWFnZUxpc3Quc29tZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKGl0ZW0ucmVzVmFsdWUgPT09IG51bGwgfHxcbiAgICAgICAgICAgIGl0ZW0ucmVzVmFsdWUgPT09IFwiXCIgfHxcbiAgICAgICAgICAgIGl0ZW0ucmVzVmFsdWUgPT09IFwiIFwiKSAmJlxuICAgICAgICAgIGl0ZW0ubGFuZ3VhZ2VUeXBlID09PSBcInpoLWNuXCJcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGVtcHR5KSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmxhbmd1YWdlTGlzdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5sYW5ndWFnZUxpc3QpO1xuICAgIH1cbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIHZpc2libGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgaWYgKHRoaXMuY2RrT3ZlcmxheU9yaWdpbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlcldpZHRoID1cbiAgICAgICAgICB0aGlzLmNka092ZXJsYXlPcmlnaW4uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAud2lkdGggLVxuICAgICAgICAgIDAgK1xuICAgICAgICAgIFwicHhcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ1RleHQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5tb2RlbCAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMubW9kZWwgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5rZXkgIT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmtleSAhPSBudWxsICYmXG4gICAgICB0aGlzLm1vZGVsW3RoaXMua2V5XSAhPSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGxldCBsYW5nID0gdGhpcy5tb2RlbFt0aGlzLmtleV07XG4gICAgICBpZiAoXG4gICAgICAgIGxhbmcgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGxhbmcgIT0gbnVsbCAmJlxuICAgICAgICBsYW5nICE9IFwiXCIgJiZcbiAgICAgICAgbGFuZyBpbnN0YW5jZW9mIEFycmF5ICYmXG4gICAgICAgIGxhbmcubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBsYW5nWzBdW1wicmVzVmFsdWVcIl07XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbn1cbiJdfQ==