dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
113 lines • 15.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, HostBinding } from '@angular/core';
import { FormControl } from '@angular/forms';
import ace from 'ace-builds';
import { ThemeService } from '../../../services/theme.service';
import { startWith } from 'rxjs/operators';
import { ElementService } from '../../service/element.service';
export class ImportSetComponent {
/**
* @param {?} elementSvr
* @param {?} theme
*/
constructor(elementSvr, theme) {
this.elementSvr = elementSvr;
this.theme = theme;
this.hostClass = true;
this.svr = (/** @type {?} */ (this.elementSvr.data.import));
this.tableControl = new FormControl();
this.options = { maxLines: 12, printMargin: false };
this.subs = [];
this.subs.push(this.theme.theme.subscribe((/**
* @param {?} v
* @return {?}
*/
v => {
this.themeModel = v.model;
})));
}
/**
* @return {?}
*/
ngOnDestroy() {
this.subs.forEach((/**
* @param {?} v
* @return {?}
*/
v => v.unsubscribe()));
}
/**
* @return {?}
*/
ngOnInit() {
ace.config.set('basePath', '/front/assets/ace-builds/src-min-noconflict');
this.subs.push(this.svr.init().subscribe((/**
* @return {?}
*/
() => {
this.tableControl.patchValue(this.svr.Params.Table);
this.subs.push(
// 后一句用了startWith '' ,所以必须另外订阅。否则会每次都清空
this.tableControl.valueChanges.subscribe((/**
* @param {?} v
* @return {?}
*/
v => {
this.svr.Params.Table = v;
this.svr.syncTableColumn();
})), this.tableControl.valueChanges.pipe(startWith('')).subscribe((/**
* @param {?} v
* @return {?}
*/
v => {
this.tables = this.svr.Tables.filter((/**
* @param {?} sv
* @return {?}
*/
sv => sv.toUpperCase().includes(v.toUpperCase())));
})));
})));
}
}
ImportSetComponent.decorators = [
{ type: Component, args: [{
selector: 'common-import-set',
template: "<div class=\"set-import-main\">\r\n\t<!-- \u2193\u2193 1. \u5927\u6807\u9898 \u2193\u2193 -->\r\n\t<header class=\"set-title\">\u57FA\u672C\u4FE1\u606F</header>\r\n\t<!-- \u2193\u2193 2. \u6570\u636E\u5E93 \u2193\u2193 -->\r\n\t<section class=\"title-box\">\r\n\t\t<div class=\"first\">\r\n\t\t\t<div class=\"second-title\">\u6570\u636E\u5E93</div>\r\n\t\t\t<mat-form-field class=\"select-box\" appearance=\"outline\">\r\n\t\t\t\t<mat-select [(ngModel)]=\"svr.Params.DB\"\r\n\t\t\t\t\t(valueChange)=\"svr.refreshTables()\">\r\n\t\t\t\t\t<mat-option [value]=\"''\"> (\u5F53\u524D\u6570\u636E\u5E93) </mat-option>\r\n\t\t\t\t\t<mat-option *ngFor=\"let db of svr.DBList\" [value]=\"db\">\r\n\t\t\t\t\t\t{{ db }}\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</div>\r\n\t\t<div class=\"second\">\r\n\t\t\t<div class=\"second-title\">\u8868</div>\r\n\t\t\t<mat-form-field class=\"select-box\" appearance=\"outline\">\r\n\t\t\t\t<input type=\"text\" matInput [formControl]=\"tableControl\" [matAutocomplete]=\"auto\">\r\n\t\t\t\t\r\n\t\t\t\t<mat-autocomplete #auto=\"matAutocomplete\" >\r\n\t\t\t\t\t<mat-option *ngFor=\"let tab of tables\" [value]=\"tab|uppercase\">\r\n\t\t\t\t\t\t{{tab|uppercase}}\r\n\t\t\t\t\t</mat-option>\r\n\t\t\t\t</mat-autocomplete>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"third\">\r\n\t\t\t<div class=\"second-title\">Null\u503C\u8BC6\u522B\u7801</div>\r\n\t\t\t<mat-form-field class=\"select-box\" appearance=\"outline\">\r\n\t\t\t\t<input type=\"text\" matInput [(ngModel)]=\"svr.Params.NullIden\">\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t</section>\r\n\t<section class=\"sql-statement\">\r\n\t\t<div class=\"second-title\">where</div>\r\n\t\t<div class=\"sql-box\">\r\n\t\t\t<div class=\"sql-wrapper\" ace-editor [(text)]=\"svr.Params.Where\"\r\n\t\t\t\tmode=\"sql\" [theme]=\"themeModel === 'dark'?'tomorrow_night':'eclipse'\" [options]=\"options\"\r\n\t\t\t\t[autoUpdateContent]=\"true\" [durationBeforeCallback]=\"1000\"></div>\r\n\t\t</div>\r\n\t</section>\r\n\t<section class=\"sql-statement\">\r\n\t\t<div class=\"second-title\">before\uFF08\u7528ImportTempTable\u5F15\u7528\u4E34\u65F6\u8868\uFF09</div>\r\n\t\t<div class=\"sql-wrapper\" ace-editor [(text)]=\"svr.Params.Before\" mode=\"sql\"\r\n\t\t\t[theme]=\"themeModel === 'dark'?'tomorrow_night':'eclipse'\" [options]=\"options\" [autoUpdateContent]=\"true\"\r\n\t\t\t[durationBeforeCallback]=\"1000\"></div>\r\n\t</section>\r\n\t<section class=\"sql-statement\">\r\n\t\t<div class=\"second-title\">after</div>\r\n\t\t<div class=\"sql-wrapper\" ace-editor [(text)]=\"svr.Params.After\" mode=\"sql\"\r\n\t\t[theme]=\"themeModel === 'dark'?'tomorrow_night':'eclipse'\" [options]=\"options\" [autoUpdateContent]=\"true\"\r\n\t\t\t[durationBeforeCallback]=\"1000\"></div>\r\n\t</section>\r\n</div>\r\n\r\n<!-- \r\n<div class=\"\u5BFC\u5165-\u4E00\u7EA7\u6807\u9898 \u5B57\u4F53\u989C\u8272\">\u57FA\u7840\u5C5E\u6027</div>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">\u6570\u636E\u5E93</div>\r\n<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t<mat-select [(ngModel)]=\"svr.Params.DB\" (valueChange)=\"svr.refreshTables()\">\r\n\t\t<mat-option [value]=\"''\"> (\u5F53\u524D\u6570\u636E\u5E93) </mat-option>\r\n\t\t<mat-option *ngFor=\"let db of svr.DBList\" [value]=\"db\">\r\n\t\t\t{{ db }}\r\n\t\t</mat-option>\r\n\t</mat-select>\r\n</mat-form-field>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">\u8868</div>\r\n<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t<input type=\"text\" matInput [(ngModel)]=\"svr.Params.Table\" [matAutocomplete]=\"auto\">\r\n\t\r\n\t<mat-autocomplete #auto=\"matAutocomplete\" >\r\n\t\t<mat-option *ngFor=\"let tab of svr.Tables\" [value]=\"tab|uppercase\">\r\n\t\t\t{{tab|uppercase}}\r\n\t\t</mat-option>\r\n\t</mat-autocomplete>\r\n</mat-form-field>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">Null\u503C\u8BC6\u522B\u7801</div>\r\n<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t<input type=\"text\" matInput [(ngModel)]=\"svr.Params.NullIden\" >\r\n</mat-form-field>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">where</div>\r\n<div class=\"SQL\u8BED\u53E5 \u8FB9\u6846\"\r\n\tace-editor\r\n\t[(text)]=\"svr.Params.Where\"\r\n\tmode=\"sql\"\r\n\t[theme]=\"'eclipse'\"\r\n\t[options]=\"options\" \r\n\t[autoUpdateContent]=\"true\"\r\n\t[durationBeforeCallback]=\"1000\"\r\n\tstyle=\"min-height: 124px; width:100%; overflow: auto;\"\r\n></div>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">before\uFF08\u7528ImportTempTable\u5F15\u7528\u4E34\u65F6\u8868\uFF09</div>\r\n<div class=\"SQL\u8BED\u53E5 \u8FB9\u6846\"\r\n\tace-editor\r\n\t[(text)]=\"svr.Params.Before\"\r\n\tmode=\"sql\"\r\n\t[theme]=\"'eclipse'\"\r\n\t[options]=\"options\" \r\n\t[autoUpdateContent]=\"true\"\r\n\t[durationBeforeCallback]=\"1000\"\r\n\tstyle=\"min-height: 124px; width:100%; overflow: auto;\"\r\n></div>\r\n<div class=\"\u5BFC\u5165-\u4E8C\u7EA7\u6807\u9898 \u4E8C\u7EA7\u5B57\u4F53\u989C\u8272\">after</div>\r\n<div class=\"SQL\u8BED\u53E5 \u8FB9\u6846\"\r\n\tace-editor\r\n\t[(text)]=\"svr.Params.After\"\r\n\tmode=\"sql\"\r\n\t[theme]=\"'eclipse'\"\r\n\t[options]=\"options\" \r\n\t[autoUpdateContent]=\"true\"\r\n\t[durationBeforeCallback]=\"1000\"\r\n\tstyle=\"min-height: 124px; width:100%; overflow: auto;\"\r\n></div> -->",
styles: [".set-import-main{width:100%;box-sizing:border-box}.set-title{width:100%;font:16px bold;margin-bottom:16px}.title-box{display:flex;justify-content:space-between;width:100%;box-sizing:border-box;margin-bottom:8px}.title-box .second-title{font-size:12px;margin-bottom:8px}.title-box .select-box{font-size:14px}.first,.second,.third{flex:1}.second{margin-left:24px;margin-right:24px}.second .select-box{max-width:220px}.second-title{white-space:nowrap;box-sizing:border-box;margin-bottom:4px}.sql-statement{width:100%;box-sizing:border-box;margin-top:16px}.sql-statement .second-title{font-size:14px}.sql-wrapper{width:100%;min-height:124px;border-radius:4px;overflow:auto}"]
}] }
];
/** @nocollapse */
ImportSetComponent.ctorParameters = () => [
{ type: ElementService },
{ type: ThemeService }
];
ImportSetComponent.propDecorators = {
hostClass: [{ type: HostBinding, args: ['class.c-import-set',] }]
};
if (false) {
/** @type {?} */
ImportSetComponent.prototype.hostClass;
/** @type {?} */
ImportSetComponent.prototype.themeModel;
/** @type {?} */
ImportSetComponent.prototype.svr;
/** @type {?} */
ImportSetComponent.prototype.tableControl;
/** @type {?} */
ImportSetComponent.prototype.options;
/** @type {?} */
ImportSetComponent.prototype.tables;
/** @type {?} */
ImportSetComponent.prototype.subs;
/** @type {?} */
ImportSetComponent.prototype.elementSvr;
/**
* @type {?}
* @private
*/
ImportSetComponent.prototype.theme;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYndlYi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvZWxlbWVudC9zZXQtcHJvcGVydHktaW1wb3J0L2ltcG9ydC1zZXQvaW1wb3J0LXNldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFxQixjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVFsRixNQUFNLE9BQU8sa0JBQWtCOzs7OztJQVE5QixZQUFtQixVQUEwQixFQUFVLEtBQW1CO1FBQXZELGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQVB2QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTdDLFFBQUcsR0FBRyxtQkFBQSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQXFCLENBQUM7UUFDOUQsaUJBQVksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLFlBQU8sR0FBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXBELFNBQUksR0FBbUIsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxFQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7Ozs7SUFDRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQztJQUN6QyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNQLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNiLHVDQUF1QztZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxFQUFDLEVBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNOzs7O2dCQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3hGLENBQUMsRUFBQyxDQUNGLENBQUM7UUFDSCxDQUFDLEVBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzs7O1lBekNELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixzL0tBQTBDOzthQUUxQzs7OztZQVAyQixjQUFjO1lBRmpDLFlBQVk7Ozt3QkFXbkIsV0FBVyxTQUFDLG9CQUFvQjs7OztJQUFqQyx1Q0FBb0Q7O0lBQ3BELHdDQUF1Qjs7SUFDdkIsaUNBQThEOztJQUM5RCwwQ0FBaUM7O0lBQ2pDLHFDQUFvRDs7SUFDcEQsb0NBQWlCOztJQUNqQixrQ0FBMEI7O0lBQ2Qsd0NBQWlDOzs7OztJQUFFLG1DQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgYWNlIGZyb20gJ2FjZS1idWlsZHMnO1xyXG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UsIFRoZW1lTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFbGVtZW50RGF0YUltcG9ydCwgRWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2VsZW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjb21tb24taW1wb3J0LXNldCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ltcG9ydC1zZXQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2ltcG9ydC1zZXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1wb3J0U2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBIb3N0QmluZGluZygnY2xhc3MuYy1pbXBvcnQtc2V0JykgaG9zdENsYXNzID0gdHJ1ZTtcclxuXHR0aGVtZU1vZGVsOiBUaGVtZU1vZGVsO1xyXG5cdHB1YmxpYyBzdnIgPSB0aGlzLmVsZW1lbnRTdnIuZGF0YS5pbXBvcnQgYXMgRWxlbWVudERhdGFJbXBvcnQ7XHJcblx0dGFibGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblx0b3B0aW9uczogYW55ID0geyBtYXhMaW5lczogMTIsIHByaW50TWFyZ2luOiBmYWxzZSB9O1xyXG5cdHRhYmxlczogc3RyaW5nW107XHJcblx0c3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFN2cjogRWxlbWVudFNlcnZpY2UsIHByaXZhdGUgdGhlbWU6IFRoZW1lU2VydmljZSkge1xyXG5cdFx0dGhpcy5zdWJzLnB1c2goXHJcblx0XHRcdHRoaXMudGhlbWUudGhlbWUuc3Vic2NyaWJlKHYgPT4ge1xyXG5cdFx0XHRcdHRoaXMudGhlbWVNb2RlbCA9IHYubW9kZWw7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuc3Vicy5mb3JFYWNoKHYgPT4gdi51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0YWNlLmNvbmZpZy5zZXQoJ2Jhc2VQYXRoJywgJy9mcm9udC9hc3NldHMvYWNlLWJ1aWxkcy9zcmMtbWluLW5vY29uZmxpY3QnKTtcclxuXHRcdHRoaXMuc3Vicy5wdXNoKFxyXG5cdFx0XHR0aGlzLnN2ci5pbml0KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnRhYmxlQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuc3ZyLlBhcmFtcy5UYWJsZSk7XHJcblx0XHRcdFx0dGhpcy5zdWJzLnB1c2goXHJcblx0XHRcdFx0XHQvLyDlkI7kuIDlj6XnlKjkuoZzdGFydFdpdGggJycg77yM5omA5Lul5b+F6aG75Y+m5aSW6K6i6ZiF44CC5ZCm5YiZ5Lya5q+P5qyh6YO95riF56m6XHJcblx0XHRcdFx0XHR0aGlzLnRhYmxlQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN2ci5QYXJhbXMuVGFibGUgPSB2O1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN2ci5zeW5jVGFibGVDb2x1bW4oKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dGhpcy50YWJsZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCcnKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnRhYmxlcyA9IHRoaXMuc3ZyLlRhYmxlcy5maWx0ZXIoc3YgPT4gc3YudG9VcHBlckNhc2UoKS5pbmNsdWRlcyh2LnRvVXBwZXJDYXNlKCkpKTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==