dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
230 lines • 22.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, HostBinding, Input, ViewChild, ElementRef } from '@angular/core';
import { NodeTypeEnum } from '../../../../services/eleview/types/model';
import { Node } from '../../../../services/eleview/types/node';
import { EditLabelService } from '../edit-label.service';
var NodeComponent = /** @class */ (function () {
function NodeComponent(lblSvr, ref) {
this.lblSvr = lblSvr;
this.ref = ref;
this.nodeTypeCondition = NodeTypeEnum.NodeCondition;
this.nodeTypeAnd = NodeTypeEnum.NodeAnd;
this.nodeTypeOr = NodeTypeEnum.NodeOr;
this.nodeTypeUnknow = NodeTypeEnum.unknow;
this.nodeTypePlain = NodeTypeEnum.NodePlain;
this.hostClass = true;
}
/**
* @return {?}
*/
NodeComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () { };
/**
* @return {?}
*/
NodeComponent.prototype.svgHeight = /**
* @return {?}
*/
function () {
return this.data.flatHeight() * 50;
};
/**
* @param {?} event
* @return {?}
*/
NodeComponent.prototype.nodeDragover = /**
* @param {?} event
* @return {?}
*/
function (event) {
// 判断如果是节点
if (this.data.NodeType === this.nodeTypeAnd || this.data.NodeType === this.nodeTypeOr) {
event.preventDefault();
/** @type {?} */
var rect = ((/** @type {?} */ (this.ref.nativeElement))).getBoundingClientRect();
/** @type {?} */
var offsetY = event.pageY - rect.top;
/** @type {?} */
var 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
/** @type {?} */
var percentageY = offsetY / clientHeight;
if (percentageY < 0.5) {
((/** @type {?} */ (this.nodeMain.nativeElement))).style.borderTop = '4px solid #67c204';
((/** @type {?} */ (this.nodeMain.nativeElement))).style.borderBottom = '4px solid transparent';
this.lblSvr.dragOverArea = 'above';
}
else if (percentageY >= 0.5) {
((/** @type {?} */ (this.nodeMain.nativeElement))).style.borderTop = '4px solid transparent';
((/** @type {?} */ (this.nodeMain.nativeElement))).style.borderBottom = '4px solid #67c204';
this.lblSvr.dragOverArea = 'below';
}
this.lblSvr.dragOverNode = this.data;
this.lblSvr.prevNodeEle = this.nodeMain;
}
event.stopPropagation();
};
// 把拖动的node放到节点上边
// 把拖动的node放到节点上边
/**
* @param {?} event
* @return {?}
*/
NodeComponent.prototype.dropTop =
// 把拖动的node放到节点上边
/**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.data.parent) {
this.data.addTopSibling(this.lblSvr.buildDragedNode());
if (this.lblSvr.dragData.Type === 'node') {
((/** @type {?} */ (this.lblSvr.dragData.Data))).remove();
}
}
else {
this.data.Children[0].addTopSibling(this.lblSvr.buildDragedNode());
if (this.lblSvr.dragData.Type === 'node') {
((/** @type {?} */ (this.lblSvr.dragData.Data))).remove();
}
}
};
// 把拖动的node放到节点下边
// 把拖动的node放到节点下边
/**
* @param {?} event
* @return {?}
*/
NodeComponent.prototype.dropBottom =
// 把拖动的node放到节点下边
/**
* @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 {?}
*/
NodeComponent.prototype.nodeDrop = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.data.NodeType === this.nodeTypeAnd || this.data.NodeType === this.nodeTypeOr) {
switch (this.lblSvr.dragOverArea) {
case 'above':
this.dropTop(event);
break;
case 'below':
this.dropBottom(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 {?}
*/
NodeComponent.prototype.drop = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.data.NodeType === this.nodeTypeUnknow) {
this.data.assign(this.lblSvr.buildDragedNode());
this.lblSvr.onNodeChange.emit();
}
};
/**
* @return {?}
*/
NodeComponent.prototype.logicClick = /**
* @return {?}
*/
function () {
if (this.data.NodeType === NodeTypeEnum.NodeAnd) {
this.data.NodeType = NodeTypeEnum.NodeOr;
}
else {
this.data.NodeType = NodeTypeEnum.NodeAnd;
}
this.lblSvr.onNodeChange.emit();
};
NodeComponent.decorators = [
{ type: Component, args: [{
selector: 'common-node',
template: "<div #nodeMain class=\"node-main\" (drop)=\"nodeDrop($event)\" onselectstart=\"return false;\">\r\n\t<ng-container *ngIf=\"data.NodeType !== nodeTypeUnknow; else else_content\">\r\n\t\t<common-condition-node\r\n\t\t\t*ngIf=\"data.NodeType === nodeTypeCondition || data.NodeType === nodeTypePlain; else parentNode\"\r\n\t\t\t[data]=\"data\">\r\n\t\t</common-condition-node>\r\n\t\t<ng-template #parentNode>\r\n\t\t\t<div class=\"main\" *ngIf=\"data.NodeType !== nodeTypeCondition\" onselectstart=\"return false;\">\r\n\t\t\t\t<div class=\"node-left\" (dragover)=\"nodeDragover($event)\">\r\n\t\t\t\t\t<div class=\"logic\" >\r\n\t\t\t\t\t\t<div class=\"\u903B\u8F91 mat-elevation-z4\" (click)=\"logicClick()\" *ngIf=\"data.NodeType === nodeTypeAnd\">\u548C\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"\u903B\u8F91 mat-elevation-z4\" (click)=\"logicClick()\" *ngIf=\"data.NodeType === nodeTypeOr\">\u6216\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"line\"></div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"child-node\">\r\n\t\t\t\t\t<common-node *ngFor=\"let node of data.Children\" [data]=\"node\"> </common-node>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</ng-container>\r\n\t<ng-template #else_content>\r\n\t\t<div class=\"empty\" (drop)=\"drop($event)\" (dragover)=\"$event.preventDefault()\">\r\n\t\t\t<p>\u7A7A\u5185\u5BB9</p>\r\n\t\t</div>\r\n\t</ng-template>\r\n</div>",
styles: ["@charset \"UTF-8\";.node-main{border-top:4px solid transparent;border-bottom:4px solid transparent;margin:-2px 0}.main{display:flex;justify-content:flex-start;align-items:stretch;margin:3px 0}.node-left{display:flex;justify-content:flex-start;align-items:stretch}.child-node{display:flex;flex-direction:column}.empty{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.logic{display:flex;align-items:center}.logic .\u903B\u8F91{width:24px;height:24px;border-radius:4px;font-size:14px;text-align:center;line-height:24px;color:#fff;cursor:pointer}.line{width:15px;flex-shrink:0;border-top:1px solid #ccc;border-left:1px solid #ccc;border-bottom:1px solid #ccc;margin-left:4px;box-sizing:border-box}"]
}] }
];
/** @nocollapse */
NodeComponent.ctorParameters = function () { return [
{ type: EditLabelService },
{ type: ElementRef }
]; };
NodeComponent.propDecorators = {
data: [{ type: Input }],
hostClass: [{ type: HostBinding, args: ['class.node',] }],
nodeMain: [{ type: ViewChild, args: ['nodeMain', { static: true },] }]
};
return NodeComponent;
}());
export { NodeComponent };
if (false) {
/** @type {?} */
NodeComponent.prototype.nodeTypeCondition;
/** @type {?} */
NodeComponent.prototype.nodeTypeAnd;
/** @type {?} */
NodeComponent.prototype.nodeTypeOr;
/** @type {?} */
NodeComponent.prototype.nodeTypeUnknow;
/** @type {?} */
NodeComponent.prototype.nodeTypePlain;
/** @type {?} */
NodeComponent.prototype.data;
/** @type {?} */
NodeComponent.prototype.hostClass;
/** @type {?} */
NodeComponent.prototype.nodeMain;
/**
* @type {?}
* @private
*/
NodeComponent.prototype.lblSvr;
/**
* @type {?}
* @private
*/
NodeComponent.prototype.ref;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYndlYi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYWJlbC1tYW5hZ2VyL2VkaXQtbGFiZWwvbm9kZS9ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQ7SUFlQyx1QkFBb0IsTUFBd0IsRUFBVSxHQUFlO1FBQWpELFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVQ1RCxzQkFBaUIsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxlQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxtQkFBYyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDckMsa0JBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBRXJCLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFHNEIsQ0FBQzs7OztJQUN6RSxnQ0FBUTs7O0lBQVIsY0FBWSxDQUFDOzs7O0lBQ2IsaUNBQVM7OztJQUFUO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUNELG9DQUFZOzs7O0lBQVosVUFBYSxLQUFnQjtRQUM1QixVQUFVO1FBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FB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QztDQUFBLEFBekdELElBeUdDO1NBcEdZLGFBQWE7OztJQUN6QiwwQ0FBd0Q7O0lBQ3hELG9DQUE0Qzs7SUFDNUMsbUNBQTBDOztJQUMxQyx1Q0FBOEM7O0lBQzlDLHNDQUFnRDs7SUFDaEQsNkJBQW9COztJQUNwQixrQ0FBNEM7O0lBQzVDLGlDQUNxQjs7Ozs7SUFDVCwrQkFBZ0M7Ozs7O0lBQUUsNEJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vZGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2VsZXZpZXcvdHlwZXMvbW9kZWwnO1xyXG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZWxldmlldy90eXBlcy9ub2RlJztcclxuaW1wb3J0IHsgRWRpdExhYmVsU2VydmljZSB9IGZyb20gJy4uL2VkaXQtbGFiZWwuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NvbW1vbi1ub2RlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbm9kZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRyZWFkb25seSBub2RlVHlwZUNvbmRpdGlvbiA9IE5vZGVUeXBlRW51bS5Ob2RlQ29uZGl0aW9uO1xyXG5cdHJlYWRvbmx5IG5vZGVUeXBlQW5kID0gTm9kZVR5cGVFbnVtLk5vZGVBbmQ7XHJcblx0cmVhZG9ubHkgbm9kZVR5cGVPciA9IE5vZGVUeXBlRW51bS5Ob2RlT3I7XHJcblx0cmVhZG9ubHkgbm9kZVR5cGVVbmtub3cgPSBOb2RlVHlwZUVudW0udW5rbm93O1xyXG5cdHJlYWRvbmx5IG5vZGVUeXBlUGxhaW4gPSBOb2RlVHlwZUVudW0uTm9kZVBsYWluO1xyXG5cdEBJbnB1dCgpIGRhdGE6IE5vZGU7XHJcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5ub2RlJykgaG9zdENsYXNzID0gdHJ1ZTtcclxuXHRAVmlld0NoaWxkKCdub2RlTWFpbicsIHsgc3RhdGljOiB0cnVlIH0pXHJcblx0bm9kZU1haW46IEVsZW1lbnRSZWY7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBsYmxTdnI6IEVkaXRMYWJlbFNlcnZpY2UsIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cdG5nT25Jbml0KCkge31cclxuXHRzdmdIZWlnaHQoKTogbnVtYmVyIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEuZmxhdEhlaWdodCgpICogNTA7XHJcblx0fVxyXG5cdG5vZGVEcmFnb3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcblx0XHQvLyDliKTmlq3lpoLmnpzmmK/oioLngrlcclxuXHRcdGlmICh0aGlzLmRhdGEuTm9kZVR5cGUgPT09IHRoaXMubm9kZVR5cGVBbmQgfHwgdGhpcy5kYXRhLk5vZGVUeXBlID09PSB0aGlzLm5vZGVUeXBlT3IpIHtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0Y29uc3QgcmVjdCA9ICh0aGlzLnJlZi5uYXRpdmVFbGVtZW50IGFzIEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0XHRjb25zdCBvZmZzZXRZID0gZXZlbnQucGFnZVkgLSByZWN0LnRvcDtcclxuXHRcdFx0Y29uc3QgY2xpZW50SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcblx0XHRcdGlmICh0aGlzLmxibFN2ci5kcmFnT3Zlck5vZGUgIT09IHRoaXMuZGF0YSAmJiB0aGlzLmxibFN2ci5wcmV2Tm9kZUVsZSkge1xyXG5cdFx0XHRcdGNvbnN0IHJlZiA9IHRoaXMubGJsU3ZyLnByZXZOb2RlRWxlLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0cmVmLnN0eWxlLmJvcmRlclRvcCA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0XHRcdHJlZi5zdHlsZS5ib3JkZXJCb3R0b20gPSAnNHB4IHNvbGlkIHRyYW5zcGFyZW50JztcclxuXHRcdFx0XHRyZWYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBIYW5kbGUgZHJhZyBhcmVhXHJcblx0XHRcdGNvbnN0IHBlcmNlbnRhZ2VZID0gb2Zmc2V0WSAvIGNsaWVudEhlaWdodDtcclxuXHRcdFx0aWYgKHBlcmNlbnRhZ2VZIDwgMC41KSB7XHJcblx0XHRcdFx0KHRoaXMubm9kZU1haW4ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuYm9yZGVyVG9wID0gJzRweCBzb2xpZCAjNjdjMjA0JztcclxuXHRcdFx0XHQodGhpcy5ub2RlTWFpbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5ib3JkZXJCb3R0b20gPSAnNHB4IHNvbGlkIHRyYW5zcGFyZW50JztcclxuXHRcdFx0XHR0aGlzLmxibFN2ci5kcmFnT3ZlckFyZWEgPSAnYWJvdmUnO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBlcmNlbnRhZ2VZID49IDAuNSkge1xyXG5cdFx0XHRcdCh0aGlzLm5vZGVNYWluLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmJvcmRlclRvcCA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0XHRcdCh0aGlzLm5vZGVNYWluLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICc0cHggc29saWQgIzY3YzIwNCc7XHJcblx0XHRcdFx0dGhpcy5sYmxTdnIuZHJhZ092ZXJBcmVhID0gJ2JlbG93JztcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmxibFN2ci5kcmFnT3Zlck5vZGUgPSB0aGlzLmRhdGE7XHJcblx0XHRcdHRoaXMubGJsU3ZyLnByZXZOb2RlRWxlID0gdGhpcy5ub2RlTWFpbjtcclxuXHRcdH1cclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdH1cclxuXHQvLyDmiormi5bliqjnmoRub2Rl5pS+5Yiw6IqC54K55LiK6L65XHJcblx0ZHJvcFRvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcblx0XHRpZiAodGhpcy5kYXRhLnBhcmVudCkge1xyXG5cdFx0XHR0aGlzLmRhdGEuYWRkVG9wU2libGluZyh0aGlzLmxibFN2ci5idWlsZERyYWdlZE5vZGUoKSk7XHJcblx0XHRcdGlmICh0aGlzLmxibFN2ci5kcmFnRGF0YS5UeXBlID09PSAnbm9kZScpIHtcclxuXHRcdFx0XHQodGhpcy5sYmxTdnIuZHJhZ0RhdGEuRGF0YSBhcyBOb2RlKS5yZW1vdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5kYXRhLkNoaWxkcmVuWzBdLmFkZFRvcFNpYmxpbmcodGhpcy5sYmxTdnIuYnVpbGREcmFnZWROb2RlKCkpO1xyXG5cdFx0XHRpZiAodGhpcy5sYmxTdnIuZHJhZ0RhdGEuVHlwZSA9PT0gJ25vZGUnKSB7XHJcblx0XHRcdFx0KHRoaXMubGJsU3ZyLmRyYWdEYXRhLkRhdGEgYXMgTm9kZSkucmVtb3ZlKCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0Ly8g5oqK5ouW5Yqo55qEbm9kZeaUvuWIsOiKgueCueS4i+i+uVxyXG5cdGRyb3BCb3R0b20oZXZlbnQ6IERyYWdFdmVudCkge1xyXG5cdFx0dGhpcy5kYXRhLmFkZEJvdHRvbVNpYmxpbmcodGhpcy5sYmxTdnIuYnVpbGREcmFnZWROb2RlKCkpO1xyXG5cdFx0aWYgKHRoaXMubGJsU3ZyLmRyYWdEYXRhLlR5cGUgPT09ICdub2RlJykge1xyXG5cdFx0XHQodGhpcy5sYmxTdnIuZHJhZ0RhdGEuRGF0YSBhcyBOb2RlKS5yZW1vdmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0bm9kZURyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG5cdFx0aWYgKHRoaXMuZGF0YS5Ob2RlVHlwZSA9PT0gdGhpcy5ub2RlVHlwZUFuZCB8fCB0aGlzLmRhdGEuTm9kZVR5cGUgPT09IHRoaXMubm9kZVR5cGVPcikge1xyXG5cdFx0XHRzd2l0Y2ggKHRoaXMubGJsU3ZyLmRyYWdPdmVyQXJlYSkge1xyXG5cdFx0XHRcdGNhc2UgJ2Fib3ZlJzpcclxuXHRcdFx0XHRcdHRoaXMuZHJvcFRvcChldmVudCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlICdiZWxvdyc6XHJcblx0XHRcdFx0XHR0aGlzLmRyb3BCb3R0b20oZXZlbnQpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5sYmxTdnIub25Ob2RlQ2hhbmdlLmVtaXQoKTtcclxuXHRcdFx0dGhpcy5sYmxTdnIuZHJhZ092ZXJOb2RlID0gbnVsbDtcclxuXHRcdFx0aWYgKHRoaXMubGJsU3ZyLnByZXZOb2RlRWxlKSB7XHJcblx0XHRcdFx0Y29uc3QgcmVmID0gdGhpcy5sYmxTdnIucHJldk5vZGVFbGUubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuXHRcdFx0XHRyZWYuc3R5bGUuYm9yZGVyVG9wID0gJzRweCBzb2xpZCB0cmFuc3BhcmVudCc7XHJcblx0XHRcdFx0cmVmLnN0eWxlLmJvcmRlckJvdHRvbSA9ICc0cHggc29saWQgdHJhbnNwYXJlbnQnO1xyXG5cdFx0XHRcdHJlZi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHR9XHJcblx0ZHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcblx0XHRpZiAodGhpcy5kYXRhLk5vZGVUeXBlID09PSB0aGlzLm5vZGVUeXBlVW5rbm93KSB7XHJcblx0XHRcdHRoaXMuZGF0YS5hc3NpZ24odGhpcy5sYmxTdnIuYnVpbGREcmFnZWROb2RlKCkpO1xyXG5cdFx0XHR0aGlzLmxibFN2ci5vbk5vZGVDaGFuZ2UuZW1pdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRsb2dpY0NsaWNrKCkge1xyXG5cdFx0aWYgKHRoaXMuZGF0YS5Ob2RlVHlwZSA9PT0gTm9kZVR5cGVFbnVtLk5vZGVBbmQpIHtcclxuXHRcdFx0dGhpcy5kYXRhLk5vZGVUeXBlID0gTm9kZVR5cGVFbnVtLk5vZGVPcjtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZGF0YS5Ob2RlVHlwZSA9IE5vZGVUeXBlRW51bS5Ob2RlQW5kO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5sYmxTdnIub25Ob2RlQ2hhbmdlLmVtaXQoKTtcclxuXHR9XHJcbn1cclxuIl19