UNPKG

dbweb-common

Version:

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

201 lines 19.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, HostBinding, Output, ViewChild } from '@angular/core'; import { MatDialog, MatSnackBar } from '@angular/material'; import { CurrentService, IsDuplicatePKError } from 'dbweb-core'; import { ConfirmDialogComponent } from '../../components/confirm-dialog/confirm-dialog.component'; import { ViewDefineComponent } from '../../components/view-define/view-define.component'; import { ServiceService } from '../service/service.service'; import { OwnerByEnum } from '../../services/eleview/types/model'; var ViewDrawerComponent = /** @class */ (function () { function ViewDrawerComponent(svr, curr, dialog, snackBar) { this.svr = svr; this.curr = curr; this.dialog = dialog; this.snackBar = snackBar; this.ownerByUser = OwnerByEnum.ownerByUser; this.ownerByDept = OwnerByEnum.ownerByDept; this.hostClass = true; this.close = new EventEmitter(); this.subscribes = []; } /** * @return {?} */ ViewDrawerComponent.prototype.ngOnInit = /** * @return {?} */ function () { // this.subscribes.push( // this.svr.editView.currentChange.subscribe( // () => (this.viewDefine.SelectedColumns = this.svr.editView.SelectedColumns) // ) // ); }; /** * @return {?} */ ViewDrawerComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.subscribes.forEach((/** * @param {?} v * @return {?} */ function (v) { return v.unsubscribe(); })); }; /** * @return {?} */ ViewDrawerComponent.prototype.canModify = /** * @return {?} */ function () { return (!this.svr.editView.titleInput && this.svr.editView.current && this.svr.editView.current.canModify(this.curr.data.UserName, this.curr.data.Dept.Code)); }; /** * @return {?} */ ViewDrawerComponent.prototype.ok = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var process = (/** * @return {?} */ function () { _this.svr.data.selectedView = _this.svr.editView.current; _this.svr.refreshData().subscribe((/** * @param {?} v * @return {?} */ function (v) { if (v.ok) { _this.close.emit(); } else { _this.snackBar.open(v.error, '确定', { duration: 5000 }); } })); }); if (this.svr.editView.modify) { this.svr.editView.save().subscribe((/** * @return {?} */ function () { process(); })); } else { process(); } }; /** * @return {?} */ ViewDrawerComponent.prototype.remove = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var dialogRef = this.dialog.open(ConfirmDialogComponent, { width: '360px', height: '184px', data: '确定要删除视图[' + this.svr.editView.current.Name + '] 吗?', autoFocus: false }); dialogRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ function (result) { if (result) { _this.svr.editView.remove(); } })); }; /** * @return {?} */ ViewDrawerComponent.prototype.editDone = /** * @return {?} */ function () { var _this = this; this.svr.editView.done().subscribe((/** * @return {?} */ function () { }), (/** * @param {?} err * @return {?} */ function (err) { /** @type {?} */ var derr = IsDuplicatePKError(err.error); if (derr.Yes) { _this.snackBar.open('名称重复', '确定', { duration: 5000 }); } else { _this.snackBar.open(err.error, '确定', { duration: 5000 }); } })); }; ViewDrawerComponent.decorators = [ { type: Component, args: [{ selector: 'common-view-drawer', template: "<div class=\"title\">\r\n\t<mat-select *ngIf=\"!svr.editView.titleInput\"\r\n\t\t[(ngModel)]=\"svr.editView.current\">\r\n\t\t<mat-option *ngFor=\"let view of svr.data.constViewItems\" [value]=\"view\">\r\n\t\t\t{{ view.Name }}\r\n\t\t</mat-option>\r\n\t\t<mat-option *ngFor=\"let view of svr.data.viewList\" [value]=\"view\">\r\n\t\t\t{{ view.Name }}\r\n\t\t</mat-option>\r\n\t</mat-select>\r\n\t<div class=\"\u661F\u661F\" *ngIf=\"!svr.editView.titleInput && svr.editView.modify\">*\r\n\t</div>\r\n\t<ng-container *ngIf=\"!svr.editView.titleInput\">\r\n\t\t<span *ngIf=\"svr.editView.current?.OwnerBy === ownerByUser\">\u7528\u6237\u7EA7</span>\r\n\t\t<span *ngIf=\"svr.editView.current?.OwnerBy === ownerByDept\">\u90E8\u95E8\u7EA7</span>\r\n\t</ng-container>\r\n\t<mat-form-field *ngIf=\"svr.editView.titleInput\" class=\"\u663E\u793A\u5217\u6807\u9898\u8F93\u5165\">\r\n\t\t<input matInput [(ngModel)]=\"svr.editView.title\" />\r\n\t</mat-form-field>\r\n\r\n\t<mat-radio-group class=\"\u9009\u62E9\u7EA7\u522B\"\r\n\t\t*ngIf=\"svr.editView.titleInput && svr.editView.isAdd\"\r\n\t\taria-label=\"Select an option\" [(ngModel)]=\"svr.editView.addOwnerBy\">\r\n\t\t<mat-radio-button [value]=\"ownerByUser\">\u7528\u6237\u7EA7</mat-radio-button>\r\n\t\t<mat-radio-button [value]=\"ownerByDept\">\u90E8\u95E8\u7EA7</mat-radio-button>\r\n\t</mat-radio-group>\r\n\t<div class=\"\u663E\u793A\u5217\u6807\u9898\u56FE\u6807\">\r\n\t\t<button mat-icon-button (click)=\"svr.editView.cancel()\"\r\n\t\t\t*ngIf=\"svr.editView.titleInput\">\r\n\t\t\t<mat-icon svgIcon=\"close\"> </mat-icon>\r\n\t\t</button>\r\n\t\t<button mat-icon-button class=\"\u4EAE\u8272\u5B57\u4F53\" (click)=\"editDone()\"\r\n\t\t\t*ngIf=\"svr.editView.titleInput\">\r\n\t\t\t<mat-icon class=\"columnTitleDone\" svgIcon=\"done\"> </mat-icon>\r\n\t\t</button>\r\n\t\t<button mat-icon-button (click)=\"svr.editView.edit()\"\r\n\t\t\t*ngIf=\"canModify()\">\r\n\t\t\t<mat-icon svgIcon=\"edit\"> </mat-icon>\r\n\t\t</button>\r\n\t\t<button mat-icon-button (click)=\"svr.editView.add()\"\r\n\t\t\t*ngIf=\"!svr.editView.titleInput\">\r\n\t\t\t<mat-icon svgIcon=\"add_circle\"></mat-icon>\r\n\t\t</button>\r\n\t\t<button mat-icon-button (click)=\"remove()\" *ngIf=\"canModify()\">\r\n\t\t\t<mat-icon svgIcon=\"delete\"></mat-icon>\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n\r\n<common-view-define #viewDefine class=\"main\" [readonly]=\"svr.editView.Readonly\"\r\n\t[AllColumns]=\"svr.data.allColumnNames\" [SelectedColumns]=\"svr.editView.SelectedColumns\" (ModifyEvent)=\"svr.editView.modify=true\">\r\n</common-view-define>\r\n<div class=\"bottom-function\">\r\n\t<button mat-button (click)=\"close.emit()\">\r\n\t\t\u53D6\u6D88\r\n\t</button>\r\n\t<button mat-button class=\"\u786E\u5B9A\u6309\u94AE\" (click)=\"ok()\"\r\n\t\t*ngIf=\"!this.svr.editView.Readonly && !this.svr.editView.titleInput\">\r\n\t\t\u786E\u5B9A\r\n\t</button>\r\n</div>\r\n<div class=\"\u906E\u7F69\" *ngIf=\"svr.editView.titleInput && svr.editView.isAdd\"></div>", styles: ["@charset \"UTF-8\";:host{width:618px;height:100%;display:flex;align-items:stretch;flex-direction:column}.\u906E\u7F69{width:100%;height:calc(100% - 40px);position:absolute;bottom:0;left:0}.title{height:40px;line-height:40px;padding-left:24px}.title .mat-select{display:inline-block;width:160px;font-size:18px;font-weight:600}.title .\u661F\u661F{position:absolute;left:200px;top:0;font-size:18px;display:inline-block;-webkit-transform:translateX(-50px);transform:translateX(-50px)}.title .\u663E\u793A\u5217\u6807\u9898\u8F93\u5165{display:inline-block;width:282px;height:30px}.title .\u663E\u793A\u5217\u6807\u9898\u8F93\u5165 ::ng-deep .mat-form-field-infix{border:none}.title .\u9009\u62E9\u7EA7\u522B{font-size:14px}.title .\u663E\u793A\u5217\u6807\u9898\u56FE\u6807{float:right;height:40px;line-height:40px}.title .\u663E\u793A\u5217\u6807\u9898\u56FE\u6807 .mat-icon{vertical-align:middle;cursor:pointer}.main{flex-grow:1}.bottom-function{height:56px;line-height:56px;text-align:right}.bottom-function .\u786E\u5B9A\u6309\u94AE{margin:0 16px;color:#fff}"] }] } ]; /** @nocollapse */ ViewDrawerComponent.ctorParameters = function () { return [ { type: ServiceService }, { type: CurrentService }, { type: MatDialog }, { type: MatSnackBar } ]; }; ViewDrawerComponent.propDecorators = { viewDefine: [{ type: ViewChild, args: ['viewDefine', { static: true, read: ViewDefineComponent },] }], hostClass: [{ type: HostBinding, args: ['class.view-drawer',] }], close: [{ type: Output }] }; return ViewDrawerComponent; }()); export { ViewDrawerComponent }; if (false) { /** @type {?} */ ViewDrawerComponent.prototype.ownerByUser; /** @type {?} */ ViewDrawerComponent.prototype.ownerByDept; /** @type {?} */ ViewDrawerComponent.prototype.viewDefine; /** @type {?} */ ViewDrawerComponent.prototype.hostClass; /** @type {?} */ ViewDrawerComponent.prototype.close; /** @type {?} */ ViewDrawerComponent.prototype.subscribes; /** @type {?} */ ViewDrawerComponent.prototype.svr; /** @type {?} */ ViewDrawerComponent.prototype.curr; /** * @type {?} * @private */ ViewDrawerComponent.prototype.dialog; /** * @type {?} * @private */ ViewDrawerComponent.prototype.snackBar; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3JlY29yZC12aWV3L3ZpZXctZHJhd2VyL3ZpZXctZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFO0lBYUMsNkJBQ1EsR0FBbUIsRUFDbkIsSUFBb0IsRUFDbkIsTUFBaUIsRUFDakIsUUFBcUI7UUFIdEIsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBWHJCLGdCQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFFYixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLGVBQVUsR0FBbUIsRUFBRSxDQUFDO0lBTzdCLENBQUM7Ozs7SUFFSixzQ0FBUTs7O0lBQVI7UUFD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Q0FBQyxDQUFDO2FBQ3JEO2lCQUFNO2dCQUNOLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDeEQ7UUFDRixDQUFDLEVBQ0QsQ0FBQztJQUNILENBQUM7O2dCQW5GRCxTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsZzhGQUEyQzs7aUJBRTNDOzs7O2dCQVBRLGNBQWM7Z0JBSmQsY0FBYztnQkFEZCxTQUFTO2dCQUFFLFdBQVc7Ozs2QkFnQjdCLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTs0QkFDbkUsV0FBVyxTQUFDLG1CQUFtQjt3QkFDL0IsTUFBTTs7SUEwRVIsMEJBQUM7Q0FBQSxBQXBGRCxJQW9GQztTQS9FWSxtQkFBbUI7OztJQUMvQiwwQ0FBK0M7O0lBQy9DLDBDQUErQzs7SUFDL0MseUNBQXNHOztJQUN0Ryx3Q0FBbUQ7O0lBQ25ELG9DQUFxQzs7SUFDckMseUNBQWdDOztJQUcvQixrQ0FBMEI7O0lBQzFCLG1DQUEyQjs7Ozs7SUFDM0IscUNBQXlCOzs7OztJQUN6Qix1Q0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuaW1wb3J0IHsgQ3VycmVudFNlcnZpY2UsIElzRHVwbGljYXRlUEtFcnJvciB9IGZyb20gJ2Rid2ViLWNvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld0RlZmluZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdmlldy1kZWZpbmUvdmlldy1kZWZpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE93bmVyQnlFbnVtIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxldmlldy90eXBlcy9tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NvbW1vbi12aWV3LWRyYXdlcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3ZpZXctZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi92aWV3LWRyYXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3RHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdHJlYWRvbmx5IG93bmVyQnlVc2VyID0gT3duZXJCeUVudW0ub3duZXJCeVVzZXI7XHJcblx0cmVhZG9ubHkgb3duZXJCeURlcHQgPSBPd25lckJ5RW51bS5vd25lckJ5RGVwdDtcclxuXHRAVmlld0NoaWxkKCd2aWV3RGVmaW5lJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdEZWZpbmVDb21wb25lbnQgfSkgdmlld0RlZmluZTogVmlld0RlZmluZUNvbXBvbmVudDtcclxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLnZpZXctZHJhd2VyJykgaG9zdENsYXNzID0gdHJ1ZTtcclxuXHRAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0c3Vic2NyaWJlczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgc3ZyOiBTZXJ2aWNlU2VydmljZSxcclxuXHRcdHB1YmxpYyBjdXJyOiBDdXJyZW50U2VydmljZSxcclxuXHRcdHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcblx0XHRwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhclxyXG5cdCkge31cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHQvLyB0aGlzLnN1YnNjcmliZXMucHVzaChcclxuXHRcdC8vIFx0dGhpcy5zdnIuZWRpdFZpZXcuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoXHJcblx0XHQvLyBcdFx0KCkgPT4gKHRoaXMudmlld0RlZmluZS5TZWxlY3RlZENvbHVtbnMgPSB0aGlzLnN2ci5lZGl0Vmlldy5TZWxlY3RlZENvbHVtbnMpXHJcblx0XHQvLyBcdClcclxuXHRcdC8vICk7XHJcblx0fVxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5zdWJzY3JpYmVzLmZvckVhY2godiA9PiB2LnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxuXHRjYW5Nb2RpZnkoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHQhdGhpcy5zdnIuZWRpdFZpZXcudGl0bGVJbnB1dCAmJlxyXG5cdFx0XHR0aGlzLnN2ci5lZGl0Vmlldy5jdXJyZW50ICYmXHJcblx0XHRcdHRoaXMuc3ZyLmVkaXRWaWV3LmN1cnJlbnQuY2FuTW9kaWZ5KHRoaXMuY3Vyci5kYXRhLlVzZXJOYW1lLCB0aGlzLmN1cnIuZGF0YS5EZXB0LkNvZGUpXHJcblx0XHQpO1xyXG5cdH1cclxuXHRvaygpIHtcclxuXHRcdGNvbnN0IHByb2Nlc3MgPSAoKSA9PiB7XHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEuc2VsZWN0ZWRWaWV3ID0gdGhpcy5zdnIuZWRpdFZpZXcuY3VycmVudDtcclxuXHRcdFx0dGhpcy5zdnIucmVmcmVzaERhdGEoKS5zdWJzY3JpYmUodiA9PiB7XHJcblx0XHRcdFx0aWYgKHYub2spIHtcclxuXHRcdFx0XHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrQmFyLm9wZW4odi5lcnJvciwgJ+ehruWumicsIHsgZHVyYXRpb246IDUwMDAgfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH07XHJcblx0XHRpZiAodGhpcy5zdnIuZWRpdFZpZXcubW9kaWZ5KSB7XHJcblx0XHRcdHRoaXMuc3ZyLmVkaXRWaWV3LnNhdmUoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdHByb2Nlc3MoKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRwcm9jZXNzKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZW1vdmUoKSB7XHJcblx0XHRjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcclxuXHRcdFx0d2lkdGg6ICczNjBweCcsXHJcblx0XHRcdGhlaWdodDogJzE4NHB4JyxcclxuXHRcdFx0ZGF0YTogJ+ehruWumuimgeWIoOmZpOinhuWbvlsnICsgdGhpcy5zdnIuZWRpdFZpZXcuY3VycmVudC5OYW1lICsgJ10g5ZCXPycsXHJcblx0XHRcdGF1dG9Gb2N1czogZmFsc2VcclxuXHRcdH0pO1xyXG5cclxuXHRcdGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHR0aGlzLnN2ci5lZGl0Vmlldy5yZW1vdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdGVkaXREb25lKCkge1xyXG5cdFx0dGhpcy5zdnIuZWRpdFZpZXcuZG9uZSgpLnN1YnNjcmliZShcclxuXHRcdFx0KCkgPT4ge30sXHJcblx0XHRcdChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZGVyciA9IElzRHVwbGljYXRlUEtFcnJvcihlcnIuZXJyb3IpO1xyXG5cdFx0XHRcdGlmIChkZXJyLlllcykge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja0Jhci5vcGVuKCflkI3np7Dph43lpI0nLCAn56Gu5a6aJywgeyBkdXJhdGlvbjogNTAwMCB9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja0Jhci5vcGVuKGVyci5lcnJvciwgJ+ehruWumicsIHsgZHVyYXRpb246IDUwMDAgfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxufVxyXG4iXX0=