UNPKG

dbweb-common

Version:

用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上

235 lines 27.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { moveItemInArray } from '@angular/cdk/drag-drop'; import { Component, HostBinding } from '@angular/core'; import { ElementService } from '../../service/element.service'; import { ElementsService } from 'dbweb-core'; import { IconSelectComponent } from '../../../components/icon-select/icon-select.component'; import { MatDialog } from '@angular/material'; import { FormControl } from '@angular/forms'; import { startWith } from 'rxjs/operators'; var ProcessingListsComponent = /** @class */ (function () { function ProcessingListsComponent(elementSvr, eles, dialog) { this.elementSvr = elementSvr; this.eles = eles; this.dialog = dialog; this.hostClass = true; this.svr = (/** @type {?} */ (this.elementSvr.data.recordview)); this.ctrlElementName = new FormControl(); this.subs = []; } /** * @return {?} */ ProcessingListsComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.subs.forEach((/** * @param {?} v * @return {?} */ function (v) { return v.unsubscribe(); })); }; /** * @return {?} */ ProcessingListsComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.subs.push(this.svr.currentProcess.subscribe((/** * @param {?} pro * @return {?} */ function (pro) { return _this.ctrlElementName.patchValue(pro ? pro.ElementName : null); })), this.svr.inited.subscribe((/** * @return {?} */ function () { _this.subs.push(_this.ctrlElementName.valueChanges.pipe(startWith('')).subscribe((/** * @param {?} val * @return {?} */ function (val) { _this.filterElemets = _this.svr.allElementNames .filter((/** * @param {?} v * @return {?} */ function (v) { return v.includes(val); })) .sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { return a.localeCompare(b); })); })), _this.ctrlElementName.valueChanges.subscribe((/** * @param {?} val * @return {?} */ function (val) { if (_this.svr.currentProcess.value) { _this.svr.currentProcess.value.ElementName = val; } }))); }))); }; /** * @param {?} event * @return {?} */ ProcessingListsComponent.prototype.dropBind = /** * @param {?} event * @return {?} */ function (event) { moveItemInArray(this.svr.bindRecordProcesses, event.previousIndex, event.currentIndex); this.svr.collectionProcesses(); }; /** * @param {?} event * @return {?} */ ProcessingListsComponent.prototype.dropNotBind = /** * @param {?} event * @return {?} */ function (event) { moveItemInArray(this.svr.notBindRecordProcesses, event.previousIndex, event.currentIndex); this.svr.collectionProcesses(); }; /** * @param {?} pro * @return {?} */ ProcessingListsComponent.prototype.selectProcess = /** * @param {?} pro * @return {?} */ function (pro) { this.svr.currentProcess.next(pro); }; /** * @return {?} */ ProcessingListsComponent.prototype.add = /** * @return {?} */ function () { /** @type {?} */ var pro = this.svr.currentProcess.value; if (pro && pro.BindRecord) { this.svr.bindRecordProcesses = this.svr.bindRecordProcesses || []; this.svr.bindRecordProcesses.push({ Name: '新的处理', BindRecord: true }); } else { this.svr.notBindRecordProcesses = this.svr.notBindRecordProcesses || []; this.svr.notBindRecordProcesses.push({ Name: '新的处理', BindRecord: false }); } this.svr.collectionProcesses(); }; /** * @return {?} */ ProcessingListsComponent.prototype.delete = /** * @return {?} */ function () { var _this = this; if (this.svr.currentProcess.value) { this.svr.Params.Processes.splice(this.svr.Params.Processes.findIndex((/** * @param {?} v * @return {?} */ function (v) { return v === _this.svr.currentProcess.value; })), 1); if (this.svr.Params.Processes.length > 0) { this.svr.currentProcess.next(this.svr.Params.Processes[0]); } this.svr.refreshProcesses(); } }; /** * @return {?} */ ProcessingListsComponent.prototype.openIconDialog = /** * @return {?} */ function () { /** @type {?} */ var pro = this.svr.currentProcess.value; if (!pro) { return; } /** @type {?} */ var v = { icon: pro.Icon, color: pro.Color }; /** @type {?} */ var dialogRef = this.dialog.open(IconSelectComponent, { width: '384px', height: '100%', data: v, position: { top: '0px', right: '0px' } }); dialogRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ function (result) { if (result) { pro.Icon = result.icon; pro.Color = result.color; } })); }; ProcessingListsComponent.decorators = [ { type: Component, args: [{ selector: 'common-processing-lists', template: "<div class=\"content\">\r\n\t<div class=\"left\">\r\n\t\t<div class=\"title\">\r\n\t\t\t<div class=\"list-\u4E00\u7EA7\u6807\u9898 \u5B57\u4F53\u989C\u8272\">\u5904\u7406\u5217\u8868</div>\r\n\t\t\t<div class=\"\u65B0\u589E\" (click)=\"add()\">\r\n\t\t\t\t<mat-icon svgIcon=\"add\"></mat-icon>\r\n\t\t\t\t<span>\u65B0\u589E\u5904\u7406\u5217</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"\u8BB0\u5F55\u6807\u9898\">\u7ED1\u5B9A\u8BB0\u5F55</div>\r\n\t\t<div cdkDropList class=\"pro-list\"\r\n\t\t\t(cdkDropListDropped)=\"dropBind($event)\">\r\n\t\t\t<div *ngFor=\"let pro of svr.bindRecordProcesses\" class=\"process\"\r\n\t\t\t\t[class.\u9009\u4E2D]=\"(svr.currentProcess|async).Name == pro.Name\"\r\n\t\t\t\t(click)=\"selectProcess(pro)\" cdkDrag>\r\n\t\t\t\t<mat-icon class=\"\u62D6\u62FD\u56FE\u6807\" svgIcon=\"drag_indicator\" cdkDragHandle>\r\n\t\t\t\t</mat-icon>\r\n\t\t\t\t<mat-icon class=\"\u5904\u7406\u5217\u56FE\u6807\" [svgIcon]=\"pro.Icon\"\r\n\t\t\t\t\t[ngClass]=\"pro.Color\"></mat-icon>\r\n\t\t\t\t<span>{{ pro.Name }}</span>\r\n\t\t\t\t<mat-icon *ngIf=\"(svr.currentProcess|async).Name == pro.Name\"\r\n\t\t\t\t\tclass=\"\u53F3\u6307\u793A\u7BAD\u5934\" svgIcon=\"keyboard_arrow_right\"></mat-icon>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"\u8BB0\u5F55\u6807\u9898\">\u672A\u7ED1\u5B9A\u8BB0\u5F55</div>\r\n\t\t<div cdkDropList class=\"pro-list\"\r\n\t\t\t(cdkDropListDropped)=\"dropNotBind($event)\">\r\n\t\t\t<div class=\"process\" *ngFor=\"let pro of svr.notBindRecordProcesses\"\r\n\t\t\t\t[class.\u9009\u4E2D]=\"(svr.currentProcess|async)?.Name == pro.Name\"\r\n\t\t\t\t(click)=\"selectProcess(pro)\" cdkDrag>\r\n\t\t\t\t<mat-icon class=\"\u62D6\u62FD\u56FE\u6807\" svgIcon=\"drag_indicator\" cdkDragHandle>\r\n\t\t\t\t</mat-icon>\r\n\t\t\t\t<mat-icon class=\"\u5904\u7406\u5217\u56FE\u6807\" [svgIcon]=\"pro.Icon\"\r\n\t\t\t\t\t[ngClass]=\"pro.Color\"></mat-icon>\r\n\t\t\t\t<span>{{ pro.Name }}</span>\r\n\t\t\t\t<mat-icon *ngIf=\"(svr.currentProcess|async)?.Name == pro.Name\"\r\n\t\t\t\t\tclass=\"\u53F3\u6307\u793A\u7BAD\u5934\" svgIcon=\"keyboard_arrow_right\"></mat-icon>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"right\" *ngIf=\"svr.currentProcess|async\">\r\n\t\t<div class=\"list-\u4E00\u7EA7\u6807\u9898 \u5B57\u4F53\u989C\u8272\">\u5C5E\u6027\u8BBE\u7F6E</div>\r\n\t\t<div class=\"\u5220\u9664\">\r\n\t\t\t<mat-icon svgIcon=\"outlined:delete\" (click)=\"delete()\"\r\n\t\t\t\t*ngIf=\"svr.currentProcess\"></mat-icon>\r\n\t\t</div>\r\n\t\t<div class=\"\u5217\u4FE1\u606F\">\r\n\t\t\t<div class=\"\u56FE\u6807 mat-elevation-z4\" (click)=\"openIconDialog()\">\r\n\t\t\t\t<mat-icon [svgIcon]=\"(svr.currentProcess|async).Icon\"\r\n\t\t\t\t\t[ngClass]=\"(svr.currentProcess|async).Color\"></mat-icon>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"\u540D\u79F0\">\r\n\t\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">\u540D\u79F0</div>\r\n\t\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t\t<input matInput [(ngModel)]=\"svr.currentProcess.value.Name\"/>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t\t<mat-checkbox class=\"checkbox\"\r\n\t\t\t\t[(ngModel)]=\"svr.currentProcess.value.WithSql\">\r\n\t\t\t\t<span>\u4F20\u9001SQL</span>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<mat-checkbox class=\"checkbox\"\r\n\t\t\t\t[(ngModel)]=\"svr.currentProcess.value.BindRecord\"\r\n\t\t\t\t(change)=\"svr.refreshProcesses()\">\r\n\t\t\t\t<span>\u7ED1\u5B9A\u8BB0\u5F55</span>\r\n\t\t\t</mat-checkbox>\r\n\t\t</div>\r\n\t\t<div class=\"\u83DC\u5355\u9879\">\r\n\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">\u83DC\u5355\u9879</div>\r\n\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t<input matInput [formControl]=\"ctrlElementName\"\r\n\t\t\t\t\t[matAutocomplete]=\"autoElements\" />\r\n\t\t\t</mat-form-field>\r\n\t\t\t<mat-autocomplete #autoElements=\"matAutocomplete\">\r\n\t\t\t\t<mat-option *ngFor=\"let ele of filterElemets\"\r\n\t\t\t\t\t[value]=\"ele\"> {{ ele }}</mat-option>\r\n\t\t\t</mat-autocomplete>\r\n\t\t</div>\r\n\t\t<div class=\"\u4E3B\u952E\">\r\n\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">\u4E3B\u952E</div>\r\n\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t<mat-select [(ngModel)]=\"svr.currentProcess.value.TransPath\" multiple>\r\n\t\t\t\t\t<mat-option *ngFor=\"let col of svr.allColumnNames\"\r\n\t\t\t\t\t\t[value]=\"col\">{{ col }}</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=\"\u53C2\u6570\">\r\n\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">Query\u53C2\u6570</div>\r\n\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t<textarea matInput\r\n\t\t\t\t\t[(ngModel)]=\"svr.currentProcess.value.TransQuery\"></textarea>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"\u53C2\u6570\">\r\n\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">\u663E\u793A\u6761\u4EF6</div>\r\n\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t<textarea matInput\r\n\t\t\t\t\t[(ngModel)]=\"svr.currentProcess.value.Visable\"></textarea>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"\u53C2\u6570\">\r\n\t\t\t<div class=\"list-\u4E8C\u7EA7\u6807\u9898\">MoreStr</div>\r\n\t\t\t<mat-form-field class=\"\u9009\u62E9\u6846\" appearance=\"outline\">\r\n\t\t\t\t<textarea matInput\r\n\t\t\t\t\t[(ngModel)]=\"svr.currentProcess.value.MoreStr\"></textarea>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t</div>\r\n</div>", styles: ["@charset \"UTF-8\";:host{width:100%;height:100%}.content{height:100%;display:flex;padding:16px 0;box-sizing:border-box}.left{flex-grow:1;max-width:272px;min-width:172px;padding:8px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto}.left .title{display:flex;justify-content:space-between;margin-bottom:8px}.left .title .\u65B0\u589E{font-size:14px;cursor:pointer}.left .title .\u65B0\u589E span{display:inline-block;height:24px;line-height:24px;vertical-align:top}.left .\u8BB0\u5F55\u6807\u9898{font-size:14px;margin:16px 24px}.left .\u5904\u7406\u5217\u56FE\u6807{margin:8px 0;vertical-align:top}.process{height:40px;line-height:40px;font-size:14px;padding:0 24px;margin-bottom:8px;box-sizing:border-box;position:relative;cursor:pointer}.process span{vertical-align:top;margin-left:16px}.process .\u62D6\u62FD\u56FE\u6807{width:16px;height:16px;line-height:16px;position:absolute;left:0;top:12px;display:none}.process .\u53F3\u6307\u793A\u7BAD\u5934{position:absolute;right:0;top:8px}.process:hover{padding:0 24px 0 32px;box-shadow:0 2px 4px 0 rgba(0,0,0,.14)}.process:hover .\u62D6\u62FD\u56FE\u6807{display:block}.right{max-width:536px;flex-grow:2;height:100%;padding:8px 0 8px 8px;box-sizing:border-box;position:relative;display:flex;flex-wrap:wrap;align-content:flex-start;overflow-y:auto}.right ::ng-deep .mat-form-field-wrapper{margin:0;padding-bottom:10px}.right ::ng-deep .mat-form-field-infix{border:0;padding:8px 0}.right ::ng-deep .mat-select-arrow-wrapper{display:block}.right .\u5217\u4FE1\u606F{width:100%;height:136px;padding:16px 0 24px 32px;box-sizing:border-box}.right .\u5217\u4FE1\u606F .\u56FE\u6807{display:inline-block;width:80px;height:80px;border-radius:4px;overflow:hidden;position:relative;cursor:pointer}.right .\u5217\u4FE1\u606F .\u56FE\u6807 .mat-icon{width:24px;height:24px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.right .\u5217\u4FE1\u606F .\u540D\u79F0{display:inline-block;width:200px;margin-left:16px;vertical-align:bottom}.right .\u5217\u4FE1\u606F .checkbox{float:right;margin-right:12px;font-size:14px}.right .\u5220\u9664{cursor:pointer;position:absolute;right:24px;top:8px}.right .\u9009\u62E9\u6846{font-size:14px}.right .\u4E3B\u952E,.right .\u83DC\u5355\u9879{width:216px;margin-left:32px}.right .\u4E3B\u952E .\u9009\u62E9\u6846,.right .\u83DC\u5355\u9879 .\u9009\u62E9\u6846{width:216px}.right .\u53C2\u6570{margin-left:32px}.right .\u53C2\u6570 .\u9009\u62E9\u6846{width:462px}.right .\u53C2\u6570 .\u9009\u62E9\u6846 .mat-form-field-autofill-control{height:144px;resize:none}.list-\u4E00\u7EA7\u6807\u9898{font-size:16px;font-weight:700;margin-bottom:16px}.list-\u4E8C\u7EA7\u6807\u9898{margin:4px 0;display:block;font-size:12px}"] }] } ]; /** @nocollapse */ ProcessingListsComponent.ctorParameters = function () { return [ { type: ElementService }, { type: ElementsService }, { type: MatDialog } ]; }; ProcessingListsComponent.propDecorators = { hostClass: [{ type: HostBinding, args: ['class.processing-lists',] }] }; return ProcessingListsComponent; }()); export { ProcessingListsComponent }; if (false) { /** @type {?} */ ProcessingListsComponent.prototype.hostClass; /** @type {?} */ ProcessingListsComponent.prototype.svr; /** @type {?} */ ProcessingListsComponent.prototype.ctrlElementName; /** @type {?} */ ProcessingListsComponent.prototype.filterElemets; /** * @type {?} * @private */ ProcessingListsComponent.prototype.subs; /** @type {?} */ ProcessingListsComponent.prototype.elementSvr; /** @type {?} */ ProcessingListsComponent.prototype.eles; /** @type {?} */ ProcessingListsComponent.prototype.dialog; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2luZy1saXN0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYndlYi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvZWxlbWVudC9zZXQtcHJvcGVydHktcmVjb3Jkdmlldy9wcm9jZXNzaW5nLWxpc3RzL3Byb2Nlc3NpbmctbGlzdHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBeUIsY0FBYyxFQUFZLE1BQU0sK0JBQStCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBVyxNQUFNLFlBQVksQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQztJQVdDLGtDQUFtQixVQUEwQixFQUFTLElBQXFCLEVBQVMsTUFBaUI7UUFBbEYsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFMOUQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqRCxRQUFHLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUF5QixDQUFDO1FBQ3RFLG9CQUFlLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU1QixTQUFJLEdBQW1CLEVBQUUsQ0FBQztJQUNzRSxDQUFDOzs7O0lBQ3pHLDhDQUFXOzs7SUFBWDtRQUNDLElBQUksQ0FBQyxJQUFJLENB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LEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRTs7WUFDeEMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQ3ZELEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRTtnQkFDVCxHQUFHLEVBQUUsS0FBSztnQkFDVixLQUFLLEVBQUUsS0FBSzthQUNaO1NBQ0QsQ0FBQztRQUNGLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxNQUFNO1lBQ3ZDLElBQUksTUFBTSxFQUFFO2dCQUNYLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDdkIsR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3pCO1FBQ0YsQ0FBQyxFQUFDLENBQUM7SUFDSixDQUFDOztnQkFoR0QsU0FBUyxTQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLDg3S0FBZ0Q7O2lCQUVoRDs7OztnQkFaK0IsY0FBYztnQkFDckMsZUFBZTtnQkFFZixTQUFTOzs7NEJBV2hCLFdBQVcsU0FBQyx3QkFBd0I7O0lBMkZ0QywrQkFBQztDQUFBLEFBakdELElBaUdDO1NBNUZZLHdCQUF3Qjs7O0lBQ3BDLDZDQUF3RDs7SUFDeEQsdUNBQXNFOztJQUN0RSxtREFBb0M7O0lBQ3BDLGlEQUF3Qjs7Ozs7SUFDeEIsd0NBQWtDOztJQUN0Qiw4Q0FBaUM7O0lBQUUsd0NBQTRCOztJQUFFLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50RGF0YVJlY29yZFZpZXcsIEVsZW1lbnRTZXJ2aWNlLCBJUHJvY2VzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2UvZWxlbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudHNTZXJ2aWNlLCBFbGVtZW50IH0gZnJvbSAnZGJ3ZWItY29yZSc7XHJcbmltcG9ydCB7IEljb25TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ljb24tc2VsZWN0L2ljb24tc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NvbW1vbi1wcm9jZXNzaW5nLWxpc3RzJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzc2luZy1saXN0cy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vcHJvY2Vzc2luZy1saXN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9jZXNzaW5nTGlzdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5wcm9jZXNzaW5nLWxpc3RzJykgaG9zdENsYXNzID0gdHJ1ZTtcclxuXHRwdWJsaWMgc3ZyID0gdGhpcy5lbGVtZW50U3ZyLmRhdGEucmVjb3JkdmlldyBhcyBFbGVtZW50RGF0YVJlY29yZFZpZXc7XHJcblx0Y3RybEVsZW1lbnROYW1lID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblx0ZmlsdGVyRWxlbWV0czogc3RyaW5nW107XHJcblx0cHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50U3ZyOiBFbGVtZW50U2VydmljZSwgcHVibGljIGVsZXM6IEVsZW1lbnRzU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5zdWJzLmZvckVhY2godiA9PiB2LnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuc3Vicy5wdXNoKFxyXG5cdFx0XHR0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy5zdWJzY3JpYmUocHJvID0+IHRoaXMuY3RybEVsZW1lbnROYW1lLnBhdGNoVmFsdWUocHJvID8gcHJvLkVsZW1lbnROYW1lIDogbnVsbCkpLFxyXG5cdFx0XHR0aGlzLnN2ci5pbml0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnN1YnMucHVzaChcclxuXHRcdFx0XHRcdHRoaXMuY3RybEVsZW1lbnROYW1lLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgnJykpLnN1YnNjcmliZSh2YWwgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpbHRlckVsZW1ldHMgPSB0aGlzLnN2ci5hbGxFbGVtZW50TmFtZXNcclxuXHRcdFx0XHRcdFx0XHQuZmlsdGVyKHYgPT4gdi5pbmNsdWRlcyh2YWwpKVxyXG5cdFx0XHRcdFx0XHRcdC5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHR0aGlzLmN0cmxFbGVtZW50TmFtZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy52YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3ZyLmN1cnJlbnRQcm9jZXNzLnZhbHVlLkVsZW1lbnROYW1lID0gdmFsO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHRkcm9wQmluZChldmVudDogQ2RrRHJhZ0Ryb3A8SVByb2Nlc3NbXT4pIHtcclxuXHRcdG1vdmVJdGVtSW5BcnJheSh0aGlzLnN2ci5iaW5kUmVjb3JkUHJvY2Vzc2VzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG5cdFx0dGhpcy5zdnIuY29sbGVjdGlvblByb2Nlc3NlcygpO1xyXG5cdH1cclxuXHRkcm9wTm90QmluZChldmVudDogQ2RrRHJhZ0Ryb3A8SVByb2Nlc3NbXT4pIHtcclxuXHRcdG1vdmVJdGVtSW5BcnJheSh0aGlzLnN2ci5ub3RCaW5kUmVjb3JkUHJvY2Vzc2VzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG5cdFx0dGhpcy5zdnIuY29sbGVjdGlvblByb2Nlc3NlcygpO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0UHJvY2Vzcyhwcm86IElQcm9jZXNzKSB7XHJcblx0XHR0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy5uZXh0KHBybyk7XHJcblx0fVxyXG5cdGFkZCgpIHtcclxuXHRcdGNvbnN0IHBybyA9IHRoaXMuc3ZyLmN1cnJlbnRQcm9jZXNzLnZhbHVlO1xyXG5cdFx0aWYgKHBybyAmJiBwcm8uQmluZFJlY29yZCkge1xyXG5cdFx0XHR0aGlzLnN2ci5iaW5kUmVjb3JkUHJvY2Vzc2VzID0gdGhpcy5zdnIuYmluZFJlY29yZFByb2Nlc3NlcyB8fCBbXTtcclxuXHRcdFx0dGhpcy5zdnIuYmluZFJlY29yZFByb2Nlc3Nlcy5wdXNoKHtcclxuXHRcdFx0XHROYW1lOiAn5paw55qE5aSE55CGJyxcclxuXHRcdFx0XHRCaW5kUmVjb3JkOiB0cnVlXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdnIubm90QmluZFJlY29yZFByb2Nlc3NlcyA9IHRoaXMuc3ZyLm5vdEJpbmRSZWNvcmRQcm9jZXNzZXMgfHwgW107XHJcblx0XHRcdHRoaXMuc3ZyLm5vdEJpbmRSZWNvcmRQcm9jZXNzZXMucHVzaCh7XHJcblx0XHRcdFx0TmFtZTogJ+aWsOeahOWkhOeQhicsXHJcblx0XHRcdFx0QmluZFJlY29yZDogZmFsc2VcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLnN2ci5jb2xsZWN0aW9uUHJvY2Vzc2VzKCk7XHJcblx0fVxyXG5cdGRlbGV0ZSgpIHtcclxuXHRcdGlmICh0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy52YWx1ZSkge1xyXG5cdFx0XHR0aGlzLnN2ci5QYXJhbXMuUHJvY2Vzc2VzLnNwbGljZShcclxuXHRcdFx0XHR0aGlzLnN2ci5QYXJhbXMuUHJvY2Vzc2VzLmZpbmRJbmRleCh2ID0+IHYgPT09IHRoaXMuc3ZyLmN1cnJlbnRQcm9jZXNzLnZhbHVlKSxcclxuXHRcdFx0XHQxXHJcblx0XHRcdCk7XHJcblx0XHRcdGlmICh0aGlzLnN2ci5QYXJhbXMuUHJvY2Vzc2VzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy5uZXh0KHRoaXMuc3ZyLlBhcmFtcy5Qcm9jZXNzZXNbMF0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuc3ZyLnJlZnJlc2hQcm9jZXNzZXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0b3Blbkljb25EaWFsb2coKSB7XHJcblx0XHRjb25zdCBwcm8gPSB0aGlzLnN2ci5jdXJyZW50UHJvY2Vzcy52YWx1ZTtcclxuXHRcdGlmICghcHJvKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHYgPSB7IGljb246IHByby5JY29uLCBjb2xvcjogcHJvLkNvbG9yIH07XHJcblx0XHRjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEljb25TZWxlY3RDb21wb25lbnQsIHtcclxuXHRcdFx0d2lkdGg6ICczODRweCcsXHJcblx0XHRcdGhlaWdodDogJzEwMCUnLFxyXG5cdFx0XHRkYXRhOiB2LFxyXG5cdFx0XHRwb3NpdGlvbjoge1xyXG5cdFx0XHRcdHRvcDogJzBweCcsXHJcblx0XHRcdFx0cmlnaHQ6ICcwcHgnXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0ZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcblx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRwcm8uSWNvbiA9IHJlc3VsdC5pY29uO1xyXG5cdFx0XHRcdHByby5Db2xvciA9IHJlc3VsdC5jb2xvcjtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiJdfQ==