UNPKG

@ecip/application

Version:
218 lines 22.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component } from '@angular/core'; import { NzModalRef, NzMessageService } from 'ng-zorro-antd'; import { _HttpClient } from '@delon/theme'; import { FormBuilder, Validators } from "@angular/forms"; import { Observable } from 'rxjs'; import { CacheService } from "@delon/cache"; var ApplicationAppsEditComponent = /** @class */ (function () { function ApplicationAppsEditComponent(modal, msgSrv, http, fb, cacheService) { var _this = this; this.modal = modal; this.msgSrv = msgSrv; this.http = http; this.fb = fb; this.cacheService = cacheService; this.record = {}; this.stateList = this.cacheService.get("api/dict/type/enableState"); this.typeAppList = this.cacheService.get("api/dict/type/typeApp"); this.authTypeList = this.cacheService.get("api/dict/type/authType"); this.appNameAsyncValidator = (/** * @param {?} control * @return {?} */ function (control) { return Observable.create((/** * @param {?} observer * @return {?} */ function (observer) { if (!control.value) { observer.next(null); observer.complete(); return; } _this.http.get("api/v1/sysrRegisterApp/checkAppName", { appName: control.value, appId: _this.record.appId }).subscribe((/** * @param {?} res * @return {?} */ function (res) { if (res.valid === true) { observer.next(null); } else { observer.next({ error: true, duplicated: true }); } observer.complete(); })); })); }); } /** * @return {?} */ ApplicationAppsEditComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.typeAppList.subscribe((/** * @param {?} res * @return {?} */ function (res) { if (res) { _this.typeApp = res[0]; } })); this.authTypeList.subscribe((/** * @param {?} res * @return {?} */ function (res) { if (res) { _this.typeAuth = res[0]; } })); this.form = this.fb.group({ appId: [null, []], appName: [null, [Validators.required], [this.appNameAsyncValidator]], typeApp: [this.typeApp ? this.typeApp.value : '', [Validators.required]], typeAuth: [this.typeAuth ? this.typeAuth.value : '', [Validators.required]], remark: [null, []], createDate: [null, []], flagIp: [0, []], flagLLog: [0, []], flagLogOpt: [0, []], status: [1, [Validators.required]], }); if (!this.record.appId) { return; } this.http.get("api/v1/sysrRegisterApp/" + this.record.appId).subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.form.patchValue(res); _this.i = res; })); }; /** * @param {?} c1 * @param {?} c2 * @return {?} */ ApplicationAppsEditComponent.prototype.compareNumStr = /** * @param {?} c1 * @param {?} c2 * @return {?} */ function (c1, c2) { return c1 == c2; }; /** * @return {?} */ ApplicationAppsEditComponent.prototype.submit = /** * @return {?} */ function () { var _this = this; for (var i in this.form.controls) { this.form.controls[i].markAsDirty(); this.form.controls[i].updateValueAndValidity(); } if (this.form.invalid) return; if (!this.record.appId) { //新增 this.http.post("api/v1/sysrRegisterApp", this.form.value).subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.msgSrv.success('保存成功'); _this.modal.close(true); })); return; } //修改 this.http.put("api/v1/sysrRegisterApp/" + this.record.appId, this.form.value).subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.msgSrv.success('保存成功'); _this.modal.close(true); })); }; /** * @return {?} */ ApplicationAppsEditComponent.prototype.close = /** * @return {?} */ function () { this.modal.destroy(); }; ApplicationAppsEditComponent.decorators = [ { type: Component, args: [{ selector: 'app-application-apps-edit', template: "<div class=\"modal-header\">\r\n <div *ngIf=\"!record.appId\" class=\"modal-title\">\u65B0\u589E\u5E94\u7528\u4FE1\u606F</div>\r\n <div *ngIf=\"record.appId\" class=\"modal-title\">\u7F16\u8F91\u5E94\u7528\u4FE1\u606F</div>\r\n</div>\r\n<!--<nz-spin *ngIf=\"!i && !record.id\" class=\"modal-spin\"></nz-spin>-->\r\n<form *ngIf=\"!record.appId || record.appId && i\" nz-form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\r\n <div nz-row>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzRequired nzFor=\"appName\">\u5E94\u7528\u540D</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <input nz-input formControlName=\"appName\">\r\n <nz-form-explain *ngIf=\"form.get('appName').dirty && form.get('appName').errors\">\r\n \u7CFB\u7EDF\u540D\u4E0D\u5408\u6CD5\uFF08\u4E0D\u53EF\u4E3A\u7A7A\u6216\u91CD\u540D\uFF09\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzRequired nzFor=\"typeApp\">\u5E94\u7528\u7CFB\u7EDF\u7C7B\u578B</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <nz-select [compareWith]=\"compareNumStr\" nzAllowClear formControlName=\"typeApp\">\r\n <nz-option *ngFor=\"let typeApp of typeAppList | async\" [nzValue]=\"typeApp.value\" [nzLabel]=\"typeApp.label\"></nz-option>\r\n </nz-select>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzFor=\"flagIp\">\u5B89\u5168\u6027IP\u542F\u7528\u6807\u8BB0</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <nz-radio-group formControlName=\"flagIp\">\r\n <label nz-radio *ngFor=\"let state of stateList | async\" [nzValue]=\"state.value\">{{state.label}}</label>\r\n </nz-radio-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzRequired nzFor=\"typeAuth\">\u8BA4\u8BC1\u65B9\u5F0F</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <nz-select [compareWith]=\"compareNumStr\" nzAllowClear formControlName=\"typeAuth\">\r\n <nz-option *ngFor=\"let authType of authTypeList | async\" [nzValue]=\"authType.value\" [nzLabel]=\"authType.label\"></nz-option>\r\n </nz-select>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzFor=\"flagLLog\">\u767B\u5F55\u65E5\u5FD7\u542F\u7528\u6807\u8BB0</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <nz-radio-group formControlName=\"flagLLog\">\r\n <label nz-radio *ngFor=\"let state of stateList | async\" [nzValue]=\"state.value\">{{state.label}}</label>\r\n </nz-radio-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzFor=\"remark\">\u5907\u6CE8\u8BF4\u660E</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <input nz-input formControlName=\"remark\">\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzFor=\"flagLogOpt\">\u64CD\u4F5C\u65E5\u5FD7\u542F\u7528\u6807\u8BB0</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\" nzHasFeedback>\r\n <nz-radio-group formControlName=\"flagLogOpt\">\r\n <label nz-radio *ngFor=\"let state of stateList | async\" [nzValue]=\"state.value\">{{state.label}}</label>\r\n </nz-radio-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan=\"12\">\r\n <nz-form-item>\r\n <nz-form-label nzXs=\"24\" nzSm=\"7\" nzRequired nzFor=\"status\">\u542F\u7528\u72B6\u6001</nz-form-label>\r\n <nz-form-control nzXs=\"24\" nzSm=\"12\" nzMd=\"10\">\r\n <nz-radio-group formControlName=\"status\">\r\n <label nz-radio *ngFor=\"let state of stateList | async\" [nzValue]=\"state.value\">{{state.label}}</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf=\"form.get('status').dirty && form.get('status').errors\">\r\n \u8BF7\u9009\u62E9\u542F\u7528\u72B6\u6001\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <button nz-button type=\"button\" (click)=\"close()\">\u5173\u95ED</button>\r\n <button nz-button type=\"submit\" [disabled]=\"!form.valid\" nzType=\"primary\" [nzLoading]=\"http.loading\">\u4FDD\u5B58</button>\r\n </div>\r\n</form>\r\n\r\n" }] } ]; /** @nocollapse */ ApplicationAppsEditComponent.ctorParameters = function () { return [ { type: NzModalRef }, { type: NzMessageService }, { type: _HttpClient }, { type: FormBuilder }, { type: CacheService } ]; }; return ApplicationAppsEditComponent; }()); export { ApplicationAppsEditComponent }; if (false) { /** @type {?} */ ApplicationAppsEditComponent.prototype.record; /** @type {?} */ ApplicationAppsEditComponent.prototype.i; /** @type {?} */ ApplicationAppsEditComponent.prototype.form; /** @type {?} */ ApplicationAppsEditComponent.prototype.stateList; /** @type {?} */ ApplicationAppsEditComponent.prototype.typeAppList; /** @type {?} */ ApplicationAppsEditComponent.prototype.authTypeList; /** @type {?} */ ApplicationAppsEditComponent.prototype.typeApp; /** @type {?} */ ApplicationAppsEditComponent.prototype.typeAuth; /** @type {?} */ ApplicationAppsEditComponent.prototype.appNameAsyncValidator; /** * @type {?} * @private */ ApplicationAppsEditComponent.prototype.modal; /** @type {?} */ ApplicationAppsEditComponent.prototype.msgSrv; /** @type {?} */ ApplicationAppsEditComponent.prototype.http; /** * @type {?} * @private */ ApplicationAppsEditComponent.prototype.fb; /** * @type {?} * @private */ ApplicationAppsEditComponent.prototype.cacheService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWNpcC9hcHBsaWNhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9hcHBzL2VkaXQvZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFhLFVBQVUsRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQVcsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUM7SUFlRSxzQ0FDVSxLQUFpQixFQUNsQixNQUF3QixFQUN4QixJQUFpQixFQUNoQixFQUFlLEVBQ2YsWUFBMEI7UUFMcEMsaUJBTUk7UUFMTSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBZnBDLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFHakIsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0QsZ0JBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQW1EL0QsMEJBQXFCOzs7O1FBQUcsVUFBQyxPQUFvQjtZQUMzQyxPQUFBLFVBQVUsQ0FBQyxNQUFNOzs7O1lBQUMsVUFBQyxRQUFvQztnQkFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEIsT0FBTztpQkFDUjtnQkFDRCxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsRUFDakQsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVM7Ozs7Z0JBQUMsVUFBQyxHQUFPO29CQUN0RSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO3dCQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNyQjt5QkFBTTt3QkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztxQkFDbEQ7b0JBQ0QsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLEVBQUMsQ0FBQztZQUNMLENBQUMsRUFBQztRQWZGLENBZUUsRUFBQztJQXhERixDQUFDOzs7O0lBRUosK0NBQVE7OztJQUFSO1FBQUEsaUJBZ0NDO1FBL0JDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsR0FBRztZQUM1QixJQUFJLEdBQUcsRUFBRTtnQkFDUCxLQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QjtRQUNILENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxHQUFHO1lBQzdCLElBQUksR0FBRyxFQUFFO2dCQUNQLEtBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDcEUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEIsVUFBVSxFQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNyQixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2YsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsNEJBQTBCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsR0FBRztZQUN4RSxLQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixLQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsb0RBQWE7Ozs7O0lBQWIsVUFBYyxFQUFPLEVBQUUsRUFBTztRQUM1QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7OztJQW9CRCw2Q0FBTTs7O0lBQU47UUFBQSxpQkFtQkM7UUFsQkMsS0FBSyxJQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ2hEO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN0QixJQUFJO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsVUFBQSxHQUFHO2dCQUNyRSxLQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsQ0FBQyxFQUFDLENBQUM7WUFDSCxPQUFPO1NBQ1I7UUFDRCxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsNEJBQTBCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsR0FBRztZQUN6RixLQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixLQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCw0Q0FBSzs7O0lBQUw7UUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2dCQXRHRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsbXpLQUFvQztpQkFDckM7Ozs7Z0JBVFEsVUFBVTtnQkFBRSxnQkFBZ0I7Z0JBQzVCLFdBQVc7Z0JBQ1osV0FBVztnQkFFWCxZQUFZOztJQXlHcEIsbUNBQUM7Q0FBQSxBQXZHRCxJQXVHQztTQW5HWSw0QkFBNEI7OztJQUN2Qyw4Q0FBaUI7O0lBQ2pCLHlDQUFPOztJQUNQLDRDQUFnQjs7SUFDaEIsaURBQStEOztJQUMvRCxtREFBNkQ7O0lBQzdELG9EQUErRDs7SUFFL0QsK0NBQWE7O0lBQ2IsZ0RBQWM7O0lBZ0RkLDZEQWdCSzs7Ozs7SUE3REgsNkNBQXlCOztJQUN6Qiw4Q0FBK0I7O0lBQy9CLDRDQUF3Qjs7Ozs7SUFDeEIsMENBQXVCOzs7OztJQUN2QixvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE56TW9kYWxSZWYsIE56TWVzc2FnZVNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkJztcclxuaW1wb3J0IHsgX0h0dHBDbGllbnQgfSBmcm9tICdAZGVsb24vdGhlbWUnO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtPYnNlcnZlciwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Q2FjaGVTZXJ2aWNlfSBmcm9tIFwiQGRlbG9uL2NhY2hlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hcHBsaWNhdGlvbi1hcHBzLWVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQXBwc0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlY29yZDogYW55ID0ge307XHJcbiAgaTogYW55O1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBzdGF0ZUxpc3QgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoYGFwaS9kaWN0L3R5cGUvZW5hYmxlU3RhdGVgKTtcclxuICB0eXBlQXBwTGlzdCA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldChgYXBpL2RpY3QvdHlwZS90eXBlQXBwYCk7XHJcbiAgYXV0aFR5cGVMaXN0ID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KGBhcGkvZGljdC90eXBlL2F1dGhUeXBlYCk7XHJcblxyXG4gIHR5cGVBcHA6IGFueTtcclxuICB0eXBlQXV0aDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbW9kYWw6IE56TW9kYWxSZWYsXHJcbiAgICBwdWJsaWMgbXNnU3J2OiBOek1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGh0dHA6IF9IdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZUFwcExpc3Quc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLnR5cGVBcHAgPSByZXNbMF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hdXRoVHlwZUxpc3Quc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLnR5cGVBdXRoID0gcmVzWzBdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgYXBwSWQ6IFtudWxsLCBbXV0sXHJcbiAgICAgIGFwcE5hbWU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFt0aGlzLmFwcE5hbWVBc3luY1ZhbGlkYXRvcl1dLFxyXG4gICAgICB0eXBlQXBwOiBbdGhpcy50eXBlQXBwID8gdGhpcy50eXBlQXBwLnZhbHVlIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHR5cGVBdXRoOiBbdGhpcy50eXBlQXV0aCA/IHRoaXMudHlwZUF1dGgudmFsdWUgOiAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcmVtYXJrOiBbbnVsbCwgW11dLFxyXG4gICAgICBjcmVhdGVEYXRlOltudWxsLCBbXV0sXHJcbiAgICAgIGZsYWdJcDogWzAsIFtdXSxcclxuICAgICAgZmxhZ0xMb2c6IFswLCBbXV0sXHJcbiAgICAgIGZsYWdMb2dPcHQ6IFswLCBbXV0sXHJcbiAgICAgIHN0YXR1czogWzEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy5yZWNvcmQuYXBwSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHR0cC5nZXQoYGFwaS92MS9zeXNyUmVnaXN0ZXJBcHAvJHt0aGlzLnJlY29yZC5hcHBJZH1gKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocmVzKTtcclxuICAgICAgdGhpcy5pID0gcmVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb21wYXJlTnVtU3RyKGMxOiBhbnksIGMyOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBjMSA9PSBjMjtcclxuICB9XHJcblxyXG4gIGFwcE5hbWVBc3luY1ZhbGlkYXRvciA9IChjb250cm9sOiBGb3JtQ29udHJvbCkgPT5cclxuICAgIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VmFsaWRhdGlvbkVycm9ycz4pID0+IHtcclxuICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChudWxsKTtcclxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmh0dHAuZ2V0KGBhcGkvdjEvc3lzclJlZ2lzdGVyQXBwL2NoZWNrQXBwTmFtZWAsXHJcbiAgICAgICAge2FwcE5hbWU6IGNvbnRyb2wudmFsdWUsIGFwcElkOiB0aGlzLnJlY29yZC5hcHBJZH0pLnN1YnNjcmliZSgocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYgKHJlcy52YWxpZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IGVycm9yOiB0cnVlLCBkdXBsaWNhdGVkOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICBmb3IgKGNvbnN0IGkgaW4gdGhpcy5mb3JtLmNvbnRyb2xzKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbaV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcbiAgICBpZiAoIXRoaXMucmVjb3JkLmFwcElkKSB7XHJcbiAgICAgIC8v5paw5aKeXHJcbiAgICAgIHRoaXMuaHR0cC5wb3N0KGBhcGkvdjEvc3lzclJlZ2lzdGVyQXBwYCwgdGhpcy5mb3JtLnZhbHVlKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLm1zZ1Nydi5zdWNjZXNzKCfkv53lrZjmiJDlip8nKTtcclxuICAgICAgICB0aGlzLm1vZGFsLmNsb3NlKHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy/kv67mlLlcclxuICAgIHRoaXMuaHR0cC5wdXQoYGFwaS92MS9zeXNyUmVnaXN0ZXJBcHAvJHt0aGlzLnJlY29yZC5hcHBJZH1gLCB0aGlzLmZvcm0udmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLm1zZ1Nydi5zdWNjZXNzKCfkv53lrZjmiJDlip8nKTtcclxuICAgICAgdGhpcy5tb2RhbC5jbG9zZSh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm1vZGFsLmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuIl19