dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
201 lines • 19.1 kB
JavaScript
/**
* @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=