@ecip/auth
Version:
319 lines • 24 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewChild } from '@angular/core';
import { ModalHelper } from '@delon/theme';
import { SFComponent, } from '@delon/form';
import { STComponent } from "@delon/abc";
import { NzMessageService } from "ng-zorro-antd";
import { AuthDataSourceEditComponent } from "./edit/dsedit.component";
import { DictService, DataSourceService } from "@ecip/service";
var AuthDataSourceComponent = /** @class */ (function () {
function AuthDataSourceComponent(modalHelper, messageService, dataSourceService, dictService) {
var _this = this;
this.modalHelper = modalHelper;
this.messageService = messageService;
this.dataSourceService = dataSourceService;
this.dictService = dictService;
this.url = 'api/v1/sysrDS';
this.selectedIds = [];
this.pageTitle = '数据源管理';
this.params = {};
this.schema = {
properties: {
dsName: {
type: 'string',
title: '数据源名称',
},
dbType: {
type: "string",
title: '数据库类型',
ui: {
widget: 'select',
width: 260,
notFoundContent: '没有数据',
dropdownMatchSelectWidth: false,
asyncData: (/**
* @return {?}
*/
function () { return _this.dictService.getTypeList("dbType"); })
}
},
ip: {
type: 'string',
title: '主机名',
},
dbName: {
type: 'string',
title: '数据库名',
},
},
};
this.columns = [
{
title: '编号',
type: 'checkbox',
index: 'id',
fixed: 'left',
width: '2%',
},
{
title: '数据源名称',
index: 'dsName',
fixed: 'left',
width: '10%'
},
{
title: '数据库类型',
index: 'dbType',
fixed: 'left',
width: '6%',
format: (/**
* @param {?} item
* @return {?}
*/
function (item) {
var e_1, _a;
try {
for (var _b = tslib_1.__values(_this.dbTypeList), _c = _b.next(); !_c.done; _c = _b.next()) {
var pair = _c.value;
if (item.dbType == pair.value) {
return pair.label;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return item.dbType;
})
},
{
title: '数据库名',
index: 'dbName',
fixed: 'left',
width: '8%'
},
{
title: 'URL',
index: 'url',
},
{
title: '主机名',
index: 'ip',
},
{
title: '端口号',
index: 'port',
},
{
title: '用户名',
index: 'username',
},
{
title: '操作',
fixed: 'right',
width: '9%',
buttons: [
{
text: '编辑',
icon: 'edit',
type: 'static',
component: AuthDataSourceEditComponent,
click: (/**
* @param {?} record
* @param {?} modal
* @return {?}
*/
function (record, modal) {
_this.messageService.success("编辑成功");
_this.st.load(-1, _this.params);
}),
acl: { ability: ['datasource:edit'] }
},
{
text: '删除',
icon: 'delete',
type: 'del',
click: (/**
* @param {?} record
* @param {?} modal
* @param {?} component
* @return {?}
*/
function (record, modal, component) {
_this.dataSourceService.deleteById(record.id).subscribe((/**
* @return {?}
*/
function () {
_this.messageService.success("删除成功");
component.load(-1, _this.params);
}));
}),
acl: { ability: ['datasource:remove'] }
}
],
}
];
}
/**
* @return {?}
*/
AuthDataSourceComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.dictService.getTypeList("dbType").subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
_this.dbTypeList = res;
}));
};
//即时监控选中项的ID列表
//即时监控选中项的ID列表
/**
* @param {?} e
* @return {?}
*/
AuthDataSourceComponent.prototype.checkboxChange =
//即时监控选中项的ID列表
/**
* @param {?} e
* @return {?}
*/
function (e) {
var e_2, _a;
this.selectedIds = [];
try {
for (var e_3 = tslib_1.__values(e), e_3_1 = e_3.next(); !e_3_1.done; e_3_1 = e_3.next()) {
var item = e_3_1.value;
this.selectedIds.push(item.id);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (e_3_1 && !e_3_1.done && (_a = e_3.return)) _a.call(e_3);
}
finally { if (e_2) throw e_2.error; }
}
};
//因为[formData]和st的params似乎不能绑定,所以手写了一个绑定数据的方法
//因为[formData]和st的params似乎不能绑定,所以手写了一个绑定数据的方法
/**
* @return {?}
*/
AuthDataSourceComponent.prototype.formBind =
//因为[formData]和st的params似乎不能绑定,所以手写了一个绑定数据的方法
/**
* @return {?}
*/
function () {
this.params = this.sf.value;
};
/**
* @return {?}
*/
AuthDataSourceComponent.prototype.multiDelete = /**
* @return {?}
*/
function () {
var _this = this;
//未选定任何一条
if (this.selectedIds.length == 0) {
this.messageService.warning("未选择任何记录");
}
else {
this.dataSourceService.multiDelete(this.selectedIds).subscribe((/**
* @return {?}
*/
function () {
_this.messageService.success("删除成功");
_this.st.load(-1, _this.params);
}));
}
};
/**
* @return {?}
*/
AuthDataSourceComponent.prototype.create = /**
* @return {?}
*/
function () {
var _this = this;
this.modalHelper.createStatic(AuthDataSourceEditComponent, { isNew: true })
.subscribe((/**
* @return {?}
*/
function () {
_this.messageService.success("创建成功");
_this.st.load(-1, _this.params);
}));
};
AuthDataSourceComponent.decorators = [
{ type: Component, args: [{
selector: 'app-auth-ds',
template: "<page-header [action]=\"phPhAction\">\r\n <ng-template #phPhAction>\r\n <button acl [acl-ability]=\"'datasource:add'\" nz-button nzType=\"primary\" (click)=\"create()\">\u65B0\u5EFA</button>\r\n <!--<button nz-button (click)=\"multiDelete()\">\u5220\u9664</button>-->\r\n </ng-template>\r\n</page-header>\r\n<nz-card>\r\n <sf #sf mode=\"search\" [schema]=\"schema\" (formSubmit)=\"formBind();st.load(1, params);\" (formReset)=\"formBind();st.reset(params)\"></sf>\r\n <st #st [data]=\"url\" [columns]=\"columns\" [scroll]=\"{x:'150%'}\" (change)=\"checkboxChange($event)\" [req]=\"{params: params}\" [page]=\"{front: false}\"></st>\r\n</nz-card>\r\n"
}] }
];
/** @nocollapse */
AuthDataSourceComponent.ctorParameters = function () { return [
{ type: ModalHelper },
{ type: NzMessageService },
{ type: DataSourceService },
{ type: DictService }
]; };
AuthDataSourceComponent.propDecorators = {
st: [{ type: ViewChild, args: ['st',] }],
sf: [{ type: ViewChild, args: ['sf',] }]
};
return AuthDataSourceComponent;
}());
export { AuthDataSourceComponent };
if (false) {
/** @type {?} */
AuthDataSourceComponent.prototype.url;
/** @type {?} */
AuthDataSourceComponent.prototype.selectedIds;
/** @type {?} */
AuthDataSourceComponent.prototype.pageTitle;
/** @type {?} */
AuthDataSourceComponent.prototype.params;
/** @type {?} */
AuthDataSourceComponent.prototype.dbTypeList;
/** @type {?} */
AuthDataSourceComponent.prototype.st;
/** @type {?} */
AuthDataSourceComponent.prototype.sf;
/** @type {?} */
AuthDataSourceComponent.prototype.schema;
/** @type {?} */
AuthDataSourceComponent.prototype.columns;
/**
* @type {?}
* @private
*/
AuthDataSourceComponent.prototype.modalHelper;
/**
* @type {?}
* @private
*/
AuthDataSourceComponent.prototype.messageService;
/** @type {?} */
AuthDataSourceComponent.prototype.dataSourceService;
/**
* @type {?}
* @private
*/
AuthDataSourceComponent.prototype.dictService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVjaXAvYXV0aC8iLCJzb3VyY2VzIjpbInNyYy9kYXRhc291cmNlL2RzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEdBQVksTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFXLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRDtJQW9JRSxpQ0FBb0IsV0FBd0IsRUFDeEIsY0FBK0IsRUFDaEMsaUJBQW1DLEVBQ2xDLFdBQXVCO1FBSDNDLGlCQUcrQztRQUgzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWpJM0MsUUFBRyxHQUFHLGVBQWUsQ0FBQztRQUV0QixnQkFBVyxHQUFZLEVBQUUsQ0FBQztRQUUxQixjQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXBCLFdBQU0sR0FBTSxFQUFHLENBQUM7UUFVaEIsV0FBTSxHQUFhO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLE9BQU87aUJBQ2Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFB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LHFDQUNnQjs7SUFFaEIseUNBMEJFOztJQUVGLDBDQWdGRTs7Ozs7SUFFVSw4Q0FBZ0M7Ozs7O0lBQ2hDLGlEQUF1Qzs7SUFDdkMsb0RBQTBDOzs7OztJQUMxQyw4Q0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01vZGFsSGVscGVyfSBmcm9tICdAZGVsb24vdGhlbWUnO1xyXG5pbXBvcnQge1NGQ29tcG9uZW50LCBTRlNjaGVtYSx9IGZyb20gJ0BkZWxvbi9mb3JtJztcclxuaW1wb3J0IHtTVENvbHVtbiwgU1RDb21wb25lbnR9IGZyb20gXCJAZGVsb24vYWJjXCI7XHJcbmltcG9ydCB7TnpNZXNzYWdlU2VydmljZX0gZnJvbSBcIm5nLXpvcnJvLWFudGRcIjtcclxuaW1wb3J0IHtBdXRoRGF0YVNvdXJjZUVkaXRDb21wb25lbnR9IGZyb20gXCIuL2VkaXQvZHNlZGl0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEaWN0U2VydmljZSwgRGF0YVNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiQGVjaXAvc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYXV0aC1kcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RzLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhEYXRhU291cmNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICB1cmwgPSAnYXBpL3YxL3N5c3JEUyc7XHJcblxyXG4gIHNlbGVjdGVkSWRzOnN0cmluZ1tdID0gW107XHJcblxyXG4gIHBhZ2VUaXRsZSA9ICfmlbDmja7mupDnrqHnkIYnO1xyXG5cclxuICBwYXJhbXM6YW55PSB7IH07XHJcblxyXG4gIGRiVHlwZUxpc3Q6W2FueV07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3N0JylcclxuICBzdDogU1RDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NmJylcclxuICBzZjogU0ZDb21wb25lbnQ7XHJcblxyXG4gIHNjaGVtYTogU0ZTY2hlbWEgPSB7XHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgIGRzTmFtZToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5pWw5o2u5rqQ5ZCN56ewJyxcclxuICAgICAgfSxcclxuICAgICAgZGJUeXBlOiB7XHJcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcclxuICAgICAgICB0aXRsZTogJ+aVsOaNruW6k+exu+WeiycsXHJcbiAgICAgICAgdWk6IHtcclxuICAgICAgICAgIHdpZGdldDogJ3NlbGVjdCcsXHJcbiAgICAgICAgICB3aWR0aDogMjYwLFxyXG4gICAgICAgICAgbm90Rm91bmRDb250ZW50OiAn5rKh5pyJ5pWw5o2uJyxcclxuICAgICAgICAgIGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDogZmFsc2UsXHJcbiAgICAgICAgICBhc3luY0RhdGE6KCk9PnRoaXMuZGljdFNlcnZpY2UuZ2V0VHlwZUxpc3QoXCJkYlR5cGVcIilcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGlwOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfkuLvmnLrlkI0nLFxyXG4gICAgICB9LFxyXG4gICAgICBkYk5hbWU6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+aVsOaNruW6k+WQjScsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGNvbHVtbnM6IFNUQ29sdW1uW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiAn57yW5Y+3JyxcclxuICAgICAgdHlwZTonY2hlY2tib3gnLFxyXG4gICAgICBpbmRleDonaWQnLFxyXG4gICAgICBmaXhlZDonbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAnMiUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICfmlbDmja7mupDlkI3np7AnLFxyXG4gICAgICBpbmRleDogJ2RzTmFtZScsXHJcbiAgICAgIGZpeGVkOidsZWZ0JyxcclxuICAgICAgd2lkdGg6ICcxMCUnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+aVsOaNruW6k+exu+WeiycsXHJcbiAgICAgIGluZGV4OiAnZGJUeXBlJyxcclxuICAgICAgZml4ZWQ6J2xlZnQnLFxyXG4gICAgICB3aWR0aDogJzYlJyxcclxuICAgICAgZm9ybWF0OihpdGVtOmFueSk9PntcclxuICAgICAgICBmb3IobGV0IHBhaXIgb2YgdGhpcy5kYlR5cGVMaXN0KXtcclxuICAgICAgICAgIGlmKGl0ZW0uZGJUeXBlID09IHBhaXIudmFsdWUpe1xyXG4gICAgICAgICAgICByZXR1cm4gcGFpci5sYWJlbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZGJUeXBlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+aVsOaNruW6k+WQjScsXHJcbiAgICAgIGluZGV4OiAnZGJOYW1lJyxcclxuICAgICAgZml4ZWQ6J2xlZnQnLFxyXG4gICAgICB3aWR0aDogJzglJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICdVUkwnLFxyXG4gICAgICBpbmRleDogJ3VybCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+S4u+acuuWQjScsXHJcbiAgICAgIGluZGV4OiAnaXAnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICfnq6/lj6Plj7cnLFxyXG4gICAgICBpbmRleDogJ3BvcnQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICfnlKjmiLflkI0nLFxyXG4gICAgICBpbmRleDogJ3VzZXJuYW1lJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiAn5pON5L2cJyxcclxuICAgICAgZml4ZWQ6J3JpZ2h0JyxcclxuICAgICAgd2lkdGg6ICc5JScsXHJcbiAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZXh0OiAn57yW6L6RJyxcclxuICAgICAgICAgIGljb246ICdlZGl0JyxcclxuICAgICAgICAgIHR5cGU6ICdzdGF0aWMnLFxyXG4gICAgICAgICAgY29tcG9uZW50OiBBdXRoRGF0YVNvdXJjZUVkaXRDb21wb25lbnQsXHJcbiAgICAgICAgICBjbGljazogKHJlY29yZCwgbW9kYWwpID0+e1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCLnvJbovpHmiJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuc3QubG9hZCgtMSwgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFjbDogeyBhYmlsaXR5OiBbJ2RhdGFzb3VyY2U6ZWRpdCddIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRleHQ6ICfliKDpmaQnLFxyXG4gICAgICAgICAgaWNvbjogJ2RlbGV0ZScsXHJcbiAgICAgICAgICB0eXBlOiAnZGVsJyxcclxuICAgICAgICAgIGNsaWNrOiAocmVjb3JkLCBtb2RhbCwgY29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlQnlJZChyZWNvcmQuaWQpLnN1YnNjcmliZSgoKT0+e1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn1wiKTtcclxuICAgICAgICAgICAgICBjb21wb25lbnQubG9hZCgtMSwgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhY2w6IHsgYWJpbGl0eTogWydkYXRhc291cmNlOnJlbW92ZSddIH1cclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbEhlbHBlcjogTW9kYWxIZWxwZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTpOek1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBkYXRhU291cmNlU2VydmljZTpEYXRhU291cmNlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGRpY3RTZXJ2aWNlOkRpY3RTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGljdFNlcnZpY2UuZ2V0VHlwZUxpc3QoXCJkYlR5cGVcIikuc3Vic2NyaWJlKHJlcz0+e1xyXG4gICAgICB0aGlzLmRiVHlwZUxpc3QgPSByZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy/ljbPml7bnm5HmjqfpgInkuK3pobnnmoRJROWIl+ihqFxyXG4gIGNoZWNrYm94Q2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICBmb3IobGV0IGl0ZW0gb2YgZSl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChpdGVtLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8v5Zug5Li6W2Zvcm1EYXRhXeWSjHN055qEcGFyYW1z5Ly85LmO5LiN6IO957uR5a6a77yM5omA5Lul5omL5YaZ5LqG5LiA5Liq57uR5a6a5pWw5o2u55qE5pa55rOVXHJcbiAgZm9ybUJpbmQoKSB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHRoaXMuc2YudmFsdWU7XHJcbiAgfVxyXG5cclxuICBtdWx0aURlbGV0ZSgpe1xyXG4gICAgLy/mnKrpgInlrprku7vkvZXkuIDmnaFcclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRJZHMubGVuZ3RoPT0wKXtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS53YXJuaW5nKFwi5pyq6YCJ5oup5Lu75L2V6K6w5b2VXCIpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UubXVsdGlEZWxldGUodGhpcy5zZWxlY3RlZElkcykuc3Vic2NyaWJlKCgpPT57XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5YqfXCIpO1xyXG4gICAgICAgIHRoaXMuc3QubG9hZCgtMSwgdGhpcy5wYXJhbXMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpe1xyXG4gICAgdGhpcy5tb2RhbEhlbHBlci5jcmVhdGVTdGF0aWMoQXV0aERhdGFTb3VyY2VFZGl0Q29tcG9uZW50LCB7aXNOZXc6dHJ1ZX0pXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcIuWIm+W7uuaIkOWKn1wiKTtcclxuICAgICAgICB0aGlzLnN0LmxvYWQoLTEsIHRoaXMucGFyYW1zKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19