UNPKG

dbweb-common

Version:

用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上

448 lines 50 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, ViewChild } from '@angular/core'; import { MatIconRegistry } from '@angular/material/icon'; import { MatDrawer } from '@angular/material/sidenav'; import { DomSanitizer } from '@angular/platform-browser'; import { Router } from '@angular/router'; import { ElementsService, RouteElementService, ProjectService } from 'dbweb-core'; import { ClipboardService } from 'ngx-clipboard'; import { take } from 'rxjs/operators'; import { LabelDrawerComponent } from './label-drawer/label-drawer.component'; import { SelectType } from './model/model'; import { BackFaceService } from './service/backface'; import { ServiceData } from './service/data'; import { ServiceService } from './service/service.service'; import { TableComponent } from './table/table.component'; import { ViewDrawerComponent } from './view-drawer/view-drawer.component'; var RecordViewComponent = /** @class */ (function () { function RecordViewComponent(svr, ele, prj, _clipboardService, iconRegistry, sanitizer, router, eles) { this.svr = svr; this.ele = ele; this.prj = prj; this._clipboardService = _clipboardService; this.router = router; this.eles = eles; this.SelectTypeSelected = SelectType.Selected; this.SelectTypeUnselected = SelectType.Unselected; this.showConditionalTemplateRunner = false; this.editLabelModel = false; this.subscribe = []; /** @type {?} */ var icons = [ 'all_chosen', 'cancel_chosen', 'return_chosen', 'single_chosen', 'double_down', 'drag_indicator', 'arrow_collapse', 'arrow_expand', 'sorting_arrows', 'color_add', 'file_copy', 'bg_bottom_out', 'default' ]; icons.forEach((/** * @param {?} v * @return {?} */ function (v) { iconRegistry.addSvgIcon(v, sanitizer.bypassSecurityTrustResourceUrl('assets/record-view/icon/' + v + '.svg')); })); } /** * @return {?} */ RecordViewComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.subscribe.forEach((/** * @param {?} v * @return {?} */ function (v) { return v.unsubscribe(); })); }; /** * @return {?} */ RecordViewComponent.prototype.onDetach = /** * @return {?} */ function () { this.dataTable.onDetach(); }; /** * @param {?} ref * @param {?} activatedRoute * @return {?} */ RecordViewComponent.prototype.onAttach = /** * @param {?} ref * @param {?} activatedRoute * @return {?} */ function (ref, activatedRoute) { this.dataTable.onAttach(ref, activatedRoute); }; /** * @return {?} */ RecordViewComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.subscribe.push(this.svr.refreshDataEvent.subscribe((/** * @param {?} v * @return {?} */ function (v) { _this.dataTable.setDataSource(_this.svr.data.tableData.Rows, _this.svr.data.tableData.DisplayColumns.map((/** * @param {?} vv * @return {?} */ function (vv) { return ((/** @type {?} */ (tslib_1.__assign({}, vv)))); })), (v && v.keepDivide) || (v && v.keepRowCount)); }))); // 如果是组件方式调用 if (this.eleName !== undefined) { this.svr.initByCondition(this.eles.get(this.eleName), this.title, this.condition); } else { // init param this.ele.currentElement.pipe(take(1)).subscribe((/** * @param {?} v * @return {?} */ function (v) { _this.svr.init(v.element, _this.prj.frontToApiURL(v.url)); })); } }; /** * @return {?} */ RecordViewComponent.prototype.selectedRowText = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var total = this.svr.data.tableRowSelection.selected.length; /** @type {?} */ var current = 0; if (this.svr.data.tableData && this.svr.data.tableData.Rows) { current = this.svr.data.tableData.Rows.filter((/** * @param {?} row * @return {?} */ function (row) { return _this.svr.data.tableRowSelection.isSelected(row.Key); })) .length; } if (total === current) { return "\u5DF2\u9009" + total + "\u6761"; } else { return current + "/" + total; } }; /** * @param {?} sortInfo * @return {?} */ RecordViewComponent.prototype.onTableSort = /** * @param {?} sortInfo * @return {?} */ function (sortInfo) { switch (sortInfo.direction) { case '': this.svr.data.fetchParam.Order = null; break; case 'asc': this.svr.data.fetchParam.Order = [sortInfo.active]; break; case 'desc': this.svr.data.fetchParam.Order = ["-" + sortInfo.active]; } this.svr.refreshData({ keepRowCount: true }).subscribe(); }; /** * @return {?} */ RecordViewComponent.prototype.searchClick = /** * @return {?} */ function () { this.showConditionalTemplateRunner = false; this.svr.refreshData().subscribe(); }; /** * @param {?} event * @return {?} */ RecordViewComponent.prototype.onRecordProcessClick = /** * @param {?} event * @return {?} */ function (event) { /** @type {?} */ var fields = this.svr.data.uniqueFields; if (event.pro.TransPath && event.pro.TransPath.length > 0) { fields = event.pro.TransPath; } /** @type {?} */ var keyValues = fields.map((/** * @param {?} v * @return {?} */ function (v) { return "[" + event.row.Data[v] + "]"; })).join(' '); /** @type {?} */ var ustr = this.eles.frontElementURL(this.svr.data.rowProcesses.find((/** * @param {?} v * @return {?} */ function (v) { return v.Name === event.pro.Name; })).ElementName, event.row.Processes[event.pro.Name].URL); this.router.navigateByUrl(ustr, { state: (/** @type {?} */ ({ // 因为route自动会进行encode,所以需要把服务端的url解开,但是服务端又不能不编码,因为斜杠需要正确处理 url: this.router.parseUrl(ustr), key: ustr, title: event.pro.Name + " - " + keyValues })) }); }; /** * @param {?} pro * @return {?} */ RecordViewComponent.prototype.onToolbarProcessClick = /** * @param {?} pro * @return {?} */ function (pro) { /** @type {?} */ var ustr = this.eles.frontElementURL(pro.ElementName, this.svr.data.tableData.Processes[pro.Name].URL); this.router.navigateByUrl(ustr, { state: (/** @type {?} */ ({ url: this.router.parseUrl(ustr), key: ustr, title: pro.Name })) }); }; /** * @param {?} event * @return {?} */ RecordViewComponent.prototype.onNextPageClick = /** * @param {?} event * @return {?} */ function (event) { this.svr.data.fetchParam.Divide = this.svr.data.tableData.DownDivide; this.svr.data.fetchParam.DivideRowNum = this.svr.data.tableData.DownRowNum; if (this.svr.data.prevFetchDivide) { this.svr.data.upDivide = this.svr.data.upDivide || []; this.svr.data.upRowNum = this.svr.data.upRowNum || []; this.svr.data.upDivide.push(this.svr.data.prevFetchDivide); this.svr.data.upRowNum.push(this.svr.data.prevFetchRowNum); } this.svr.refreshData({ keepDivide: true, keepRowCount: true }).subscribe(); }; /** * @param {?} event * @return {?} */ RecordViewComponent.prototype.onPrevPageClick = /** * @param {?} event * @return {?} */ function (event) { if (this.svr.data.upDivide) { this.svr.data.fetchParam.Divide = this.svr.data.upDivide.pop(); } else { this.svr.data.fetchParam.Divide = undefined; } if (this.svr.data.upRowNum) { this.svr.data.fetchParam.DivideRowNum = this.svr.data.upRowNum.pop(); } else { this.svr.data.fetchParam.DivideRowNum = undefined; } this.svr.refreshData({ keepDivide: true, keepRowCount: true }).subscribe(); }; /** * @param {?} event * @return {?} */ RecordViewComponent.prototype.onFooterRowCountClick = /** * @param {?} event * @return {?} */ function (event) { this.svr.refreshRowCount().subscribe(); }; /** * @return {?} */ RecordViewComponent.prototype.startRowNo = /** * @return {?} */ function () { if (this.svr.data && this.svr.data.tableData && this.svr.data.tableData.Rows.length > 0) { return this.svr.data.tableData.Rows[0].RowNum + 1; } return 0; }; /** * @return {?} */ RecordViewComponent.prototype.openLabelDrawer = /** * @return {?} */ function () { var _this = this; this.svr.data.showLabelDrawer = true; setTimeout((/** * @return {?} */ function () { // 复制,因为对话框内部会改变值 _this.labelDrawer.selectedLabels = tslib_1.__spread(_this.svr.data.selectedLabels); // 点击模板打开抽屉 _this.drawer.toggle(); }), 0); }; /** * @return {?} */ RecordViewComponent.prototype.openColumnsDrawer = /** * @return {?} */ function () { this.svr.data.showLabelDrawer = false; if (!this.svr.data.viewList || this.svr.data.viewList.length === 0) { this.svr.editView.add(); } else { this.svr.editView.titleInput = false; this.svr.editView.current = this.svr.data.viewList[0]; } // 点击模板打开抽屉 this.drawer.toggle(); }; /** * @return {?} */ RecordViewComponent.prototype.hasConditionalTemplate = /** * @return {?} */ function () { return !!this.svr.data.conditionalTemplates.find((/** * @param {?} v * @return {?} */ function (v) { return v.enable; })); }; /** * @return {?} */ RecordViewComponent.prototype.closeDrawer = /** * @return {?} */ function () { // this.labelDrawer.editModel = false; this.editLabelModel = false; console.log('close', this.editLabelModel, this.labelDrawer.editModel); }; RecordViewComponent.decorators = [ { type: Component, args: [{ selector: 'common-recview', template: "<div class=\"record-view main\">\r\n\t<mat-drawer-container class=\"container\">\r\n\t\t<mat-drawer #drawer mode=\"over\" position=\"end\" autoFocus=\"false\" (closedStart)=\"labelDrawer.editModel=false;\">\r\n\t\t\t<common-label-drawer #labelDrawer *ngIf=\"svr.data.showLabelDrawer\" [IsEditModel]=\"editLabelModel\"\r\n\t\t\t\t(close)=\"drawer.toggle()\">\r\n\t\t\t</common-label-drawer>\r\n\t\t\t<common-view-drawer #columnsDrawer *ngIf=\"!svr.data.showLabelDrawer\" (close)=\"drawer.toggle()\">\r\n\t\t\t</common-view-drawer>\r\n\t\t</mat-drawer>\r\n\t\t<mat-drawer-content>\r\n\t\t\t<div class=\"rec-body\" (click)=\"showConditionalTemplateRunner = false\">\r\n\t\t\t\t<div class=\"toolbar-panel\">\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<div class=\"toolbar \u9009\u62E9\u5DE5\u5177\u680F my-elevation-z5\">\r\n\t\t\t\t\t\t\t<span class=\"\u9009\u62E9\u63D0\u793A \u5DF2\u9009\u62E9\">{{ selectedRowText() }}</span>\r\n\t\t\t\t\t\t\t<mat-form-field class=\"sel\u9009\u62E9\">\r\n\t\t\t\t\t\t\t\t<mat-select [(ngModel)]=\"svr.data.fetchParam.SelType\">\r\n\t\t\t\t\t\t\t\t\t<mat-option value=\"\"> \u6240\u6709 </mat-option>\r\n\t\t\t\t\t\t\t\t\t<mat-option [value]=\"SelectTypeSelected\">\r\n\t\t\t\t\t\t\t\t\t\t\u4EC5\u9009\u4E2D </mat-option>\r\n\t\t\t\t\t\t\t\t\t<mat-option [value]=\"SelectTypeUnselected\">\r\n\t\t\t\t\t\t\t\t\t\t\u672A\u9009\u4E2D </mat-option>\r\n\t\t\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"toolbar \u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F my-elevation-z5\">\r\n\t\t\t\t\t\t\t<mat-form-field class=\"sel\u6307\u6807\">\r\n\t\t\t\t\t\t\t\t<mat-select [(ngModel)]=\"svr.data.fetchParam.Field\"\r\n\t\t\t\t\t\t\t\t\t(ngModelChange)=\"svr.onColumnChange($event)\">\r\n\t\t\t\t\t\t\t\t\t<mat-option value=\"\"> </mat-option>\r\n\t\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let col of svr.data?.tableData?.Columns\" [value]=\"col.Name\">\r\n\t\t\t\t\t\t\t\t\t\t{{ col.Name }}\r\n\t\t\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t<mat-form-field class=\"sel\u89C4\u5219\" floatLabel=\"never\">\r\n\t\t\t\t\t\t\t\t<mat-select [(ngModel)]=\"svr.data.fetchParam.Opt\" placeholder=\"(\u65E0)\">\r\n\t\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let ope of svr.data.Operates\" [value]=\"ope.Name\">{{\r\n\t\t\t\t\t\t\t\t\t\tope.Label\r\n\t\t\t\t\t\t\t\t\t}}</mat-option>\r\n\t\t\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t<mat-divider [vertical]=\"true\"></mat-divider>\r\n\t\t\t\t\t\t\t<mat-form-field class=\"inp\u503C\" appearance=\"standard\">\r\n\t\t\t\t\t\t\t\t<input matInput [(ngModel)]=\"svr.data.fetchParam.Value\" (keyup.enter)=\"searchClick()\" />\r\n\t\t\t\t\t\t\t\t<button mat-icon-button matSuffix\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"svr.data.fetchParam?.Opt == 'in' || svr.data.fetchParam?.Opt == '!in'\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon svgIcon=\"more_vert\"></mat-icon>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"toolbar\">\r\n\t\t\t\t\t\t\t<div class=\"condition-button\">\r\n\t\t\t\t\t\t\t\t<button mat-raised-button class=\"my-elevation-z5 \u67E5\u8BE2\u6309\u94AE\">\r\n\t\t\t\t\t\t\t\t\t<mat-icon svgIcon=\"search\" (click)=\"searchClick()\"></mat-icon>\r\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"svr.data.conditionalTemplates\" class=\"\u5206\u5272\u7EBF\"></span>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"svr.data.conditionalTemplates\">\r\n\t\t\t\t\t\t\t\t\t\t<mat-icon svgIcon=\"view_list\"\r\n\t\t\t\t\t\t\t\t\t\t\t[class.openConditionalTemplate]=\"showConditionalTemplateRunner\"\r\n\t\t\t\t\t\t\t\t\t\t\t[class.revised]=\"hasConditionalTemplate() && !showConditionalTemplateRunner\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"showConditionalTemplateRunner = !showConditionalTemplateRunner;$event.stopPropagation();\">\r\n\t\t\t\t\t\t\t\t\t\t</mat-icon>\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"hasConditionalTemplate()\" class=\"revised-star\">*</span>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<!-- <button mat-raised-button class=\"my-elevation-z5 \u67E5\u8BE2\u6309\u94AE\"></button> -->\r\n\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"showConditionalTemplateRunner\" class=\"condition-triangle\">\r\n\t\t\t\t\t\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"24px\" height=\"24px\">\r\n\t\t\t\t\t\t\t\t\t\t<path name=\"\u4E09\u89D2\u5F62\" d=\"M0 15 L12 0 L24 15 Z\" />\r\n\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t</mat-icon>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"right-top-area\">\r\n\t\t\t\t\t\t<common-label-selector (open)=\"openLabelDrawer()\">\r\n\t\t\t\t\t\t</common-label-selector>\r\n\t\t\t\t\t\t<common-view-selector (managerClick)=\"openColumnsDrawer()\">\r\n\t\t\t\t\t\t</common-view-selector>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"condition-parent\">\r\n\t\t\t\t\t<div class=\"condition-card my-elevation-z8\" *ngIf=\"showConditionalTemplateRunner\">\r\n\t\t\t\t\t\t<common-conditional-template-runner (click)=\"$event.stopPropagation();\"\r\n\t\t\t\t\t\t\t(enterPress)=\"showConditionalTemplateRunner=false;searchClick();\">\r\n\t\t\t\t\t\t</common-conditional-template-runner>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"condition-mask\" *ngIf=\"showConditionalTemplateRunner\"></div>\r\n\t\t\t\t\t<common-table #dataTable [processes]=\"svr.data?.rowProcesses\" (sortChange)=\"onTableSort($event)\"\r\n\t\t\t\t\t\t(processClick)=\"onRecordProcessClick($event)\">\r\n\t\t\t\t\t</common-table>\r\n\t\t\t\t</div>\r\n\t\t\t\t<common-footer-toolbar class=\"\u64CD\u4F5C\u5DE5\u5177\u680F my-elevation-z5\" [process]=\"svr.data.toolbarProcesses\"\r\n\t\t\t\t\t[rowCount]=\"svr.data.rowCount\" [pageSize]=\"svr.data.fetchParam.Limit\" [startRowNo]=\"startRowNo()\"\r\n\t\t\t\t\t[responseTime]=\"svr.data.timeConsuming\" [nextPageDisable]=\"svr.data.nextPageDisable\"\r\n\t\t\t\t\t[PrevPageDisable]=\"svr.data.prevPageDisable\" (processClick)=\"onToolbarProcessClick($event)\"\r\n\t\t\t\t\t(nextPageClick)=\"onNextPageClick($event)\" (prevPageClick)=\"onPrevPageClick($event)\"\r\n\t\t\t\t\t(rowCountClick)=\"onFooterRowCountClick($event)\">\r\n\t\t\t\t</common-footer-toolbar>\r\n\t\t\t</div>\r\n\t\t</mat-drawer-content>\r\n\t</mat-drawer-container>\r\n</div>", providers: [ServiceService, BackFaceService, ServiceData], styles: ["@charset \"UTF-8\";.record-view{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none;position:relative;display:flex;box-sizing:border-box;flex-direction:column;height:100%;width:100%}.record-view .header{font-size:12px;position:relative;z-index:1;display:inline-flex;justify-content:space-between;align-items:center;height:32px}.record-view .header .left{display:inline-flex;justify-content:space-between;align-items:center;height:32px;line-height:32px}.record-view .header .left .\u4F4D\u7F6E{margin-right:4px}.record-view .header .left .\u7C7B\u522B{margin-right:8px}.record-view .header .left button{width:24px;height:24px;line-height:24px}.record-view .header .left button .\u590D\u5236\u56FE\u6807{width:16px;height:16px;margin-bottom:6px}.record-view .header .left .\u7B49\u5F85\u56FE\u6807{width:16px;height:16px}.record-view .header .left .span\u7B49\u5F85\u56FE\u6807{margin-left:16px;padding-top:8px}.record-view .header .\u8BED\u8A00{font-size:12px;height:24px;line-height:20px}.record-view .toolbar-panel{padding-top:8px;padding-bottom:16px;display:inline-flex;justify-content:space-between}.record-view .toolbar-panel .toolbar{display:inline-flex;align-items:center;border-radius:16px;height:32px}.record-view .toolbar-panel .toolbar ::ng-deep .mat-form-field-underline{display:none}.record-view .toolbar-panel .toolbar .mat-form-field-type-mat-select{padding-top:6px}.record-view .toolbar-panel .toolbar .mat-divider{height:16px}.record-view .toolbar-panel .toolbar.\u9009\u62E9\u5DE5\u5177\u680F{vertical-align:top;box-sizing:border-box;width:152px;padding-left:16px;padding-right:8px;margin-right:24px}.record-view .toolbar-panel .toolbar.\u9009\u62E9\u5DE5\u5177\u680F .\u9009\u62E9\u63D0\u793A{font-size:12px;line-height:18px;width:72px}.record-view .toolbar-panel .toolbar.\u9009\u62E9\u5DE5\u5177\u680F .sel\u9009\u62E9{font-size:14px;width:72px}.record-view .toolbar-panel .toolbar.\u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F{vertical-align:top;box-sizing:border-box;width:360px;padding-left:16px;padding-right:8px;margin-right:8px}.record-view .toolbar-panel .toolbar.\u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F .sel\u6307\u6807{width:80px;font-size:14px;line-height:20px;margin-right:8px}.record-view .toolbar-panel .toolbar.\u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F .sel\u89C4\u5219{width:88px;font-size:14px;line-height:20px;margin-right:8px}.record-view .toolbar-panel .toolbar.\u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F .inp\u503C{margin-left:4px;width:156px}.record-view .toolbar-panel .toolbar.\u5355\u6307\u6807\u6761\u4EF6\u5DE5\u5177\u680F .inp\u503C button{position:relative;top:4px;width:24px;height:24px;line-height:24px}.record-view .toolbar-panel .toolbar.\u6A21\u677F\u5DE5\u5177\u680F{vertical-align:top;box-sizing:border-box;width:112px;padding-left:16px;padding-right:8px}.record-view .toolbar-panel .toolbar.\u6A21\u677F\u5DE5\u5177\u680F .sel{width:88px;font-size:14px;line-height:20px}.record-view .toolbar-panel .toolbar.\u516C\u7528\u6A21\u677F{margin-right:24px}.record-view .toolbar-panel .\u6A21\u677F\u6587\u5B57{font-size:14px;line-height:32px;margin-right:8px}.record-view .toolbar-panel .\u67E5\u8BE2\u6309\u94AE{min-width:56px;border-radius:16px;height:32px;padding-left:12px;padding-right:14px}.record-view .toolbar-panel .\u67E5\u8BE2\u6309\u94AE .mat-icon{position:relative;top:-3px}.record-view .toolbar-panel .\u67E5\u8BE2\u6309\u94AE .\u5206\u5272\u7EBF{display:inline-block;width:1px;height:16px;margin:-3px 4px 3px;vertical-align:middle}.record-view .my-elevation-z5{box-shadow:0 5px 13px 0 rgba(0,0,0,.14)}.record-view .container{width:100%;height:100%}.record-view .container .rec-body{width:100%;height:100%;display:flex;box-sizing:border-box;flex-direction:column;padding-left:8px;padding-bottom:24px}.record-view .container .rec-body .condition-parent{width:100%;height:0;position:relative;flex-grow:1;display:flex;flex-direction:column}.record-view .container .rec-body .condition-button{position:relative}.record-view .container .rec-body .revised-star{position:absolute;top:-8px;right:8px}.record-view .container .rec-body .condition-card{position:absolute;z-index:201;left:0;top:-10px;right:8px;border-radius:4px}.record-view .container .rec-body .condition-mask{position:absolute;z-index:200;left:-8px;top:0;right:0;bottom:0}.record-view .container .rec-body .condition-triangle{position:absolute;z-index:202;top:30px;left:45px;right:0}.record-view .container .rec-body .content{height:100%;width:100%;overflow:auto;flex-grow:1}.record-view .container .rec-body .content .emp-last{height:90px}.record-view .container .rec-body .mat-elevation-z1{box-shadow:none}.record-view .container .rec-body .content::-webkit-scrollbar-button:horizontal:start{height:4px;width:80px}.record-view .container .rec-body .\u64CD\u4F5C\u5DE5\u5177\u680F{height:24px;width:100%}.record-view .container .mat-drawer-content{overflow:hidden}"] }] } ]; /** @nocollapse */ RecordViewComponent.ctorParameters = function () { return [ { type: ServiceService }, { type: RouteElementService }, { type: ProjectService }, { type: ClipboardService }, { type: MatIconRegistry }, { type: DomSanitizer }, { type: Router }, { type: ElementsService } ]; }; RecordViewComponent.propDecorators = { eleName: [{ type: Input }], title: [{ type: Input }], condition: [{ type: Input }], dataTable: [{ type: ViewChild, args: ['dataTable', { static: true },] }], labelDrawer: [{ type: ViewChild, args: ['labelDrawer', { static: false },] }], columnsDrawer: [{ type: ViewChild, args: ['columnsDrawer', { static: false },] }], drawer: [{ type: ViewChild, args: ['drawer', { static: true },] }] }; return RecordViewComponent; }()); export { RecordViewComponent }; if (false) { /** @type {?} */ RecordViewComponent.prototype.eleName; /** @type {?} */ RecordViewComponent.prototype.title; /** @type {?} */ RecordViewComponent.prototype.condition; /** @type {?} */ RecordViewComponent.prototype.dataTable; /** @type {?} */ RecordViewComponent.prototype.labelDrawer; /** @type {?} */ RecordViewComponent.prototype.columnsDrawer; /** @type {?} */ RecordViewComponent.prototype.element; /** @type {?} */ RecordViewComponent.prototype.drawer; /** @type {?} */ RecordViewComponent.prototype.SelectTypeSelected; /** @type {?} */ RecordViewComponent.prototype.SelectTypeUnselected; /** @type {?} */ RecordViewComponent.prototype.showConditionalTemplateRunner; /** @type {?} */ RecordViewComponent.prototype.editLabelModel; /** * @type {?} * @private */ RecordViewComponent.prototype.subscribe; /** @type {?} */ RecordViewComponent.prototype.svr; /** @type {?} */ RecordViewComponent.prototype.ele; /** * @type {?} * @private */ RecordViewComponent.prototype.prj; /** @type {?} */ RecordViewComponent.prototype._clipboardService; /** * @type {?} * @private */ RecordViewComponent.prototype.router; /** * @type {?} * @private */ RecordViewComponent.prototype.eles; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3JlY29yZC12aWV3L3JlY29yZC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQVcsZUFBZSxFQUFFLG1CQUFtQixFQUFxQixjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQWtDLFVBQVUsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFxQixNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUkxRTtJQTBCQyw2QkFDUSxHQUFtQixFQUNuQixHQUF3QixFQUN2QixHQUFt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LENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUMzRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUUsQ0FBQzs7Ozs7SUFDRCw2Q0FBZTs7OztJQUFmLFVBQWdCLEtBQWlCO1FBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFD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Qjs7SUFDM0IsZ0RBQTBDOzs7OztJQUcxQyxxQ0FBc0I7Ozs7O0lBQ3RCLG1DQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBFbGVtZW50LCBFbGVtZW50c1NlcnZpY2UsIFJvdXRlRWxlbWVudFNlcnZpY2UsIFJvdXRlck91dGxldEV2ZW50LCBQcm9qZWN0U2VydmljZSB9IGZyb20gJ2Rid2ViLWNvcmUnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IElSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uL3JvdXRlci1zdGF0ZSc7XHJcbmltcG9ydCB7IExhYmVsRHJhd2VyQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC1kcmF3ZXIvbGFiZWwtZHJhd2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElSZWNvcmRWaWV3UHJvY2VzcywgSVJlbmRlclJvdywgU2VsZWN0VHlwZSwgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi9tb2RlbC9tb2RlbCc7XHJcbmltcG9ydCB7IEJhY2tGYWNlU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9iYWNrZmFjZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VEYXRhIH0gZnJvbSAnLi9zZXJ2aWNlL2RhdGEnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlU2VydmljZSwgUmVmcmVzaERhdGFDb25maWcgfSBmcm9tICcuL3NlcnZpY2Uvc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZXdEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL3ZpZXctZHJhd2VyL3ZpZXctZHJhd2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDVFJMX1JFQ09SRFZJRVcgfSBmcm9tICcuLi9jb25zdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NvbW1vbi1yZWN2aWV3JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3JlY29yZC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbU2VydmljZVNlcnZpY2UsIEJhY2tGYWNlU2VydmljZSwgU2VydmljZURhdGFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBSb3V0ZXJPdXRsZXRFdmVudCwgT25EZXN0cm95IHtcclxuXHRASW5wdXQoKSBlbGVOYW1lOiBzdHJpbmc7XHJcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHRASW5wdXQoKSBjb25kaXRpb246IHN0cmluZztcclxuXHRAVmlld0NoaWxkKCdkYXRhVGFibGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdGRhdGFUYWJsZTogVGFibGVDb21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZCgnbGFiZWxEcmF3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuXHRsYWJlbERyYXdlcjogTGFiZWxEcmF3ZXJDb21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZCgnY29sdW1uc0RyYXdlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG5cdGNvbHVtbnNEcmF3ZXI6IFZpZXdEcmF3ZXJDb21wb25lbnQ7XHJcblx0Ly8g5b2T5YmN55qE5bel5L2c5YWD57SgXHJcblx0ZWxlbWVudDogRWxlbWVudDtcclxuXHQvLyDmoIfnrb7nmoTmir3lsYlcclxuXHRAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdGRyYXdlcjogTWF0RHJhd2VyO1xyXG5cdHJlYWRvbmx5IFNlbGVjdFR5cGVTZWxlY3RlZCA9IFNlbGVjdFR5cGUuU2VsZWN0ZWQ7XHJcblx0cmVhZG9ubHkgU2VsZWN0VHlwZVVuc2VsZWN0ZWQgPSBTZWxlY3RUeXBlLlVuc2VsZWN0ZWQ7XHJcblx0c2hvd0NvbmRpdGlvbmFsVGVtcGxhdGVSdW5uZXIgPSBmYWxzZTtcclxuXHRlZGl0TGFiZWxNb2RlbCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHN2cjogU2VydmljZVNlcnZpY2UsXHJcblx0XHRwdWJsaWMgZWxlOiBSb3V0ZUVsZW1lbnRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBwcmo6IFByb2plY3RTZXJ2aWNlLFxyXG5cdFx0cHVibGljIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG5cdFx0aWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcblx0XHRzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuXHRcdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIGVsZXM6IEVsZW1lbnRzU2VydmljZVxyXG5cdCkge1xyXG5cdFx0Y29uc3QgaWNvbnMgPSBbXHJcblx0XHRcdCdhbGxfY2hvc2VuJyxcclxuXHRcdFx0J2NhbmNlbF9jaG9zZW4nLFxyXG5cdFx0XHQncmV0dXJuX2Nob3NlbicsXHJcblx0XHRcdCdzaW5nbGVfY2hvc2VuJyxcclxuXHRcdFx0J2RvdWJsZV9kb3duJyxcclxuXHRcdFx0J2RyYWdfaW5kaWNhdG9yJyxcclxuXHRcdFx0J2Fycm93X2NvbGxhcHNlJyxcclxuXHRcdFx0J2Fycm93X2V4cGFuZCcsXHJcblx0XHRcdCdzb3J0aW5nX2Fycm93cycsXHJcblx0XHRcdCdjb2xvcl9hZGQnLFxyXG5cdFx0XHQnZmlsZV9jb3B5JyxcclxuXHRcdFx0J2JnX2JvdHRvbV9vdXQnLFxyXG5cdFx0XHQnZGVmYXVsdCdcclxuXHRcdF07XHJcblx0XHRpY29ucy5mb3JFYWNoKHYgPT4ge1xyXG5cdFx0XHRpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbihcclxuXHRcdFx0XHR2LFxyXG5cdFx0XHRcdHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoJ2Fzc2V0cy9yZWNvcmQtdmlldy9pY29uLycgKyB2ICsgJy5zdmcnKVxyXG5cdFx0XHQpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5zdWJzY3JpYmUuZm9yRWFjaCh2ID0+IHYudW5zdWJzY3JpYmUoKSk7XHJcblx0fVxyXG5cdG9uRGV0YWNoKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kYXRhVGFibGUub25EZXRhY2goKTtcclxuXHR9XHJcblx0b25BdHRhY2gocmVmOiBDb21wb25lbnRSZWY8YW55PiwgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XHJcblx0XHR0aGlzLmRhdGFUYWJsZS5vbkF0dGFjaChyZWYsIGFjdGl2YXRlZFJvdXRlKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5zdWJzY3JpYmUucHVzaChcclxuXHRcdFx0dGhpcy5zdnIucmVmcmVzaERhdGFFdmVudC5zdWJzY3JpYmUoKHY6IFJlZnJlc2hEYXRhQ29uZmlnKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kYXRhVGFibGUuc2V0RGF0YVNvdXJjZShcclxuXHRcdFx0XHRcdHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhLlJvd3MsXHJcblx0XHRcdFx0XHR0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5EaXNwbGF5Q29sdW1ucy5tYXAodnYgPT4gKHsgLi4udnYgfSBhcyBUYWJsZUNvbHVtblR5cGUpKSxcclxuXHRcdFx0XHRcdCh2ICYmIHYua2VlcERpdmlkZSkgfHwgKHYgJiYgdi5rZWVwUm93Q291bnQpXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0XHQvLyDlpoLmnpzmmK/nu4Tku7bmlrnlvI/osIPnlKhcclxuXHRcdGlmICh0aGlzLmVsZU5hbWUgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLnN2ci5pbml0QnlDb25kaXRpb24odGhpcy5lbGVzLmdldCh0aGlzLmVsZU5hbWUpLCB0aGlzLnRpdGxlLCB0aGlzLmNvbmRpdGlvbik7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBpbml0IHBhcmFtXHJcblx0XHRcdHRoaXMuZWxlLmN1cnJlbnRFbGVtZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc3ZyLmluaXQodi5lbGVtZW50LCB0aGlzLnByai5mcm9udFRvQXBpVVJMKHYudXJsKSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRzZWxlY3RlZFJvd1RleHQoKSB7XHJcblx0XHRjb25zdCB0b3RhbCA9IHRoaXMuc3ZyLmRhdGEudGFibGVSb3dTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG5cdFx0bGV0IGN1cnJlbnQgPSAwO1xyXG5cdFx0aWYgKHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhICYmIHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhLlJvd3MpIHtcclxuXHRcdFx0Y3VycmVudCA9IHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhLlJvd3MuZmlsdGVyKHJvdyA9PiB0aGlzLnN2ci5kYXRhLnRhYmxlUm93U2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93LktleSkpXHJcblx0XHRcdFx0Lmxlbmd0aDtcclxuXHRcdH1cclxuXHRcdGlmICh0b3RhbCA9PT0gY3VycmVudCkge1xyXG5cdFx0XHRyZXR1cm4gYOW3sumAiSR7dG90YWx95p2hYDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBgJHtjdXJyZW50fS8ke3RvdGFsfWA7XHJcblx0XHR9XHJcblx0fVxyXG5cdG9uVGFibGVTb3J0KHNvcnRJbmZvOiBTb3J0KSB7XHJcblx0XHRzd2l0Y2ggKHNvcnRJbmZvLmRpcmVjdGlvbikge1xyXG5cdFx0XHRjYXNlICcnOlxyXG5cdFx0XHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5PcmRlciA9IG51bGw7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ2FzYyc6XHJcblx0XHRcdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLk9yZGVyID0gW3NvcnRJbmZvLmFjdGl2ZV07XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ2Rlc2MnOlxyXG5cdFx0XHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5PcmRlciA9IFtgLSR7c29ydEluZm8uYWN0aXZlfWBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3ZyLnJlZnJlc2hEYXRhKHsga2VlcFJvd0NvdW50OiB0cnVlIH0pLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHRzZWFyY2hDbGljaygpIHtcclxuXHRcdHRoaXMuc2hvd0NvbmRpdGlvbmFsVGVtcGxhdGVSdW5uZXIgPSBmYWxzZTtcclxuXHRcdHRoaXMuc3ZyLnJlZnJlc2hEYXRhKCkuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRvblJlY29yZFByb2Nlc3NDbGljayhldmVudDogeyBwcm86IElSZWNvcmRWaWV3UHJvY2Vzczsgcm93OiBJUmVuZGVyUm93IH0pIHtcclxuXHRcdGxldCBmaWVsZHMgPSB0aGlzLnN2ci5kYXRhLnVuaXF1ZUZpZWxkcztcclxuXHRcdGlmIChldmVudC5wcm8uVHJhbnNQYXRoICYmIGV2ZW50LnByby5UcmFuc1BhdGgubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRmaWVsZHMgPSBldmVudC5wcm8uVHJhbnNQYXRoO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qga2V5VmFsdWVzID0gZmllbGRzLm1hcCh2ID0+IGBbJHtldmVudC5yb3cuRGF0YVt2XX1dYCkuam9pbignICcpO1xyXG5cdFx0Y29uc3QgdXN0ciA9IHRoaXMuZWxlcy5mcm9udEVsZW1lbnRVUkwoXHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEucm93UHJvY2Vzc2VzLmZpbmQodiA9PiB2Lk5hbWUgPT09IGV2ZW50LnByby5OYW1lKS5FbGVtZW50TmFtZSxcclxuXHRcdFx0ZXZlbnQucm93LlByb2Nlc3Nlc1tldmVudC5wcm8uTmFtZV0uVVJMXHJcblx0XHQpO1xyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1c3RyLCB7XHJcblx0XHRcdHN0YXRlOiB7XHJcblx0XHRcdFx0Ly8g5Zug5Li6cm91dGXoh6rliqjkvJrov5vooYxlbmNvZGXvvIzmiYDku6XpnIDopoHmiormnI3liqHnq6/nmoR1cmzop6PlvIDvvIzkvYbmmK/mnI3liqHnq6/lj4jkuI3og73kuI3nvJbnoIHvvIzlm6DkuLrmlpzmnaDpnIDopoHmraPnoa7lpITnkIZcclxuXHRcdFx0XHR1cmw6IHRoaXMucm91dGVyLnBhcnNlVXJsKHVzdHIpLFxyXG5cdFx0XHRcdGtleTogdXN0cixcclxuXHRcdFx0XHR0aXRsZTogYCR7ZXZlbnQucHJvLk5hbWV9IC0gJHtrZXlWYWx1ZXN9YFxyXG5cdFx0XHR9IGFzIElSb3V0ZXJTdGF0ZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdG9uVG9vbGJhclByb2Nlc3NDbGljayhwcm86IElSZWNvcmRWaWV3UHJvY2Vzcykge1xyXG5cdFx0Y29uc3QgdXN0ciA9IHRoaXMuZWxlcy5mcm9udEVsZW1lbnRVUkwocHJvLkVsZW1lbnROYW1lLCB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Qcm9jZXNzZXNbcHJvLk5hbWVdLlVSTCk7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVzdHIsIHtcclxuXHRcdFx0c3RhdGU6IHtcclxuXHRcdFx0XHR1cmw6IHRoaXMucm91dGVyLnBhcnNlVXJsKHVzdHIpLFxyXG5cdFx0XHRcdGtleTogdXN0cixcclxuXHRcdFx0XHR0aXRsZTogcHJvLk5hbWVcclxuXHRcdFx0fSBhcyBJUm91dGVyU3RhdGVcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRvbk5leHRQYWdlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuXHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5EaXZpZGUgPSB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Eb3duRGl2aWRlO1xyXG5cdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLkRpdmlkZVJvd051bSA9IHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhLkRvd25Sb3dOdW07XHJcblx0XHRpZiAodGhpcy5zdnIuZGF0YS5wcmV2RmV0Y2hEaXZpZGUpIHtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS51cERpdmlkZSA9IHRoaXMuc3ZyLmRhdGEudXBEaXZpZGUgfHwgW107XHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEudXBSb3dOdW0gPSB0aGlzLnN2ci5kYXRhLnVwUm93TnVtIHx8IFtdO1xyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLnVwRGl2aWRlLnB1c2godGhpcy5zdnIuZGF0YS5wcmV2RmV0Y2hEaXZpZGUpO1xyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLnVwUm93TnVtLnB1c2godGhpcy5zdnIuZGF0YS5wcmV2RmV0Y2hSb3dOdW0pO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zdnIucmVmcmVzaERhdGEoeyBrZWVwRGl2aWRlOiB0cnVlLCBrZWVwUm93Q291bnQ6IHRydWUgfSkuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cdG9uUHJldlBhZ2VDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKHRoaXMuc3ZyLmRhdGEudXBEaXZpZGUpIHtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLkRpdmlkZSA9IHRoaXMuc3ZyLmRhdGEudXBEaXZpZGUucG9wKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLmZldGNoUGFyYW0uRGl2aWRlID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuc3ZyLmRhdGEudXBSb3dOdW0pIHtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLkRpdmlkZVJvd051bSA9IHRoaXMuc3ZyLmRhdGEudXBSb3dOdW0ucG9wKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLmZldGNoUGFyYW0uRGl2aWRlUm93TnVtID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zdnIucmVmcmVzaERhdGEoeyBrZWVwRGl2aWRlOiB0cnVlLCBrZWVwUm93Q291bnQ6IHRydWUgfSkuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cdG9uRm9vdGVyUm93Q291bnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG5cdFx0dGhpcy5zdnIucmVmcmVzaFJvd0NvdW50KCkuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cdHN0YXJ0Um93Tm8oKSB7XHJcblx0XHRpZiAodGhpcy5zdnIuZGF0YSAmJiB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YSAmJiB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Sb3dzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuc3ZyLmRhdGEudGFibGVEYXRhLlJvd3NbMF0uUm93TnVtICsgMTtcclxuXHRcdH1cclxuXHRcdHJldHVybiAwO1xyXG5cdH1cclxuXHRvcGVuTGFiZWxEcmF3ZXIoKSB7XHJcblx0XHR0aGlzLnN2ci5kYXRhLnNob3dMYWJlbERyYXdlciA9IHRydWU7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0Ly8g5aSN5Yi2LOWboOS4uuWvueivneahhuWGhemDqOS8muaUueWPmOWAvFxyXG5cdFx0XHR0aGlzLmxhYmVsRHJhd2VyLnNlbGVjdGVkTGFiZWxzID0gWy4uLnRoaXMuc3ZyLmRhdGEuc2VsZWN0ZWRMYWJlbHNdO1xyXG5cdFx0XHQvLyDngrnlh7vmqKHmnb/miZPlvIDmir3lsYlcclxuXHRcdFx0dGhpcy5kcmF3ZXIudG9nZ2xlKCk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcblx0b3BlbkNvbHVtbnNEcmF3ZXIoKSB7XHJcblx0XHR0aGlzLnN2ci5kYXRhLnNob3dMYWJlbERyYXdlciA9IGZhbHNlO1xyXG5cdFx0aWYgKCF0aGlzLnN2ci5kYXRhLnZpZXdMaXN0IHx8IHRoaXMuc3ZyLmRhdGEudmlld0xpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHRoaXMuc3ZyLmVkaXRWaWV3LmFkZCgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdnIuZWRpdFZpZXcudGl0bGVJbnB1dCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLnN2ci5lZGl0Vmlldy5jdXJyZW50ID0gdGhpcy5zdnIuZGF0YS52aWV3TGlzdFswXTtcclxuXHRcdH1cclxuXHRcdC8vIOeCueWHu+aooeadv+aJk+W8gOaKveWxiVxyXG5cdFx0dGhpcy5kcmF3ZXIudG9nZ2xlKCk7XHJcblx0fVxyXG5cdGhhc0NvbmRpdGlvbmFsVGVtcGxhdGUoKSB7XHJcblx0XHRyZXR1cm4gISF0aGlzLnN2ci5kYXRhLmNvbmRpdGlvbmFsVGVtcGxhdGVzLmZpbmQodiA9PiB2LmVuYWJsZSk7XHJcblx0fVxyXG5cdGNsb3NlRHJhd2VyKCkge1xyXG5cdFx0Ly8gdGhpcy5sYWJlbERyYXdlci5lZGl0TW9kZWwgPSBmYWxzZTtcclxuXHRcdHRoaXMuZWRpdExhYmVsTW9kZWwgPSBmYWxzZTtcclxuXHRcdGNvbnNvbGUubG9nKCdjbG9zZScsIHRoaXMuZWRpdExhYmVsTW9kZWwsIHRoaXMubGFiZWxEcmF3ZXIuZWRpdE1vZGVsKTtcclxuXHR9XHJcbn1cclxuIl19