@ecip/auth
Version:
249 lines • 18.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, ViewChild } from '@angular/core';
import { NzMessageService, NzModalRef } from 'ng-zorro-antd';
import { SFComponent } from '@delon/form';
import { DictService, DataSourceService } from "@ecip/service";
import { map } from "rxjs/operators";
var AuthDataSourceEditComponent = /** @class */ (function () {
function AuthDataSourceEditComponent(modal, dataSourceService, messageService, dictService) {
var _this = this;
this.modal = modal;
this.dataSourceService = dataSourceService;
this.messageService = messageService;
this.dictService = dictService;
this.title = '编辑数据源';
this.schema = {
properties: {
dsName: {
type: 'string',
title: '数据源名称',
ui: {
//异步验证:判断是否已经存在相同数据源名称的记录,
//如果是修改数据源,和自己原本的数据源名称相同则忽略
validator: (/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.dataSourceService.existsDsName(value)
.pipe(map((/**
* @param {?} res
* @return {?}
*/
function (res) { return (res && (_this.isNew || _this.record.dsName != value)) ? [{ keyword: 'required', message: '数据源名已存在' }] : []; }))); })
}
},
dbType: {
type: "string",
title: '数据库类型',
default: '',
ui: {
widget: 'select'
}
},
dbName: {
type: 'string',
title: '数据库名'
},
url: {
type: 'string',
title: '协议(URL前缀)'
},
ip: {
type: 'string',
title: '主机(IP或域名)'
},
port: {
type: 'number',
title: '端口号',
ui: {
widget: 'string',
}
},
username: {
type: 'string',
title: '用户名'
},
password: {
type: 'string',
title: '密码',
ui: {
widget: 'string',
type: 'password'
}
},
},
required: ['dsName', 'dbType', 'dbName', 'url', 'ip', 'port', 'username', 'password'],
};
this.ui = {
'*': {
grid: { span: 18, offset: 2 },
},
};
}
/**
* @return {?}
*/
AuthDataSourceEditComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (this.isNew === true) {
this.title = '新建数据源';
}
};
/**
* @return {?}
*/
AuthDataSourceEditComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
//异步渲染下拉框
this.dictService.getTypeList('dbType').subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
_this.sf.schema.properties.dbType.enum = [{ value: '', label: '请选择' }].concat(res);
_this.sf.refreshSchema();
}));
};
/**
* @param {?} dataSource
* @return {?}
*/
AuthDataSourceEditComponent.prototype.submit = /**
* @param {?} dataSource
* @return {?}
*/
function (dataSource) {
if (this.isNew === true) {
this.create(dataSource);
}
else {
this.update(dataSource);
}
};
/**
* @param {?} dataSource
* @return {?}
*/
AuthDataSourceEditComponent.prototype.create = /**
* @param {?} dataSource
* @return {?}
*/
function (dataSource) {
var _this = this;
this.dataSourceService.post(dataSource).subscribe((/**
* @return {?}
*/
function () {
_this.modal.close(true);
}));
};
/**
* @param {?} dataSource
* @return {?}
*/
AuthDataSourceEditComponent.prototype.update = /**
* @param {?} dataSource
* @return {?}
*/
function (dataSource) {
var _this = this;
this.dataSourceService.put(this.record.id, dataSource).subscribe((/**
* @return {?}
*/
function () {
_this.modal.close(true);
}));
};
/**
* @param {?} dataSource
* @return {?}
*/
AuthDataSourceEditComponent.prototype.testConnection = /**
* @param {?} dataSource
* @return {?}
*/
function (dataSource) {
var _this = this;
this.dataSourceService.testConnection(dataSource).subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
if (res.body === true) {
_this.messageService.success("连接成功");
}
else {
_this.messageService.error("连接失败");
}
}));
};
/**
* @return {?}
*/
AuthDataSourceEditComponent.prototype.close = /**
* @return {?}
*/
function () {
this.modal.destroy();
};
AuthDataSourceEditComponent.decorators = [
{ type: Component, args: [{
selector: 'app-auth-ds-edit',
template: "<div class=\"modal-header\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n</div>\r\n<nz-spin *ngIf=\"!isNew&&!record\"></nz-spin>\r\n<sf #sf mode=\"default\" [schema]=\"schema\" [ui]=\"ui\" [formData]=\"record\" button=\"none\">\r\n <div class=\"modal-footer\">\r\n <button nz-button type=\"button\" nzType=\"primary\" (click)=\"testConnection(sf.value)\" [disabled]=\"!sf.valid\" [nzLoading]=\"dataSourceService.http.loading\">\u6D4B\u8BD5\u8FDE\u63A5</button>\r\n <button nz-button type=\"submit\" nzType=\"primary\" (click)=\"submit(sf.value)\" [disabled]=\"!sf.valid\" [nzLoading]=\"dataSourceService.http.loading\">\u4FDD\u5B58</button>\r\n <button nz-button type=\"button\" (click)=\"close()\">\u53D6\u6D88</button>\r\n </div>\r\n</sf>\r\n"
}] }
];
/** @nocollapse */
AuthDataSourceEditComponent.ctorParameters = function () { return [
{ type: NzModalRef },
{ type: DataSourceService },
{ type: NzMessageService },
{ type: DictService }
]; };
AuthDataSourceEditComponent.propDecorators = {
sf: [{ type: ViewChild, args: ['sf',] }],
record: [{ type: Input }],
isNew: [{ type: Input }]
};
return AuthDataSourceEditComponent;
}());
export { AuthDataSourceEditComponent };
if (false) {
/** @type {?} */
AuthDataSourceEditComponent.prototype.sf;
/** @type {?} */
AuthDataSourceEditComponent.prototype.record;
/** @type {?} */
AuthDataSourceEditComponent.prototype.isNew;
/** @type {?} */
AuthDataSourceEditComponent.prototype.title;
/** @type {?} */
AuthDataSourceEditComponent.prototype.schema;
/** @type {?} */
AuthDataSourceEditComponent.prototype.ui;
/**
* @type {?}
* @private
*/
AuthDataSourceEditComponent.prototype.modal;
/** @type {?} */
AuthDataSourceEditComponent.prototype.dataSourceService;
/**
* @type {?}
* @private
*/
AuthDataSourceEditComponent.prototype.messageService;
/**
* @type {?}
* @private
*/
AuthDataSourceEditComponent.prototype.dictService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNlZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlY2lwL2F1dGgvIiwic291cmNlcyI6WyJzcmMvZGF0YXNvdXJjZS9lZGl0L2RzZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkM7SUErRUUscUNBQ1UsS0FBaUIsRUFDbEIsaUJBQW1DLEVBQ2xDLGNBQStCLEVBQy9CLFdBQXVCO1FBSmpDLGlCQUtJO1FBSk0sVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXBFakMsVUFBSyxHQUFDLE9BQU8sQ0FBQztRQUVkLFdBQU0sR0FBYTtZQUNqQixVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxPQUFPO29CQUNkLEVBQUUsRUFBQzs7O3dCQUdELFNBQVM7Ozs7d0JBQUUsVUFBQyxLQUFVLElBQUssT0FBQSxLQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQzs2QkFDbEUsSUFBSSxDQUFFLEdBQUc7Ozs7d0JBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUksQ0FBQyxLQUFLLElBQUksS0FBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBeEcsQ0FBd0csRUFBQyxDQUFDLEVBRG5HLENBQ21HLENBQUE7cUJBQy9IO2lCQUNGO2dCQUNELE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsT0FBTztvQkFDZCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxFQUFFLEVBQUU7d0JBQ0YsTUFBTSxFQUFFLFFBQVE7cUJBQ2pCO2lCQUNGO2dCQUNELE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsTUFBTTtpQkFDZDtnQkFDRCxHQUFHLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFdBQVc7aUJBQ25CO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsV0FBVztpQkFDbkI7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxLQUFLO29CQUNaLEVBQUUsRUFBQzt3QkFDRCxNQUFNLEVBQUUsUUFBUTtxQkFDakI7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxLQUFLO2lCQUNiO2dCQUNELFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxFQUFFLEVBQUM7d0JBQ0QsTUFBTSxFQUFFLFFBQVE7d0JBQ2hCLElBQUksRUFBRSxVQUFVO3FCQUNqQjtpQkFDRjthQUNGO1lBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQztTQUUvRSxDQUFDO1FBRUYsT0FBRSxHQUFlO1lBQ2YsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTthQUM5QjtTQUNGLENBQUM7SUFPQyxDQUFDOzs7O0lBRUosOENBQVE7OztJQUFSO1FBQ0UsSUFBRyxJQUFJLENBQUMsS0FBSyxLQUFHLElBQUksRUFBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFDLE9BQU8sQ0FBQztTQUNwQjtJQUNILENBQUM7Ozs7SUFFRCxxREFBZTs7O0lBQWY7UUFBQSxpQkFNQztRQUxDLFNBQVM7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxHQUFvQjtZQUNwRSxLQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUUsS0FBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBR0QsNENBQU07Ozs7SUFBTixVQUFPLFVBQWM7UUFDbkIsSUFBRyxJQUFJLENBQUMsS0FBSyxLQUFHLElBQUksRUFBQztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pCO2FBQUk7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw0Q0FBTTs7OztJQUFOLFVBQU8sVUFBZTtRQUF0QixpQkFJQztRQUhDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUzs7O1FBQUM7WUFDaEQsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELDRDQUFNOzs7O0lBQU4sVUFBTyxVQUFlO1FBQXRCLGlCQUlDO1FBSEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTOzs7UUFBQztZQUMvRCxLQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsb0RBQWM7Ozs7SUFBZCxVQUFlLFVBQWU7UUFBOUIsaUJBUUM7UUFQQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLEdBQUc7WUFDN0QsSUFBRyxHQUFHLENBQUMsSUFBSSxLQUFHLElBQUksRUFBQztnQkFDakIsS0FBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckM7aUJBQUk7Z0JBQ0gsS0FBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCwyQ0FBSzs7O0lBQUw7UUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2dCQXJJRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsdXdCQUFzQztpQkFDdkM7Ozs7Z0JBUjBCLFVBQVU7Z0JBRWYsaUJBQWlCO2dCQUY5QixnQkFBZ0I7Z0JBRWhCLFdBQVc7OztxQkFTakIsU0FBUyxTQUFDLElBQUk7eUJBR2QsS0FBSzt3QkFHTCxLQUFLOztJQTJIUixrQ0FBQztDQUFBLEFBdklELElBdUlDO1NBbklZLDJCQUEyQjs7O0lBRXRDLHlDQUNlOztJQUVmLDZDQUNhOztJQUViLDRDQUNnQjs7SUFFaEIsNENBQWM7O0lBRWQsNkNBc0RFOztJQUVGLHlDQUlFOzs7OztJQUdBLDRDQUF5Qjs7SUFDekIsd0RBQTBDOzs7OztJQUMxQyxxREFBdUM7Ozs7O0lBQ3ZDLGtEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSwgTnpNb2RhbFJlZiB9IGZyb20gJ25nLXpvcnJvLWFudGQnO1xyXG5pbXBvcnQgeyBTRkNvbXBvbmVudCwgU0ZTY2hlbWEsIFNGVUlTY2hlbWEgfSBmcm9tICdAZGVsb24vZm9ybSc7XHJcbmltcG9ydCB7IERpY3RTZXJ2aWNlLCBEYXRhU291cmNlU2VydmljZSB9IGZyb20gXCJAZWNpcC9zZXJ2aWNlXCI7XHJcbmltcG9ydCB7bWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWF1dGgtZHMtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RzZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoRGF0YVNvdXJjZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXR7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NmJylcclxuICBzZjpTRkNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICByZWNvcmQ6IGFueSA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXNOZXc6IGJvb2xlYW4gO1xyXG5cclxuICB0aXRsZT0n57yW6L6R5pWw5o2u5rqQJztcclxuXHJcbiAgc2NoZW1hOiBTRlNjaGVtYSA9IHtcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgZHNOYW1lOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfmlbDmja7mupDlkI3np7AnLFxyXG4gICAgICAgIHVpOntcclxuICAgICAgICAgIC8v5byC5q2l6aqM6K+B77ya5Yik5pat5piv5ZCm5bey57uP5a2Y5Zyo55u45ZCM5pWw5o2u5rqQ5ZCN56ew55qE6K6w5b2V77yMXHJcbiAgICAgICAgICAvL+WmguaenOaYr+S/ruaUueaVsOaNrua6kO+8jOWSjOiHquW3seWOn+acrOeahOaVsOaNrua6kOWQjeensOebuOWQjOWImeW/veeVpVxyXG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gdGhpcy5kYXRhU291cmNlU2VydmljZS5leGlzdHNEc05hbWUodmFsdWUpXHJcbiAgICAgICAgICAgIC5waXBlKCBtYXAocmVzID0+IChyZXMgJiYgKHRoaXMuaXNOZXcgfHwgdGhpcy5yZWNvcmQuZHNOYW1lIT12YWx1ZSkpID8gWyB7IGtleXdvcmQ6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICfmlbDmja7mupDlkI3lt7LlrZjlnKgnfSBdIDogW10pKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGJUeXBlOiB7XHJcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcclxuICAgICAgICB0aXRsZTogJ+aVsOaNruW6k+exu+WeiycsXHJcbiAgICAgICAgZGVmYXVsdDogJycsXHJcbiAgICAgICAgdWk6IHtcclxuICAgICAgICAgIHdpZGdldDogJ3NlbGVjdCdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRiTmFtZToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5pWw5o2u5bqT5ZCNJ1xyXG4gICAgICB9LFxyXG4gICAgICB1cmw6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+WNj+iurihVUkzliY3nvIApJ1xyXG4gICAgICB9LFxyXG4gICAgICBpcDoge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5Li75py6KElQ5oiW5Z+f5ZCNKSdcclxuICAgICAgfSxcclxuICAgICAgcG9ydDoge1xyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIHRpdGxlOiAn56uv5Y+j5Y+3JyxcclxuICAgICAgICB1aTp7XHJcbiAgICAgICAgICB3aWRnZXQ6ICdzdHJpbmcnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdXNlcm5hbWU6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+eUqOaIt+WQjSdcclxuICAgICAgfSxcclxuICAgICAgcGFzc3dvcmQ6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+WvhueggScsXHJcbiAgICAgICAgdWk6e1xyXG4gICAgICAgICAgd2lkZ2V0OiAnc3RyaW5nJyxcclxuICAgICAgICAgIHR5cGU6ICdwYXNzd29yZCdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgcmVxdWlyZWQ6IFsnZHNOYW1lJywnZGJUeXBlJywnZGJOYW1lJywndXJsJywnaXAnLCdwb3J0JywndXNlcm5hbWUnLCdwYXNzd29yZCddLFxyXG5cclxuICB9O1xyXG5cclxuICB1aTogU0ZVSVNjaGVtYSA9IHtcclxuICAgICcqJzoge1xyXG4gICAgICBncmlkOiB7IHNwYW46IDE4LCBvZmZzZXQ6IDIgfSxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1vZGFsOiBOek1vZGFsUmVmLFxyXG4gICAgcHVibGljIGRhdGFTb3VyY2VTZXJ2aWNlOkRhdGFTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTpOek1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWN0U2VydmljZTpEaWN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmlzTmV3PT09dHJ1ZSl7XHJcbiAgICAgIHRoaXMudGl0bGU9J+aWsOW7uuaVsOaNrua6kCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL+W8guatpea4suafk+S4i+aLieahhlxyXG4gICAgdGhpcy5kaWN0U2VydmljZS5nZXRUeXBlTGlzdCgnZGJUeXBlJykuc3Vic2NyaWJlKChyZXM6e3ZhbHVlLCBsYWJlbH1bXSk9PntcclxuICAgICAgdGhpcy5zZi5zY2hlbWEucHJvcGVydGllcy5kYlR5cGUuZW51bSA9IFt7dmFsdWU6JycsIGxhYmVsOifor7fpgInmi6knfV0uY29uY2F0KHJlcyk7XHJcbiAgICAgIHRoaXMuc2YucmVmcmVzaFNjaGVtYSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3VibWl0KGRhdGFTb3VyY2U6YW55KXtcclxuICAgIGlmKHRoaXMuaXNOZXc9PT10cnVlKXtcclxuICAgICAgdGhpcy5jcmVhdGUoZGF0YVNvdXJjZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy51cGRhdGUoZGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoZGF0YVNvdXJjZTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnBvc3QoZGF0YVNvdXJjZSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5tb2RhbC5jbG9zZSh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGRhdGFTb3VyY2U6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5wdXQodGhpcy5yZWNvcmQuaWQsIGRhdGFTb3VyY2UpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kYWwuY2xvc2UodHJ1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRlc3RDb25uZWN0aW9uKGRhdGFTb3VyY2U6IGFueSl7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnRlc3RDb25uZWN0aW9uKGRhdGFTb3VyY2UpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZihyZXMuYm9keT09PXRydWUpe1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcIui/nuaOpeaIkOWKn1wiKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcIui/nuaOpeWksei0pVwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMubW9kYWwuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19