UNPKG

@ecip/system

Version:
284 lines 24.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewChild } from '@angular/core'; import { ModalHelper } from '@delon/theme'; import { STComponent } from '@delon/abc'; import { SFComponent } from '@delon/form'; import { NzMessageService, NzTableComponent } from "ng-zorro-antd"; import { SystemDictEditComponent } from "./edit/edit.component"; import { DictService } from "@ecip/service"; var SystemDictComponent = /** @class */ (function () { function SystemDictComponent(modal, msgSrv, dictService) { this.modal = modal; this.msgSrv = msgSrv; this.dictService = dictService; this.isVisible = false; this.isOkLoading = false; this.searchSchema = { properties: { vkey: { type: 'string', title: '编码' } } }; this.data = []; this.dataList = {}; } /** * @return {?} */ SystemDictComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; // console.log(this.nzTable); this.dictService.getList(this.sf.value).subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.data = res; _this.data.forEach((/** * @param {?} item * @return {?} */ function (item) { _this.dataList[item.id] = item; })); })); }; /** * @param {?} parentId * @return {?} */ SystemDictComponent.prototype.addChild = /** * @param {?} parentId * @return {?} */ function (parentId) { this.selectId = parentId; this.add(false); }; /** * @param {?} isRoot * @return {?} */ SystemDictComponent.prototype.add = /** * @param {?} isRoot * @return {?} */ function (isRoot) { var _this = this; /** @type {?} */ var parent; if (!isRoot) { if (!this.selectId) { this.msgSrv.warning("请选择父节点"); return; } parent = this.dataList[this.selectId]; } this.modal .createStatic(SystemDictEditComponent, { i: {}, isRoot: isRoot, parent: parent }) .subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.dataList[res.id] = res; if (isRoot) { _this.data.push(res); return; } if (!parent.children) { parent.children = []; parent.expand = true; } parent.children.push(res); })); }; /** * @param {?} item * @return {?} */ SystemDictComponent.prototype.edit = /** * @param {?} item * @return {?} */ function (item) { var _this = this; this.modal .createStatic(SystemDictEditComponent, { record: item }) .subscribe((/** * @param {?} res * @return {?} */ function (res) { if (res.length > 1) { _this.dictService.getList().subscribe((/** * @param {?} result * @return {?} */ function (result) { _this.data = result; _this.data.forEach((/** * @param {?} it * @return {?} */ function (it) { _this.dataList[it.id] = it; })); })); } else { item = Object.assign(item, res[0]); _this.dataList[res.id] = res[0]; } })); }; /** * @param {?} data * @param {?} $event * @return {?} */ SystemDictComponent.prototype.collapse = /** * @param {?} data * @param {?} $event * @return {?} */ function (data, $event) { var _this = this; if (!$event || data.children.length > 0) { return; } this.dictService.getChildren(data.id).subscribe((/** * @param {?} res * @return {?} */ function (res) { data.children = res; data.children.forEach((/** * @param {?} item * @return {?} */ function (item) { _this.dataList[item.id] = item; })); })); }; /** * @return {?} */ SystemDictComponent.prototype.deleteModal = /** * @return {?} */ function () { this.isVisible = true; }; /** * @param {?} item * @return {?} */ SystemDictComponent.prototype.deleteOk = /** * @param {?} item * @return {?} */ function (item) { var _this = this; this.isOkLoading = true; this.dictService.deleteById(item.id).subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.isVisible = false; _this.isOkLoading = false; _this.msgSrv.success('删除成功'); //根节点 if (!item.pid) { _this.data = _this.data.filter((/** * @param {?} _item * @return {?} */ function (_item) { return _item.id !== item.id; })); _this.dataList[item.id] = null; return; } //子节点 _this.dataList[item.pid].children = _this.dataList[item.pid].children.filter((/** * @param {?} _item * @return {?} */ function (_item) { return _item.id !== item.id; })); })); }; /** * @return {?} */ SystemDictComponent.prototype.deleteCancel = /** * @return {?} */ function () { this.isVisible = false; }; SystemDictComponent.decorators = [ { type: Component, args: [{ selector: 'app-system-dict', template: "<page-header [action]=\"phPhAction\">\r\n <ng-template #phPhAction>\r\n <nz-dropdown>\r\n <button acl [acl-ability]=\"'dict:add'\" nz-button nz-dropdown nzType=\"primary\">\r\n \u65B0\u5EFA\r\n <i class=\"anticon anticon-down\"></i>\r\n </button>\r\n <ul nz-menu>\r\n <li (click)=\"add(true)\" nz-menu-item>\r\n <a>\u6839\u8282\u70B9</a>\r\n </li>\r\n <li (click)=\"add(false)\" nz-menu-item>\r\n <a>\u5B50\u8282\u70B9</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </ng-template>\r\n</page-header>\r\n<nz-card>\r\n <sf #sf mode=\"search\" [schema]=\"searchSchema\" (formSubmit)=\"ngOnInit()\" (formReset)=\"sf.reset($event)\"></sf>\r\n <!--<simple-table [data]=\"url\" [extraParams]=\"params\" [total]=\"total\" [columns]=\"columns\" [preDataChange]=\"dataChange\" [resReName]=\"{list: 'results' }\" (radioChange)=\"radioChange($event)\"> &lt;!&ndash;<ng-template #expand let-item let-index=\"index\" let-column=\"column\"> {{ item.description }} </ng-template>&ndash;&gt; <ng-template st-row=\"custom\" let-item let-index=\"index\"> <nz-tooltip [nzTitle]=\"'\u5E74\u9F84\uFF1A' + item.phone\"> <span nz-tooltip>tooltip: {{item.phone}}-{{index}}</span> </nz-tooltip> </ng-template> </simple-table>-->\r\n <nz-radio-group style=\"display: inline\" [(ngModel)]=\"selectId\">\r\n <nz-table style=\"margin-top: 16px\" #nzTable [nzData]=\"data\" [nzShowPagination]=\"false\" [nzFrontPagination]=\"false\" [nzBordered]=\"true\" [nzLoading]=\"dictService.http.loading\" [nzScroll]=\"{x:'2000px'}\">\r\n <thead>\r\n <tr>\r\n <th nzWidth=\"65px\" nzLeft=\"0px\"></th>\r\n <th nzWidth=\"200px\" nzLeft=\"65px\">\u540D\u79F0</th>\r\n <th>\u7F16\u7801</th>\r\n <th>\u5206\u7C7B</th>\r\n <th>\u5907\u6CE8</th>\r\n <th>\u6392\u5E8F</th>\r\n <!--<th>\u7248\u672C</th>-->\r\n <th>\u542F\u7528\u72B6\u6001</th>\r\n <th>\u521B\u5EFA\u65F6\u95F4</th>\r\n <th>\u4FEE\u6539\u65F6\u95F4</th>\r\n <th>\u521B\u5EFA\u8005</th>\r\n <th>\u64CD\u4F5C\u8005</th>\r\n <th nzWidth=\"150px\" nzRight=\"0px\" style=\"text-align: center;\">\u64CD\u4F5C</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-template #recursiveList let-data>\r\n <ng-template ngFor let-item [ngForOf]=\"data\">\r\n <tr>\r\n <td nzLeft=\"0px\">\r\n <label nz-radio [nzValue]=\"item.id\" *ngIf=\"!item.pid\"></label>\r\n </td>\r\n <td nzLeft=\"65px\" [nzIndentSize]=\"20\" [nzShowExpand]=\"item.children\" [(nzExpand)]=\"item.expand\" (nzExpandChange)=\"collapse(item,$event)\">{{item.vname}}</td>\r\n <td>{{item.vkey}}</td>\r\n <td>{{item.dictType}}</td>\r\n <td>{{item.remark}}</td>\r\n <td>{{item.sortNum}}</td>\r\n <!--<td>{{item.rsvn}}</td>-->\r\n <td>{{item.validText}}</td>\r\n <td>{{item.createTime}}</td>\r\n <td>{{item.updateTime}}</td>\r\n <td>{{item.creator}}</td>\r\n <td>{{item.operator}}</td>\r\n <td nzRight=\"0px\" style=\"width: 150px; text-align: center\">\r\n <a *ngIf=\"!item.pid\" (click)=\"addChild(item.id)\" acl [acl-ability]=\"'dict:add'\">\u6DFB\u52A0\u5B50\u8282\u70B9</a>\r\n <nz-divider *ngIf=\"!item.pid\" nzType=\"vertical\"></nz-divider>\r\n <nz-dropdown [acl]=\"{ ability: ['dict:edit', 'dict:remove'], mode: 'oneOf' }\">\r\n <a nz-dropdown>\r\n <i class=\"anticon anticon-down\"></i>\r\n </a>\r\n <ul nz-menu>\r\n <li acl [acl-ability]=\"'dict:edit'\" (click)=\"edit(item)\" nz-menu-item>\r\n <a>\u7F16\u8F91</a>\r\n </li>\r\n <li acl [acl-ability]=\"'dict:remove'\" nz-popconfirm *ngIf=\"!item.pid\" nzTitle=\"\u662F\u5426\u786E\u8BA4\u5220\u9664\u8BE5\u8BCD\u6839\u53CA\u5176\u4E0B\u6240\u6709\u8BCD?\" (nzOnConfirm)=\"deleteOk(item)\" (nzOnCancel)=\"deleteCancel()\" nz-menu-item>\r\n <a>\u5220\u9664</a>\r\n </li>\r\n <li acl [acl-ability]=\"'dict:remove'\" nz-popconfirm *ngIf=\"item.pid\" nzTitle=\"\u662F\u5426\u786E\u8BA4\u5220\u9664\u8BE5\u8BCD?\" (nzOnConfirm)=\"deleteOk(item)\" (nzOnCancel)=\"deleteCancel()\" nz-menu-item>\r\n <a>\u5220\u9664</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"item.expand && item.children?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: item.children }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: data }\"></ng-container>\r\n </tbody>\r\n </nz-table>\r\n </nz-radio-group>\r\n</nz-card>", styles: [":host ::ng-deep .ant-table-wrapper{margin-top:16px}"] }] } ]; /** @nocollapse */ SystemDictComponent.ctorParameters = function () { return [ { type: ModalHelper }, { type: NzMessageService }, { type: DictService } ]; }; SystemDictComponent.propDecorators = { st: [{ type: ViewChild, args: ['st',] }], sf: [{ type: ViewChild, args: ['sf',] }], nzTable: [{ type: ViewChild, args: ['nzTable',] }] }; return SystemDictComponent; }()); export { SystemDictComponent }; if (false) { /** @type {?} */ SystemDictComponent.prototype.isVisible; /** @type {?} */ SystemDictComponent.prototype.isOkLoading; /** @type {?} */ SystemDictComponent.prototype.st; /** @type {?} */ SystemDictComponent.prototype.sf; /** @type {?} */ SystemDictComponent.prototype.searchSchema; /** @type {?} */ SystemDictComponent.prototype.nzTable; /** @type {?} */ SystemDictComponent.prototype.selectId; /** @type {?} */ SystemDictComponent.prototype.data; /** @type {?} */ SystemDictComponent.prototype.dataList; /** * @type {?} * @private */ SystemDictComponent.prototype.modal; /** * @type {?} * @private */ SystemDictComponent.prototype.msgSrv; /** @type {?} */ SystemDictComponent.prototype.dictService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWNpcC9zeXN0ZW0vIiwic291cmNlcyI6WyJzcmMvZGljdC9kaWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQVksV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQVcsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUM7SUE0QkUsNkJBQ1UsS0FBa0IsRUFDbEIsTUFBd0IsRUFDekIsV0FBd0I7UUFGdkIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXZCakMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixpQkFBWSxHQUFhO1lBQ3ZCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7UUFJRixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQU9kLENBQUM7Ozs7SUFFRCxzQ0FBUTs7O0lBQVI7UUFBQSxpQkFRQztRQVBDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMs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cEIsQ0FBb0IsRUFBQyxDQUFDO2dCQUM1RCxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLE9BQU87YUFDUjtZQUNELEtBQUs7WUFDTCxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRO2dCQUM5QixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTTs7OztnQkFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBcEIsQ0FBb0IsRUFBQyxDQUFDO1FBQzNFLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELDBDQUFZOzs7SUFBWjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7O2dCQXBJRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsbWxLQUFvQzs7aUJBR3JDOzs7O2dCQWJxQixXQUFXO2dCQUd6QixnQkFBZ0I7Z0JBR2hCLFdBQVc7OztxQkFhaEIsU0FBUyxTQUFDLElBQUk7cUJBRWQsU0FBUyxTQUFDLElBQUk7MEJBVWQsU0FBUyxTQUFDLFNBQVM7O0lBK0d0QiwwQkFBQztDQUFBLEFBdElELElBc0lDO1NBaElZLG1CQUFtQjs7O0lBRTlCLHdDQUFrQjs7SUFDbEIsMENBQW9COztJQUVwQixpQ0FBaUM7O0lBRWpDLGlDQUFpQzs7SUFDakMsMkNBT0U7O0lBRUYsc0NBQWdEOztJQUNoRCx1Q0FBUzs7SUFDVCxtQ0FBVTs7SUFDVix1Q0FBYzs7Ozs7SUFHWixvQ0FBMEI7Ozs7O0lBQzFCLHFDQUFnQzs7SUFDaEMsMENBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBfSHR0cENsaWVudCwgTW9kYWxIZWxwZXIgfSBmcm9tICdAZGVsb24vdGhlbWUnO1xyXG5pbXBvcnQgeyBTVENvbHVtbiwgU1RDb21wb25lbnQgfSBmcm9tICdAZGVsb24vYWJjJztcclxuaW1wb3J0IHtTRkNvbXBvbmVudCwgU0ZTY2hlbWF9IGZyb20gJ0BkZWxvbi9mb3JtJztcclxuaW1wb3J0IHtOek1lc3NhZ2VTZXJ2aWNlLCBOelRhYmxlQ29tcG9uZW50fSBmcm9tIFwibmctem9ycm8tYW50ZFwiO1xyXG5pbXBvcnQge0NhY2hlU2VydmljZX0gZnJvbSBcIkBkZWxvbi9jYWNoZVwiO1xyXG5pbXBvcnQge1N5c3RlbURpY3RFZGl0Q29tcG9uZW50fSBmcm9tIFwiLi9lZGl0L2VkaXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGljdFNlcnZpY2V9IGZyb20gXCJAZWNpcC9zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zeXN0ZW0tZGljdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpY3QuY29tcG9uZW50Lmxlc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFN5c3RlbURpY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBpc1Zpc2libGUgPSBmYWxzZTtcclxuICBpc09rTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKCdzdCcpIHN0OiBTVENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2YnKSBzZjogU0ZDb21wb25lbnQ7XHJcbiAgc2VhcmNoU2NoZW1hOiBTRlNjaGVtYSA9IHtcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgdmtleToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn57yW56CBJ1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbnpUYWJsZScpIG56VGFibGU6IE56VGFibGVDb21wb25lbnQ7XHJcbiAgc2VsZWN0SWQ7XHJcbiAgZGF0YSA9IFtdO1xyXG4gIGRhdGFMaXN0ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2RhbDogTW9kYWxIZWxwZXIsXHJcbiAgICBwcml2YXRlIG1zZ1NydjogTnpNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWN0U2VydmljZTogRGljdFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubnpUYWJsZSk7XHJcbiAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldExpc3QodGhpcy5zZi52YWx1ZSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGEgPSByZXM7XHJcbiAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YUxpc3RbaXRlbS5pZF0gPSBpdGVtO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQ2hpbGQocGFyZW50SWQpIHtcclxuICAgIHRoaXMuc2VsZWN0SWQgPSBwYXJlbnRJZDtcclxuICAgIHRoaXMuYWRkKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGFkZChpc1Jvb3QgOiBib29sZWFuKSB7XHJcbiAgICBsZXQgcGFyZW50O1xyXG4gICAgaWYgKCFpc1Jvb3QpIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdElkKSB7XHJcbiAgICAgICAgdGhpcy5tc2dTcnYud2FybmluZyhcIuivt+mAieaLqeeItuiKgueCuVwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgcGFyZW50ID0gdGhpcy5kYXRhTGlzdFt0aGlzLnNlbGVjdElkXTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kYWxcclxuICAgICAgLmNyZWF0ZVN0YXRpYyhTeXN0ZW1EaWN0RWRpdENvbXBvbmVudCwge1xyXG4gICAgICAgIGk6IHt9ICwgaXNSb290OiBpc1Jvb3QsIHBhcmVudDogcGFyZW50fSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhTGlzdFtyZXMuaWRdID0gcmVzO1xyXG4gICAgICAgIGlmIChpc1Jvb3QpIHtcclxuICAgICAgICAgIHRoaXMuZGF0YS5wdXNoKHJlcyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgICAgIHBhcmVudC5leHBhbmQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChyZXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVkaXQoaXRlbSkge1xyXG4gICAgdGhpcy5tb2RhbFxyXG4gICAgICAuY3JlYXRlU3RhdGljKFN5c3RlbURpY3RFZGl0Q29tcG9uZW50LCB7IHJlY29yZDogaXRlbSB9KVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBpZihyZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdGhpcy5kaWN0U2VydmljZS5nZXRMaXN0KCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKGl0ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0W2l0LmlkXSA9IGl0O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGl0ZW0gPSBPYmplY3QuYXNzaWduKGl0ZW0sIHJlc1swXSk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFMaXN0W3Jlcy5pZF0gPSByZXNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbGxhcHNlKGRhdGE6IGFueSwgJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoISRldmVudCB8fCBkYXRhLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGljdFNlcnZpY2UuZ2V0Q2hpbGRyZW4oZGF0YS5pZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGRhdGEuY2hpbGRyZW4gPSByZXM7XHJcbiAgICAgIGRhdGEuY2hpbGRyZW4uZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFMaXN0W2l0ZW0uaWRdID0gaXRlbTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlT2soaXRlbSkge1xyXG4gICAgdGhpcy5pc09rTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRpY3RTZXJ2aWNlLmRlbGV0ZUJ5SWQoaXRlbS5pZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNPa0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tc2dTcnYuc3VjY2Vzcygn5Yig6Zmk5oiQ5YqfJyk7XHJcbiAgICAgIC8v5qC56IqC54K5XHJcbiAgICAgIGlmICghaXRlbS5waWQpIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKF9pdGVtID0+IF9pdGVtLmlkICE9PSBpdGVtLmlkKTtcclxuICAgICAgICB0aGlzLmRhdGFMaXN0W2l0ZW0uaWRdID0gbnVsbDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy/lrZDoioLngrlcclxuICAgICAgdGhpcy5kYXRhTGlzdFtpdGVtLnBpZF0uY2hpbGRyZW4gPVxyXG4gICAgICAgIHRoaXMuZGF0YUxpc3RbaXRlbS5waWRdLmNoaWxkcmVuLmZpbHRlcihfaXRlbSA9PiBfaXRlbS5pZCAhPT0gaXRlbS5pZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=