dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
230 lines • 24.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, HostBinding, Input, ViewChild } from '@angular/core';
import { NodeTypeEnum } from '../../../../../services/eleview/types/model';
import { Node } from '../../../../../services/eleview/types/node';
import { Operates } from '../../../../../services/eleview/types/operate';
import { EditLabelService } from '../../edit-label.service';
var ConditionNodeComponent = /** @class */ (function () {
function ConditionNodeComponent(lblSvr, ref) {
this.lblSvr = lblSvr;
this.ref = ref;
this.Operates = Operates;
this.nodeTypeCondition = NodeTypeEnum.NodeCondition;
this.hostClass = true;
}
/**
* @return {?}
*/
ConditionNodeComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
this.dvMain.nativeElement.ondragover = (/**
* @param {?} event
* @return {?}
*/
function (event) {
// 不能自己拖到自己
if (_this.lblSvr.dragData &&
_this.lblSvr.dragData.Type === 'node' &&
((/** @type {?} */ (_this.lblSvr.dragData.Data))) === _this.data) {
return;
}
event.preventDefault();
/** @type {?} */
var rect = ((/** @type {?} */ (_this.ref.nativeElement))).getBoundingClientRect();
/** @type {?} */
var offsetY = event.pageY - rect.top;
// const clientHeight = rect.height;
if (_this.lblSvr.dragOverNode !== _this.data && _this.lblSvr.prevNodeEle) {
/** @type {?} */
var ref = (/** @type {?} */ (_this.lblSvr.prevNodeEle.nativeElement));
ref.style.borderTop = '4px solid transparent';
ref.style.borderBottom = '4px solid transparent';
ref.style.backgroundColor = null;
}
// Handle drag area
if (offsetY < 4) {
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderTop = '4px solid #67c204';
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderBottom = '4px solid transparent';
((/** @type {?} */ (_this.dvMain.nativeElement.childNodes[0]))).style.backgroundColor = null;
_this.lblSvr.dragOverArea = 'above';
}
else if (offsetY > 40) {
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderTop = '4px solid transparent';
((/** @type {?} */ (_this.dvMain.nativeElement.childNodes[0]))).style.backgroundColor = null;
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderBottom = '4px solid #67c204';
_this.lblSvr.dragOverArea = 'below';
}
else {
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderTop = '4px solid transparent';
((/** @type {?} */ (_this.dvMain.nativeElement))).style.borderBottom = '4px solid transparent';
((/** @type {?} */ (_this.dvMain.nativeElement.childNodes[0]))).style.backgroundColor = '#67c204';
_this.lblSvr.dragOverArea = 'center';
}
_this.lblSvr.dragOverNode = _this.data;
_this.lblSvr.prevNodeEle = _this.dvMain;
event.stopPropagation();
});
};
/**
* @return {?}
*/
ConditionNodeComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () { };
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.dropTop = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.data.addTopSibling(this.lblSvr.buildDragedNode());
if (this.lblSvr.dragData.Type === 'node') {
((/** @type {?} */ (this.lblSvr.dragData.Data))).remove();
}
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.dropBottom = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.data.addBottomSibling(this.lblSvr.buildDragedNode());
if (this.lblSvr.dragData.Type === 'node') {
((/** @type {?} */ (this.lblSvr.dragData.Data))).remove();
}
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.dropRight = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.data.addChildSibling(this.lblSvr.buildDragedNode());
if (this.lblSvr.dragData.Type === 'node') {
((/** @type {?} */ (this.lblSvr.dragData.Data))).remove();
}
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.drop = /**
* @param {?} event
* @return {?}
*/
function (event) {
switch (this.lblSvr.dragOverArea) {
case 'above':
this.dropTop(event);
break;
case 'below':
this.dropBottom(event);
break;
case 'center':
this.dropRight(event);
break;
}
this.lblSvr.onNodeChange.emit();
this.lblSvr.dragOverNode = null;
if (this.lblSvr.prevNodeEle) {
/** @type {?} */
var ref = (/** @type {?} */ (this.lblSvr.prevNodeEle.nativeElement));
ref.style.borderTop = '4px solid transparent';
ref.style.borderBottom = '4px solid transparent';
ref.style.backgroundColor = null;
}
event.stopPropagation();
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.dragStart = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.lblSvr.dragData = { Type: 'node', Data: this.data };
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.dragover = /**
* @param {?} event
* @return {?}
*/
function (event) {
// console.log('dragend');
this.dvMain.nativeElement.style.borderTop = '4px solid transparent';
this.dvMain.nativeElement.style.borderBottom = '4px solid transparent';
this.dvMain.nativeElement.childNodes[0].style.backgroundColor = null;
};
/**
* @param {?} event
* @return {?}
*/
ConditionNodeComponent.prototype.delete = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.data.remove();
this.lblSvr.onNodeChange.emit();
};
ConditionNodeComponent.decorators = [
{ type: Component, args: [{
selector: 'common-condition-node',
template: "<div class=\"condition-main\" #main (drop)=\"drop($event)\" (dragstart)=\"dragStart($event)\" (dragleave)=\"dragover($event)\">\r\n\t<div class=\"main\" draggable=\"true\">\r\n\t\t<ng-container *ngIf=\"data.NodeType === nodeTypeCondition; else plaintext\">\r\n\t\t\t<div class=\"field\">\r\n\t\t\t\t{{ data.Field }}\r\n\t\t\t</div>\r\n\t\t\t<mat-form-field class=\"operate\" appearance=\"outline\">\r\n\t\t\t\t<mat-select [(value)]=\"data.Operate\" (valueChange)=\"lblSvr.onNodeChange.emit()\">\r\n\t\t\t\t\t<mat-option *ngFor=\"let ope of Operates\" [value]=\"ope.Name\">\r\n\t\t\t\t\t\t{{ ope.Label }}\r\n\t\t\t\t\t</mat-option>\r\n\t\t\t\t</mat-select>\r\n\t\t\t</mat-form-field>\r\n\t\t\t<mat-form-field class=\"value\" appearance=\"outline\">\r\n\t\t\t\t<input matInput placeholder=\"value\" [(ngModel)]=\"data.Value\" (change)=\"lblSvr.onNodeChange.emit()\" />\r\n\t\t\t</mat-form-field>\r\n\t\t\t<button class=\"\u5220\u9664\" mat-icon-button (click)=\"delete($event)\">\r\n\t\t\t\t<mat-icon svgIcon=\"outlined:delete\"></mat-icon>\r\n\t\t\t</button>\r\n\t\t</ng-container>\r\n\t\t<ng-template #plaintext>\r\n\t\t\t<mat-form-field class=\"plaintext\" appearance=\"outline\">\r\n\t\t\t\t<textarea matInput placeholder=\"plaintext\" (change)=\"lblSvr.onNodeChange.emit()\"\r\n\t\t\t\t\t[(ngModel)]=\"data.PlainText\">\r\n\t\t\t</textarea>\r\n\t\t\t</mat-form-field>\r\n\t\t</ng-template>\r\n\t</div>\r\n</div>",
styles: ["@charset \"UTF-8\";.condition-main{width:440px;border-top:4px solid transparent;border-bottom:4px solid transparent;margin:-4px 0}.main{display:flex;width:408px;height:40px;border-radius:4px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);margin:4px 32px 4px 4px}.main .\u5220\u9664{width:32px;height:40px;line-height:40px;text-align:left;display:none}.main:hover{width:440px;margin:4px 0 4px 4px}.main:hover .\u5220\u9664{display:block}.field{width:152px;height:40px;line-height:40px;box-sizing:border-box;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.operate,.plaintext,.value{font-size:14px}.operate ::ng-deep .mat-form-field-wrapper,.plaintext ::ng-deep .mat-form-field-wrapper,.value ::ng-deep .mat-form-field-wrapper{padding:0}.operate ::ng-deep .mat-form-field-infix,.plaintext ::ng-deep .mat-form-field-infix,.value ::ng-deep .mat-form-field-infix{border:0;padding:11px 0}.operate ::ng-deep .mat-select-arrow-wrapper,.plaintext ::ng-deep .mat-select-arrow-wrapper,.value ::ng-deep .mat-select-arrow-wrapper{-webkit-transform:translateY(0);transform:translateY(0)}.operate{width:96px}.value{width:160px;margin:0 8px}.plaintext{width:100%}.drop-above{border-top:1px solid red}.drop-below{border-bottom:1px solid red}.drop-center{background-color:#ddd}"]
}] }
];
/** @nocollapse */
ConditionNodeComponent.ctorParameters = function () { return [
{ type: EditLabelService },
{ type: ElementRef }
]; };
ConditionNodeComponent.propDecorators = {
dvMain: [{ type: ViewChild, args: ['main', { static: false },] }],
data: [{ type: Input }],
hostClass: [{ type: HostBinding, args: ['class.condition-node',] }]
};
return ConditionNodeComponent;
}());
export { ConditionNodeComponent };
if (false) {
/** @type {?} */
ConditionNodeComponent.prototype.Operates;
/** @type {?} */
ConditionNodeComponent.prototype.nodeTypeCondition;
/** @type {?} */
ConditionNodeComponent.prototype.dvMain;
/** @type {?} */
ConditionNodeComponent.prototype.data;
/** @type {?} */
ConditionNodeComponent.prototype.hostClass;
/** @type {?} */
ConditionNodeComponent.prototype.lblSvr;
/**
* @type {?}
* @private
*/
ConditionNodeComponent.prototype.ref;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbGFiZWwtbWFuYWdlci9lZGl0LWxhYmVsL25vZGUvY29uZGl0aW9uLW5vZGUvY29uZGl0aW9uLW5vZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQ7SUFZQyxnQ0FBbUIsTUFBd0IsRUFBVSxHQUFlO1FBQWpELFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQU4zRCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3BCLHNCQUFpQixHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUM7UUFJbkIsY0FBUyxHQUFHLElBQUksQ0FBQztJQUNpQixDQUFDOzs7O0lBQ3hFLGdEQUFlOzs7SUFBZjtRQUFBLGlCQXlDQztRQXhDQSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVOzs7O1FBQUcsVUFBQyxLQUFnQjtZQUN2RCxXQUFXO1lBQ1gsSUFDQyxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQ3BCLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNO2dCQUNwQyxDQUFDLG1CQUFBLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUks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RSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN0RSxDQUFDOzs7OztJQUNELHVDQUFNOzs7O0lBQU4sVUFBTyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2dCQTVHRCxTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsazVDQUE4Qzs7aUJBRTlDOzs7O2dCQU5RLGdCQUFnQjtnQkFKVSxVQUFVOzs7eUJBYzNDLFNBQVMsU0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3VCQUVuQyxLQUFLOzRCQUNMLFdBQVcsU0FBQyxzQkFBc0I7O0lBa0dwQyw2QkFBQztDQUFBLEFBN0dELElBNkdDO1NBeEdZLHNCQUFzQjs7O0lBQ2xDLDBDQUE2Qjs7SUFDN0IsbURBQXdEOztJQUN4RCx3Q0FDbUI7O0lBQ25CLHNDQUFvQjs7SUFDcEIsMkNBQXNEOztJQUMxQyx3Q0FBK0I7Ozs7O0lBQUUscUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vZGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2VsZXZpZXcvdHlwZXMvbW9kZWwnO1xyXG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvZWxldmlldy90eXBlcy9ub2RlJztcclxuaW1wb3J0IHsgT3BlcmF0ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9lbGV2aWV3L3R5cGVzL29wZXJhdGUnO1xyXG5pbXBvcnQgeyBFZGl0TGFiZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWRpdC1sYWJlbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY29tbW9uLWNvbmRpdGlvbi1ub2RlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY29uZGl0aW9uLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2NvbmRpdGlvbi1ub2RlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbk5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdHJlYWRvbmx5IE9wZXJhdGVzID0gT3BlcmF0ZXM7XHJcblx0cmVhZG9ubHkgbm9kZVR5cGVDb25kaXRpb24gPSBOb2RlVHlwZUVudW0uTm9kZUNvbmRpdGlvbjtcclxuXHRAVmlld0NoaWxkKCdtYWluJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcblx0ZHZNYWluOiBFbGVtZW50UmVmO1xyXG5cdEBJbnB1dCgpIGRhdGE6IE5vZGU7XHJcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5jb25kaXRpb24tbm9kZScpIGhvc3RDbGFzcyA9IHRydWU7XHJcblx0Y29uc3RydWN0b3IocHVibGljIGxibFN2cjogRWRpdExhYmVsU2VydmljZSwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHt9XHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudC5vbmRyYWdvdmVyID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcclxuXHRcdFx0Ly8g5LiN6IO96Ieq5bex5ouW5Yiw6Ieq5bexXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHR0aGlzLmxibFN2ci5kcmFnRGF0YSAmJlxyXG5cdFx0XHRcdHRoaXMubGJsU3ZyLmRyYWdEYXRhLlR5cGUgPT09ICdub2RlJyAmJlxyXG5cdFx0XHRcdCh0aGlzLmxibFN2ci5kcmFnRGF0YS5EYXRhIGFzIE5vZGUpID09PSB0aGlzLmRhdGFcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdGNvbnN0IHJlY3QgPSAodGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdFx0Y29uc3Qgb2Zmc2V0WSA9IGV2ZW50LnBhZ2VZIC0gcmVjdC50b3A7XHJcblx0XHRcdC8vIGNvbnN0IGNsaWVudEhlaWdodCA9IHJlY3QuaGVpZ2h0O1xyXG5cdFx0XHRpZiAodGhpcy5sYmxTdnIuZHJhZ092ZXJOb2RlICE9PSB0aGlzLmRhdGEgJiYgdGhpcy5sYmxTdnIucHJldk5vZGVFbGUpIHtcclxuXHRcdFx0XHRjb25zdCByZWYgPSB0aGlzLmxibFN2ci5wcmV2Tm9kZUVsZS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG5cdFx0XHRcdHJlZi5zdHlsZS5ib3JkZXJUb3AgPSAnNHB4IHNvbGlkIHRyYW5zcGFyZW50JztcclxuXHRcdFx0XHRyZWYuc3R5bGUuYm9yZGVyQm90dG9tID0gJzRweCBzb2xpZCB0cmFuc3BhcmVudCc7XHJcblx0XHRcdFx0cmVmLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG51bGw7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gSGFuZGxlIGRyYWcgYXJlYVxyXG5cdFx0XHRpZiAob2Zmc2V0WSA8IDQpIHtcclxuXHRcdFx0XHQodGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuYm9yZGVyVG9wID0gJzRweCBzb2xpZCAjNjdjMjA0JztcclxuXHRcdFx0XHQodGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuYm9yZGVyQm90dG9tID0gJzRweCBzb2xpZCB0cmFuc3BhcmVudCc7XHJcblx0XHRcdFx0KHRoaXMuZHZNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1swXSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmxibFN2ci5kcmFnT3ZlckFyZWEgPSAnYWJvdmUnO1xyXG5cdFx0XHR9IGVsc2UgaWYgKG9mZnNldFkgPiA0MCkge1xyXG5cdFx0XHRcdCh0aGlzLmR2TWFpbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5ib3JkZXJUb3AgPSAnNHB4IHNvbGlkIHRyYW5zcGFyZW50JztcclxuXHRcdFx0XHQodGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xyXG5cdFx0XHRcdCh0aGlzLmR2TWFpbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5ib3JkZXJCb3R0b20gPSAnNHB4IHNvbGlkICM2N2MyMDQnO1xyXG5cdFx0XHRcdHRoaXMubGJsU3ZyLmRyYWdPdmVyQXJlYSA9ICdiZWxvdyc7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0KHRoaXMuZHZNYWluLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmJvcmRlclRvcCA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0XHRcdCh0aGlzLmR2TWFpbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5ib3JkZXJCb3R0b20gPSAnNHB4IHNvbGlkIHRyYW5zcGFyZW50JztcclxuXHRcdFx0XHQodGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzY3YzIwNCc7XHJcblx0XHRcdFx0dGhpcy5sYmxTdnIuZHJhZ092ZXJBcmVhID0gJ2NlbnRlcic7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5sYmxTdnIuZHJhZ092ZXJOb2RlID0gdGhpcy5kYXRhO1xyXG5cdFx0XHR0aGlzLmxibFN2ci5wcmV2Tm9kZUVsZSA9IHRoaXMuZHZNYWluO1xyXG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdH07XHJcblx0fVxyXG5cdG5nT25Jbml0KCkge31cclxuXHRkcm9wVG9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuXHRcdHRoaXMuZGF0YS5hZGRUb3BTaWJsaW5nKHRoaXMubGJsU3ZyLmJ1aWxkRHJhZ2VkTm9kZSgpKTtcclxuXHRcdGlmICh0aGlzLmxibFN2ci5kcmFnRGF0YS5UeXBlID09PSAnbm9kZScpIHtcclxuXHRcdFx0KHRoaXMubGJsU3ZyLmRyYWdEYXRhLkRhdGEgYXMgTm9kZSkucmVtb3ZlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdGRyb3BCb3R0b20oZXZlbnQ6IERyYWdFdmVudCkge1xyXG5cdFx0dGhpcy5kYXRhLmFkZEJvdHRvbVNpYmxpbmcodGhpcy5sYmxTdnIuYnVpbGREcmFnZWROb2RlKCkpO1xyXG5cdFx0aWYgKHRoaXMubGJsU3ZyLmRyYWdEYXRhLlR5cGUgPT09ICdub2RlJykge1xyXG5cdFx0XHQodGhpcy5sYmxTdnIuZHJhZ0RhdGEuRGF0YSBhcyBOb2RlKS5yZW1vdmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0ZHJvcFJpZ2h0KGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuXHRcdHRoaXMuZGF0YS5hZGRDaGlsZFNpYmxpbmcodGhpcy5sYmxTdnIuYnVpbGREcmFnZWROb2RlKCkpO1xyXG5cdFx0aWYgKHRoaXMubGJsU3ZyLmRyYWdEYXRhLlR5cGUgPT09ICdub2RlJykge1xyXG5cdFx0XHQodGhpcy5sYmxTdnIuZHJhZ0RhdGEuRGF0YSBhcyBOb2RlKS5yZW1vdmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0ZHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMubGJsU3ZyLmRyYWdPdmVyQXJlYSkge1xyXG5cdFx0XHRjYXNlICdhYm92ZSc6XHJcblx0XHRcdFx0dGhpcy5kcm9wVG9wKGV2ZW50KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnYmVsb3cnOlxyXG5cdFx0XHRcdHRoaXMuZHJvcEJvdHRvbShldmVudCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ2NlbnRlcic6XHJcblx0XHRcdFx0dGhpcy5kcm9wUmlnaHQoZXZlbnQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5sYmxTdnIub25Ob2RlQ2hhbmdlLmVtaXQoKTtcclxuXHRcdHRoaXMubGJsU3ZyLmRyYWdPdmVyTm9kZSA9IG51bGw7XHJcblx0XHRpZiAodGhpcy5sYmxTdnIucHJldk5vZGVFbGUpIHtcclxuXHRcdFx0Y29uc3QgcmVmID0gdGhpcy5sYmxTdnIucHJldk5vZGVFbGUubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuXHRcdFx0cmVmLnN0eWxlLmJvcmRlclRvcCA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0XHRyZWYuc3R5bGUuYm9yZGVyQm90dG9tID0gJzRweCBzb2xpZCB0cmFuc3BhcmVudCc7XHJcblx0XHRcdHJlZi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xyXG5cdFx0fVxyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0fVxyXG5cdGRyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KSB7XHJcblx0XHR0aGlzLmxibFN2ci5kcmFnRGF0YSA9IHsgVHlwZTogJ25vZGUnLCBEYXRhOiB0aGlzLmRhdGEgfTtcclxuXHR9XHJcblx0ZHJhZ292ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RyYWdlbmQnKTtcclxuXHRcdHRoaXMuZHZNYWluLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyVG9wID0gJzRweCBzb2xpZCB0cmFuc3BhcmVudCc7XHJcblx0XHR0aGlzLmR2TWFpbi5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckJvdHRvbSA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0dGhpcy5kdk1haW4ubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG51bGw7XHJcblx0fVxyXG5cdGRlbGV0ZShldmVudDogTW91c2VFdmVudCkge1xyXG5cdFx0dGhpcy5kYXRhLnJlbW92ZSgpO1xyXG5cdFx0dGhpcy5sYmxTdnIub25Ob2RlQ2hhbmdlLmVtaXQoKTtcclxuXHR9XHJcbn1cclxuIl19