UNPKG

dbweb-common

Version:

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

153 lines 18.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, HostBinding } from '@angular/core'; import { ElementService } from '../service/element.service'; import { MatDialog } from '@angular/material'; import { SetParamsComponent } from './set-params/set-params.component'; import { ListParamsComponent } from './list-params/list-params.component'; /** * @record */ export function List() { } if (false) { /** @type {?} */ List.prototype.Value; /** @type {?} */ List.prototype.Label; } /** * @record */ export function Sets() { } if (false) { /** @type {?|undefined} */ Sets.prototype.AdditionSet; /** @type {?|undefined} */ Sets.prototype.AdditionWhere; /** @type {?|undefined} */ Sets.prototype.BeforeSQL; } var SetPropertyUpdateComponent = /** @class */ (function () { function SetPropertyUpdateComponent(elementSvr, dialog) { this.elementSvr = elementSvr; this.dialog = dialog; this.hostClass = true; this.svr = (/** @type {?} */ (this.elementSvr.data.update)); } /** * @param {?} event * @return {?} */ SetPropertyUpdateComponent.prototype.selectChecked = /** * @param {?} event * @return {?} */ function (event) { this.svr.Params.Fields.forEach((/** * @param {?} v * @return {?} */ function (v) { return (v.selected = event.checked); })); }; /** * @return {?} */ SetPropertyUpdateComponent.prototype.openSetDialog = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var setValue = { AdditionSet: this.svr.Params.AdditionSet, AdditionWhere: this.svr.Params.AdditionWhere, BeforeSQL: this.svr.Params.BeforeSQL }; /** @type {?} */ var setRef = this.dialog.open(SetParamsComponent, { width: '380px', height: '100%', data: setValue }); setRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ function (result) { // console.log('The setDialog was closed'); _this.svr.Params.AdditionSet = setValue.AdditionSet; _this.svr.Params.AdditionWhere = setValue.AdditionWhere; _this.svr.Params.BeforeSQL = setValue.BeforeSQL; })); }; /** * @param {?} selected * @param {?=} list * @return {?} */ SetPropertyUpdateComponent.prototype.openListDialog = /** * @param {?} selected * @param {?=} list * @return {?} */ function (selected, list) { if (selected) { /** @type {?} */ var listRef = this.dialog.open(ListParamsComponent, { width: '384px', height: 'calc(100% - 0px)', data: list, position: { right: '0', bottom: '0' } }); listRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ function (result) { console.log('The listDialog was closed'); })); } }; /** * @return {?} */ SetPropertyUpdateComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.svr.init(); }; SetPropertyUpdateComponent.decorators = [ { type: Component, args: [{ selector: 'common-set-property-update', template: "<div>\r\n\t<div>\r\n\t\t<div class=\"\u8BBE\u7F6E-\u5934\u90E8\">\r\n\t\t\t<div class=\"\u5934\u90E8-\u8F93\u5165\u6846\">\r\n\t\t\t\t<span>\u6570\u636E\u5E93</span>\r\n\t\t\t\t<mat-form-field appearance=\"outline\">\r\n\t\t\t\t\t<mat-select [(ngModel)]=\"svr.Params.DB\" (valueChange)=\"svr.refreshTables()\">\r\n\t\t\t\t\t\t<mat-option [value]=\"''\"> (\u5F53\u524D\u6570\u636E\u5E93) </mat-option>\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let db of svr.DBList\" [value]=\"db\">\r\n\t\t\t\t\t\t\t{{ db }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"\u5934\u90E8-\u8F93\u5165\u6846\">\r\n\t\t\t\t<span>\u8868</span>\r\n\t\t\t\t<mat-form-field appearance=\"outline\">\r\n\t\t\t\t\t<input type=\"text\" matInput [(ngModel)]=\"svr.Params.TableName\" [matAutocomplete]=\"auto\" />\r\n\t\t\t\t\t<mat-autocomplete #auto=\"matAutocomplete\">\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let tab of svr.Tables\" [value]=\"tab | uppercase\">\r\n\t\t\t\t\t\t\t{{ tab | uppercase }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"\u81EA\u5B9A\u4E49set\">\r\n\t\t\t\t<span (click)=\"openSetDialog()\">\u81EA\u5B9A\u4E49set</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"\u8868\u683C\">\r\n\t\t\t<table mat-table [dataSource]=\"svr.Params.Fields\">\r\n\t\t\t\t<!-- \u9009\u62E9\u6846 \u663E\u793A -->\r\n\t\t\t\t<ng-container matColumnDef=\"select\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t<mat-checkbox\r\n\t\t\t\t\t\t\t(change)=\"selectChecked($event)\"\r\n\t\t\t\t\t\t\t[checked]=\"svr.isAllSelected()\"\r\n\t\t\t\t\t\t\t[indeterminate]=\"svr.hasSelected() && !svr.isAllSelected()\"\r\n\t\t\t\t\t\t\t>\u663E\u793A\r\n\t\t\t\t\t\t</mat-checkbox>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td mat-cell *matCellDef=\"let row\">\r\n\t\t\t\t\t\t<mat-checkbox [(ngModel)]=\"row.selected\"> </mat-checkbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u9009\u62E9\u6846 \u5FC5\u586B -->\r\n\t\t\t\t<ng-container matColumnDef=\"must\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t<mat-checkbox>\u5FC5\u586B </mat-checkbox>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td mat-cell *matCellDef=\"let element; let index = index\">\r\n\t\t\t\t\t\t<!-- <mat-checkbox [(ngModel)]=\"row.selected\">\r\n\t\t\t\t\t\t</mat-checkbox> -->\r\n\t\t\t\t\t\t<mat-slide-toggle\r\n\t\t\t\t\t\t\t[disabled]=\"!svr.Params.Fields[index].selected\"\r\n\t\t\t\t\t\t\t[(ngModel)]=\"element.Must\"\r\n\t\t\t\t\t\t></mat-slide-toggle>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u540D\u79F0 -->\r\n\t\t\t\t<ng-container matColumnDef=\"name\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t\u540D\u79F0\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td\r\n\t\t\t\t\t\tmat-cell\r\n\t\t\t\t\t\t*matCellDef=\"let element; let index = index\"\r\n\t\t\t\t\t\t[ngClass]=\"{ selectedState: !svr.Params.Fields[index].selected }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ element.Name }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u6807\u7B7E -->\r\n\t\t\t\t<ng-container matColumnDef=\"label\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t\u6807\u7B7E\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td mat-cell *matCellDef=\"let element; let index = index\">\r\n\t\t\t\t\t\t<mat-form-field appearance=\"outline\">\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tmatInput\r\n\t\t\t\t\t\t\t\t[disabled]=\"!svr.Params.Fields[index].selected\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"element.Label\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u63D0\u793A -->\r\n\t\t\t\t<ng-container matColumnDef=\"tooltip\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t\u63D0\u793A\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td mat-cell *matCellDef=\"let element; let index = index\">\r\n\t\t\t\t\t\t<mat-form-field appearance=\"outline\">\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tmatInput\r\n\t\t\t\t\t\t\t\t[disabled]=\"!svr.Params.Fields[index].selected\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"element.Tooltip\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u81EA\u7531\u5F55\u5165 -->\r\n\t\t\t\t<ng-container matColumnDef=\"freeentry\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t<mat-checkbox>\u81EA\u7531\u5F55\u5165</mat-checkbox>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td mat-cell *matCellDef=\"let element; let index = index\">\r\n\t\t\t\t\t\t<mat-checkbox [disabled]=\"!svr.Params.Fields[index].selected\">\u542F\u7528</mat-checkbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u5FEB\u901F\u64CD\u4F5C\u8BBE\u7F6E -->\r\n\t\t\t\t<ng-container matColumnDef=\"listnum\">\r\n\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\r\n\t\t\t\t\t\t\u5FEB\u901F\u64CD\u4F5C\u8BBE\u7F6E\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<td\r\n\t\t\t\t\t\tmat-cell\r\n\t\t\t\t\t\t*matCellDef=\"let element; let index = index\"\r\n\t\t\t\t\t\t[ngClass]=\"{ selectedState: !svr.Params.Fields[index].selected }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ element.List ? element.List.length : 0 }}\r\n\r\n\t\t\t\t\t\t<button mat-icon-button [disabled]=\"!svr.Params.Fields[index].selected\">\r\n\t\t\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\t\t\tsvgIcon=\"outlined:edit\"\r\n\t\t\t\t\t\t\t\t(click)=\"openListDialog(svr.Params.Fields[index].selected, element.List)\"\r\n\t\t\t\t\t\t\t></mat-icon>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<!-- \u8868\u5934\u8BBE\u7F6E -->\r\n\t\t\t\t<tr\r\n\t\t\t\t\tmat-header-row\r\n\t\t\t\t\t*matHeaderRowDef=\"['select', 'must', 'name', 'label', 'tooltip', 'freeentry', 'listnum']\"\r\n\t\t\t\t></tr>\r\n\t\t\t\t<tr\r\n\t\t\t\t\tmat-row\r\n\t\t\t\t\t*matRowDef=\"\r\n\t\t\t\t\t\tlet row;\r\n\t\t\t\t\t\tcolumns: ['select', 'must', 'name', 'label', 'tooltip', 'freeentry', 'listnum']\r\n\t\t\t\t\t\"\r\n\t\t\t\t></tr>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{width:100%;padding:0 16px;box-sizing:border-box}:host .mat-form-field ::ng-deep .mat-form-field-wrapper{margin:0;padding-bottom:0}:host .mat-form-field ::ng-deep .mat-form-field-infix{border:0;padding:10px 0}:host .mat-form-field ::ng-deep .mat-select-arrow-wrapper{-webkit-transform:translateY(0);transform:translateY(0)}:host .\u8BBE\u7F6E-\u5934\u90E8{width:100%;display:flex;justify-content:flex-end;align-items:center;margin:16px 0 24px;font-size:14px}:host .\u8BBE\u7F6E-\u5934\u90E8 .\u5934\u90E8-\u8F93\u5165\u6846{margin-right:16px}:host .\u8BBE\u7F6E-\u5934\u90E8 .\u5934\u90E8-\u8F93\u5165\u6846 span{margin-right:8px}:host .\u8BBE\u7F6E-\u5934\u90E8 .\u5934\u90E8-\u8F93\u5165\u6846 .mat-form-field{width:125px}:host .\u8BBE\u7F6E-\u5934\u90E8 .\u81EA\u5B9A\u4E49set{margin-right:8px;cursor:pointer}:host .\u8868\u683C{width:100%}:host .\u8868\u683C th{font-size:14px;font-weight:700}:host .\u8868\u683C td{font-size:14px}:host .\u8868\u683C td.mat-cell:first-of-type,:host .\u8868\u683C th.mat-header-cell:first-of-type{padding-left:8px;min-width:48px;width:48px}:host .\u8868\u683C td.mat-column-listnum{text-align:right}:host .\u8868\u683C td.mat-cell,:host .\u8868\u683C th.mat-header-cell{min-width:72px;padding:0 8px}:host .\u8868\u683C .mat-form-field{width:104px}"] }] } ]; /** @nocollapse */ SetPropertyUpdateComponent.ctorParameters = function () { return [ { type: ElementService }, { type: MatDialog } ]; }; SetPropertyUpdateComponent.propDecorators = { hostClass: [{ type: HostBinding, args: ['class.set-property-update',] }] }; return SetPropertyUpdateComponent; }()); export { SetPropertyUpdateComponent }; if (false) { /** @type {?} */ SetPropertyUpdateComponent.prototype.hostClass; /** @type {?} */ SetPropertyUpdateComponent.prototype.svr; /** @type {?} */ SetPropertyUpdateComponent.prototype.elementSvr; /** @type {?} */ SetPropertyUpdateComponent.prototype.dialog; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXByb3BlcnR5LXVwZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYndlYi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvZWxlbWVudC9zZXQtcHJvcGVydHktdXBkYXRlL3NldC1wcm9wZXJ0eS11cGRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFxQixNQUFNLDRCQUE0QixDQUFDO0FBQy9FLE9BQU8sRUFBcUIsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFFMUUsMEJBR0M7OztJQUZBLHFCQUFjOztJQUNkLHFCQUFjOzs7OztBQUVmLDBCQUlDOzs7SUFIQSwyQkFBcUI7O0lBQ3JCLDZCQUF1Qjs7SUFDdkIseUJBQW1COztBQUVwQjtJQVFDLG9DQUFtQixVQUEwQixFQUFTLE1BQWlCO1FBQXBELGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUY3QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3BELFFBQUcsR0FBRyxtQkFBQSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQXFCLENBQUM7SUFDWSxDQUFDOzs7OztJQUUzRSxrREFBYTs7OztJQUFiLFVBQWMsS0FBd0I7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQTVCLENBQTRCLEVBQUMsQ0FBQztJQUNuRSxDQUFDOzs7O0lBRUQsa0RBQWE7OztJQUFiO1FBQUEsaUJBa0JDOztZQWpCTSxRQUFRLEdBQVM7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDeEMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDNUMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDcEM7O1lBQ0ssTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ25ELEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsUUFBUTtTQUNkLENBQUM7UUFFRixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsTUFBTTtZQUNwQywyQ0FBMkM7WUFDM0MsS0FBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDbkQsS0FBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkQsS0FBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDaEQsQ0FBQyxFQUFDLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCxtREFBYzs7Ozs7SUFBZCxVQUFlLFFBQWlCLEVBQUUsSUFBYTtRQUM5QyxJQUFJLFFBQVEsRUFBRTs7Z0JBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUNyRCxLQUFLLEVBQUUsT0FBTztnQkFDZCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLEdBQUc7b0JBQ1YsTUFBTSxFQUFFLEdBQUc7aUJBQ1g7YUFDRCxDQUFDO1lBRUYsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFBLE1BQU07Z0JBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUMxQyxDQUFDLEVBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQzs7OztJQUVELDZDQUFROzs7SUFBUjtRQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzs7Z0JBdERELFNBQVMsU0FBQztvQkFDVixRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxnOExBQW1EOztpQkFFbkQ7Ozs7Z0JBbEJRLGNBQWM7Z0JBQ0ssU0FBUzs7OzRCQW1CbkMsV0FBVyxTQUFDLDJCQUEyQjs7SUFpRHpDLGlDQUFDO0NBQUEsQUF2REQsSUF1REM7U0FsRFksMEJBQTBCOzs7SUFDdEMsK0NBQTJEOztJQUMzRCx5Q0FBOEQ7O0lBQ2xELGdEQUFpQzs7SUFBRSw0Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRWxlbWVudFNlcnZpY2UsIEVsZW1lbnREYXRhVXBkYXRlIH0gZnJvbSAnLi4vc2VydmljZS9lbGVtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBTZXRQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuL3NldC1wYXJhbXMvc2V0LXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0UGFyYW1zQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXBhcmFtcy9saXN0LXBhcmFtcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaXN0IHtcclxuXHRWYWx1ZTogc3RyaW5nO1xyXG5cdExhYmVsOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTZXRzIHtcclxuXHRBZGRpdGlvblNldD86IHN0cmluZztcclxuXHRBZGRpdGlvbldoZXJlPzogc3RyaW5nO1xyXG5cdEJlZm9yZVNRTD86IHN0cmluZztcclxufVxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NvbW1vbi1zZXQtcHJvcGVydHktdXBkYXRlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2V0LXByb3BlcnR5LXVwZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vc2V0LXByb3BlcnR5LXVwZGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXRQcm9wZXJ0eVVwZGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5zZXQtcHJvcGVydHktdXBkYXRlJykgaG9zdENsYXNzID0gdHJ1ZTtcclxuXHRwdWJsaWMgc3ZyID0gdGhpcy5lbGVtZW50U3ZyLmRhdGEudXBkYXRlIGFzIEVsZW1lbnREYXRhVXBkYXRlO1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50U3ZyOiBFbGVtZW50U2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cclxuXHRzZWxlY3RDaGVja2VkKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSkge1xyXG5cdFx0dGhpcy5zdnIuUGFyYW1zLkZpZWxkcy5mb3JFYWNoKHYgPT4gKHYuc2VsZWN0ZWQgPSBldmVudC5jaGVja2VkKSk7XHJcblx0fVxyXG5cclxuXHRvcGVuU2V0RGlhbG9nKCkge1xyXG5cdFx0Y29uc3Qgc2V0VmFsdWU6IFNldHMgPSB7XHJcblx0XHRcdEFkZGl0aW9uU2V0OiB0aGlzLnN2ci5QYXJhbXMuQWRkaXRpb25TZXQsXHJcblx0XHRcdEFkZGl0aW9uV2hlcmU6IHRoaXMuc3ZyLlBhcmFtcy5BZGRpdGlvbldoZXJlLFxyXG5cdFx0XHRCZWZvcmVTUUw6IHRoaXMuc3ZyLlBhcmFtcy5CZWZvcmVTUUxcclxuXHRcdH07XHJcblx0XHRjb25zdCBzZXRSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFNldFBhcmFtc0NvbXBvbmVudCwge1xyXG5cdFx0XHR3aWR0aDogJzM4MHB4JyxcclxuXHRcdFx0aGVpZ2h0OiAnMTAwJScsXHJcblx0XHRcdGRhdGE6IHNldFZhbHVlXHJcblx0XHR9KTtcclxuXHJcblx0XHRzZXRSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ1RoZSBzZXREaWFsb2cgd2FzIGNsb3NlZCcpO1xyXG5cdFx0XHR0aGlzLnN2ci5QYXJhbXMuQWRkaXRpb25TZXQgPSBzZXRWYWx1ZS5BZGRpdGlvblNldDtcclxuXHRcdFx0dGhpcy5zdnIuUGFyYW1zLkFkZGl0aW9uV2hlcmUgPSBzZXRWYWx1ZS5BZGRpdGlvbldoZXJlO1xyXG5cdFx0XHR0aGlzLnN2ci5QYXJhbXMuQmVmb3JlU1FMID0gc2V0VmFsdWUuQmVmb3JlU1FMO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRvcGVuTGlzdERpYWxvZyhzZWxlY3RlZDogYm9vbGVhbiwgbGlzdD86IExpc3RbXSkge1xyXG5cdFx0aWYgKHNlbGVjdGVkKSB7XHJcblx0XHRcdGNvbnN0IGxpc3RSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKExpc3RQYXJhbXNDb21wb25lbnQsIHtcclxuXHRcdFx0XHR3aWR0aDogJzM4NHB4JyxcclxuXHRcdFx0XHRoZWlnaHQ6ICdjYWxjKDEwMCUgLSAwcHgpJyxcclxuXHRcdFx0XHRkYXRhOiBsaXN0LFxyXG5cdFx0XHRcdHBvc2l0aW9uOiB7XHJcblx0XHRcdFx0XHRyaWdodDogJzAnLFxyXG5cdFx0XHRcdFx0Ym90dG9tOiAnMCdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0bGlzdFJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdUaGUgbGlzdERpYWxvZyB3YXMgY2xvc2VkJyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnN2ci5pbml0KCk7XHJcblx0fVxyXG59XHJcbiJdfQ==