dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
393 lines • 47.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
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';
export class RecordViewComponent {
/**
* @param {?} svr
* @param {?} ele
* @param {?} prj
* @param {?} _clipboardService
* @param {?} iconRegistry
* @param {?} sanitizer
* @param {?} router
* @param {?} eles
*/
constructor(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 {?} */
const 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 {?}
*/
v => {
iconRegistry.addSvgIcon(v, sanitizer.bypassSecurityTrustResourceUrl('assets/record-view/icon/' + v + '.svg'));
}));
}
/**
* @return {?}
*/
ngOnDestroy() {
this.subscribe.forEach((/**
* @param {?} v
* @return {?}
*/
v => v.unsubscribe()));
}
/**
* @return {?}
*/
onDetach() {
this.dataTable.onDetach();
}
/**
* @param {?} ref
* @param {?} activatedRoute
* @return {?}
*/
onAttach(ref, activatedRoute) {
this.dataTable.onAttach(ref, activatedRoute);
}
/**
* @return {?}
*/
ngOnInit() {
this.subscribe.push(this.svr.refreshDataEvent.subscribe((/**
* @param {?} v
* @return {?}
*/
(v) => {
this.dataTable.setDataSource(this.svr.data.tableData.Rows, this.svr.data.tableData.DisplayColumns.map((/**
* @param {?} vv
* @return {?}
*/
vv => ((/** @type {?} */ (Object.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 {?}
*/
v => {
this.svr.init(v.element, this.prj.frontToApiURL(v.url));
}));
}
}
/**
* @return {?}
*/
selectedRowText() {
/** @type {?} */
const total = this.svr.data.tableRowSelection.selected.length;
/** @type {?} */
let current = 0;
if (this.svr.data.tableData && this.svr.data.tableData.Rows) {
current = this.svr.data.tableData.Rows.filter((/**
* @param {?} row
* @return {?}
*/
row => this.svr.data.tableRowSelection.isSelected(row.Key)))
.length;
}
if (total === current) {
return `已选${total}条`;
}
else {
return `${current}/${total}`;
}
}
/**
* @param {?} sortInfo
* @return {?}
*/
onTableSort(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 {?}
*/
searchClick() {
this.showConditionalTemplateRunner = false;
this.svr.refreshData().subscribe();
}
/**
* @param {?} event
* @return {?}
*/
onRecordProcessClick(event) {
/** @type {?} */
let fields = this.svr.data.uniqueFields;
if (event.pro.TransPath && event.pro.TransPath.length > 0) {
fields = event.pro.TransPath;
}
/** @type {?} */
const keyValues = fields.map((/**
* @param {?} v
* @return {?}
*/
v => `[${event.row.Data[v]}]`)).join(' ');
/** @type {?} */
const ustr = this.eles.frontElementURL(this.svr.data.rowProcesses.find((/**
* @param {?} v
* @return {?}
*/
v => 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 {?}
*/
onToolbarProcessClick(pro) {
/** @type {?} */
const 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 {?}
*/
onNextPageClick(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 {?}
*/
onPrevPageClick(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 {?}
*/
onFooterRowCountClick(event) {
this.svr.refreshRowCount().subscribe();
}
/**
* @return {?}
*/
startRowNo() {
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 {?}
*/
openLabelDrawer() {
this.svr.data.showLabelDrawer = true;
setTimeout((/**
* @return {?}
*/
() => {
// 复制,因为对话框内部会改变值
this.labelDrawer.selectedLabels = [...this.svr.data.selectedLabels];
// 点击模板打开抽屉
this.drawer.toggle();
}), 0);
}
/**
* @return {?}
*/
openColumnsDrawer() {
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 {?}
*/
hasConditionalTemplate() {
return !!this.svr.data.conditionalTemplates.find((/**
* @param {?} v
* @return {?}
*/
v => v.enable));
}
/**
* @return {?}
*/
closeDrawer() {
// 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 = () => [
{ 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 },] }]
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3JlY29yZC12aWV3L3JlY29yZC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBVyxlQUFlLEVBQUUsbUJBQW1CLEVBQXFCLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBa0MsVUFBVSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBVTFFLE1BQU0sT0FBTyxtQkFBbUI7Ozs7Ozs7Ozs7O0lBb0IvQixZQUNRLEdB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Q3ZFLENBQUM7OztZQWpORCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsMnVNQUEyQztnQkFFM0MsU0FBUyxFQUFFLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUM7O2FBQ3pEOzs7O1lBWFEsY0FBYztZQVJZLG1CQUFtQjtZQUFxQixjQUFjO1lBQ2hGLGdCQUFnQjtZQU5oQixlQUFlO1lBR2YsWUFBWTtZQUNJLE1BQU07WUFDYixlQUFlOzs7c0JBcUIvQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTswQkFFdkMsU0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBRTFDLFNBQVMsU0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3FCQUs1QyxTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7OztJQVpyQyxzQ0FBeUI7O0lBQ3pCLG9DQUF1Qjs7SUFDdkIsd0NBQTJCOztJQUMzQix3Q0FDMEI7O0lBQzFCLDBDQUNrQzs7SUFDbEMsNENBQ21DOztJQUVuQyxzQ0FBaUI7O0lBRWpCLHFDQUNrQjs7SUFDbEIsaURBQWtEOztJQUNsRCxtREFBc0Q7O0lBQ3RELDREQUFzQzs7SUFDdEMsNkNBQXVCOzs7OztJQUN2Qix3Q0FBdUM7O0lBRXRDLGtDQUEwQjs7SUFDMUIsa0NBQStCOzs7OztJQUMvQixrQ0FBMkI7O0lBQzNCLGdEQUEwQzs7Ozs7SUFHMUMscUNBQXNCOzs7OztJQUN0QixtQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdERyYXdlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRWxlbWVudCwgRWxlbWVudHNTZXJ2aWNlLCBSb3V0ZUVsZW1lbnRTZXJ2aWNlLCBSb3V0ZXJPdXRsZXRFdmVudCwgUHJvamVjdFNlcnZpY2UgfSBmcm9tICdkYndlYi1jb3JlJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJUm91dGVyU3RhdGUgfSBmcm9tICcuLi9yb3V0ZXItc3RhdGUnO1xyXG5pbXBvcnQgeyBMYWJlbERyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vbGFiZWwtZHJhd2VyL2xhYmVsLWRyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJUmVjb3JkVmlld1Byb2Nlc3MsIElSZW5kZXJSb3csIFNlbGVjdFR5cGUsIFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4vbW9kZWwvbW9kZWwnO1xyXG5pbXBvcnQgeyBCYWNrRmFjZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvYmFja2ZhY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGF0YSB9IGZyb20gJy4vc2VydmljZS9kYXRhJztcclxuaW1wb3J0IHsgU2VydmljZVNlcnZpY2UsIFJlZnJlc2hEYXRhQ29uZmlnIH0gZnJvbSAnLi9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3RHJhd2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3LWRyYXdlci92aWV3LWRyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ1RSTF9SRUNPUkRWSUVXIH0gZnJvbSAnLi4vY29uc3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjb21tb24tcmVjdmlldycsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3JlY29yZC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9yZWNvcmQtdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW1NlcnZpY2VTZXJ2aWNlLCBCYWNrRmFjZVNlcnZpY2UsIFNlcnZpY2VEYXRhXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgUm91dGVyT3V0bGV0RXZlbnQsIE9uRGVzdHJveSB7XHJcblx0QElucHV0KCkgZWxlTmFtZTogc3RyaW5nO1xyXG5cdEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblx0QElucHV0KCkgY29uZGl0aW9uOiBzdHJpbmc7XHJcblx0QFZpZXdDaGlsZCgnZGF0YVRhYmxlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRkYXRhVGFibGU6IFRhYmxlQ29tcG9uZW50O1xyXG5cdEBWaWV3Q2hpbGQoJ2xhYmVsRHJhd2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcblx0bGFiZWxEcmF3ZXI6IExhYmVsRHJhd2VyQ29tcG9uZW50O1xyXG5cdEBWaWV3Q2hpbGQoJ2NvbHVtbnNEcmF3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuXHRjb2x1bW5zRHJhd2VyOiBWaWV3RHJhd2VyQ29tcG9uZW50O1xyXG5cdC8vIOW9k+WJjeeahOW3peS9nOWFg+e0oFxyXG5cdGVsZW1lbnQ6IEVsZW1lbnQ7XHJcblx0Ly8g5qCH562+55qE5oq95bGJXHJcblx0QFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRkcmF3ZXI6IE1hdERyYXdlcjtcclxuXHRyZWFkb25seSBTZWxlY3RUeXBlU2VsZWN0ZWQgPSBTZWxlY3RUeXBlLlNlbGVjdGVkO1xyXG5cdHJlYWRvbmx5IFNlbGVjdFR5cGVVbnNlbGVjdGVkID0gU2VsZWN0VHlwZS5VbnNlbGVjdGVkO1xyXG5cdHNob3dDb25kaXRpb25hbFRlbXBsYXRlUnVubmVyID0gZmFsc2U7XHJcblx0ZWRpdExhYmVsTW9kZWwgPSBmYWxzZTtcclxuXHRwcml2YXRlIHN1YnNjcmliZTogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBzdnI6IFNlcnZpY2VTZXJ2aWNlLFxyXG5cdFx0cHVibGljIGVsZTogUm91dGVFbGVtZW50U2VydmljZSxcclxuXHRcdHByaXZhdGUgcHJqOiBQcm9qZWN0U2VydmljZSxcclxuXHRcdHB1YmxpYyBfY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSxcclxuXHRcdGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG5cdFx0c2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcblx0XHRwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJpdmF0ZSBlbGVzOiBFbGVtZW50c1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdGNvbnN0IGljb25zID0gW1xyXG5cdFx0XHQnYWxsX2Nob3NlbicsXHJcblx0XHRcdCdjYW5jZWxfY2hvc2VuJyxcclxuXHRcdFx0J3JldHVybl9jaG9zZW4nLFxyXG5cdFx0XHQnc2luZ2xlX2Nob3NlbicsXHJcblx0XHRcdCdkb3VibGVfZG93bicsXHJcblx0XHRcdCdkcmFnX2luZGljYXRvcicsXHJcblx0XHRcdCdhcnJvd19jb2xsYXBzZScsXHJcblx0XHRcdCdhcnJvd19leHBhbmQnLFxyXG5cdFx0XHQnc29ydGluZ19hcnJvd3MnLFxyXG5cdFx0XHQnY29sb3JfYWRkJyxcclxuXHRcdFx0J2ZpbGVfY29weScsXHJcblx0XHRcdCdiZ19ib3R0b21fb3V0JyxcclxuXHRcdFx0J2RlZmF1bHQnXHJcblx0XHRdO1xyXG5cdFx0aWNvbnMuZm9yRWFjaCh2ID0+IHtcclxuXHRcdFx0aWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oXHJcblx0XHRcdFx0dixcclxuXHRcdFx0XHRzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKCdhc3NldHMvcmVjb3JkLXZpZXcvaWNvbi8nICsgdiArICcuc3ZnJylcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuc3Vic2NyaWJlLmZvckVhY2godiA9PiB2LnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxuXHRvbkRldGFjaCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZGF0YVRhYmxlLm9uRGV0YWNoKCk7XHJcblx0fVxyXG5cdG9uQXR0YWNoKHJlZjogQ29tcG9uZW50UmVmPGFueT4sIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQge1xyXG5cdFx0dGhpcy5kYXRhVGFibGUub25BdHRhY2gocmVmLCBhY3RpdmF0ZWRSb3V0ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuc3Vic2NyaWJlLnB1c2goXHJcblx0XHRcdHRoaXMuc3ZyLnJlZnJlc2hEYXRhRXZlbnQuc3Vic2NyaWJlKCh2OiBSZWZyZXNoRGF0YUNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGF0YVRhYmxlLnNldERhdGFTb3VyY2UoXHJcblx0XHRcdFx0XHR0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Sb3dzLFxyXG5cdFx0XHRcdFx0dGhpcy5zdnIuZGF0YS50YWJsZURhdGEuRGlzcGxheUNvbHVtbnMubWFwKHZ2ID0+ICh7IC4uLnZ2IH0gYXMgVGFibGVDb2x1bW5UeXBlKSksXHJcblx0XHRcdFx0XHQodiAmJiB2LmtlZXBEaXZpZGUpIHx8ICh2ICYmIHYua2VlcFJvd0NvdW50KVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdFx0Ly8g5aaC5p6c5piv57uE5Lu25pa55byP6LCD55SoXHJcblx0XHRpZiAodGhpcy5lbGVOYW1lICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5zdnIuaW5pdEJ5Q29uZGl0aW9uKHRoaXMuZWxlcy5nZXQodGhpcy5lbGVOYW1lKSwgdGhpcy50aXRsZSwgdGhpcy5jb25kaXRpb24pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gaW5pdCBwYXJhbVxyXG5cdFx0XHR0aGlzLmVsZS5jdXJyZW50RWxlbWVudC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh2ID0+IHtcclxuXHRcdFx0XHR0aGlzLnN2ci5pbml0KHYuZWxlbWVudCwgdGhpcy5wcmouZnJvbnRUb0FwaVVSTCh2LnVybCkpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblx0c2VsZWN0ZWRSb3dUZXh0KCkge1xyXG5cdFx0Y29uc3QgdG90YWwgPSB0aGlzLnN2ci5kYXRhLnRhYmxlUm93U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuXHRcdGxldCBjdXJyZW50ID0gMDtcclxuXHRcdGlmICh0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YSAmJiB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Sb3dzKSB7XHJcblx0XHRcdGN1cnJlbnQgPSB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Sb3dzLmZpbHRlcihyb3cgPT4gdGhpcy5zdnIuZGF0YS50YWJsZVJvd1NlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdy5LZXkpKVxyXG5cdFx0XHRcdC5sZW5ndGg7XHJcblx0XHR9XHJcblx0XHRpZiAodG90YWwgPT09IGN1cnJlbnQpIHtcclxuXHRcdFx0cmV0dXJuIGDlt7LpgIkke3RvdGFsfeadoWA7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gYCR7Y3VycmVudH0vJHt0b3RhbH1gO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRvblRhYmxlU29ydChzb3J0SW5mbzogU29ydCkge1xyXG5cdFx0c3dpdGNoIChzb3J0SW5mby5kaXJlY3Rpb24pIHtcclxuXHRcdFx0Y2FzZSAnJzpcclxuXHRcdFx0XHR0aGlzLnN2ci5kYXRhLmZldGNoUGFyYW0uT3JkZXIgPSBudWxsO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdhc2MnOlxyXG5cdFx0XHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5PcmRlciA9IFtzb3J0SW5mby5hY3RpdmVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdkZXNjJzpcclxuXHRcdFx0XHR0aGlzLnN2ci5kYXRhLmZldGNoUGFyYW0uT3JkZXIgPSBbYC0ke3NvcnRJbmZvLmFjdGl2ZX1gXTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnN2ci5yZWZyZXNoRGF0YSh7IGtlZXBSb3dDb3VudDogdHJ1ZSB9KS5zdWJzY3JpYmUoKTtcclxuXHR9XHJcblx0c2VhcmNoQ2xpY2soKSB7XHJcblx0XHR0aGlzLnNob3dDb25kaXRpb25hbFRlbXBsYXRlUnVubmVyID0gZmFsc2U7XHJcblx0XHR0aGlzLnN2ci5yZWZyZXNoRGF0YSgpLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHJcblx0b25SZWNvcmRQcm9jZXNzQ2xpY2soZXZlbnQ6IHsgcHJvOiBJUmVjb3JkVmlld1Byb2Nlc3M7IHJvdzogSVJlbmRlclJvdyB9KSB7XHJcblx0XHRsZXQgZmllbGRzID0gdGhpcy5zdnIuZGF0YS51bmlxdWVGaWVsZHM7XHJcblx0XHRpZiAoZXZlbnQucHJvLlRyYW5zUGF0aCAmJiBldmVudC5wcm8uVHJhbnNQYXRoLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0ZmllbGRzID0gZXZlbnQucHJvLlRyYW5zUGF0aDtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGtleVZhbHVlcyA9IGZpZWxkcy5tYXAodiA9PiBgWyR7ZXZlbnQucm93LkRhdGFbdl19XWApLmpvaW4oJyAnKTtcclxuXHRcdGNvbnN0IHVzdHIgPSB0aGlzLmVsZXMuZnJvbnRFbGVtZW50VVJMKFxyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLnJvd1Byb2Nlc3Nlcy5maW5kKHYgPT4gdi5OYW1lID09PSBldmVudC5wcm8uTmFtZSkuRWxlbWVudE5hbWUsXHJcblx0XHRcdGV2ZW50LnJvdy5Qcm9jZXNzZXNbZXZlbnQucHJvLk5hbWVdLlVSTFxyXG5cdFx0KTtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXN0ciwge1xyXG5cdFx0XHRzdGF0ZToge1xyXG5cdFx0XHRcdC8vIOWboOS4unJvdXRl6Ieq5Yqo5Lya6L+b6KGMZW5jb2Rl77yM5omA5Lul6ZyA6KaB5oqK5pyN5Yqh56uv55qEdXJs6Kej5byA77yM5L2G5piv5pyN5Yqh56uv5Y+I5LiN6IO95LiN57yW56CB77yM5Zug5Li65pac5p2g6ZyA6KaB5q2j56Gu5aSE55CGXHJcblx0XHRcdFx0dXJsOiB0aGlzLnJvdXRlci5wYXJzZVVybCh1c3RyKSxcclxuXHRcdFx0XHRrZXk6IHVzdHIsXHJcblx0XHRcdFx0dGl0bGU6IGAke2V2ZW50LnByby5OYW1lfSAtICR7a2V5VmFsdWVzfWBcclxuXHRcdFx0fSBhcyBJUm91dGVyU3RhdGVcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRvblRvb2xiYXJQcm9jZXNzQ2xpY2socHJvOiBJUmVjb3JkVmlld1Byb2Nlc3MpIHtcclxuXHRcdGNvbnN0IHVzdHIgPSB0aGlzLmVsZXMuZnJvbnRFbGVtZW50VVJMKHByby5FbGVtZW50TmFtZSwgdGhpcy5zdnIuZGF0YS50YWJsZURhdGEuUHJvY2Vzc2VzW3Byby5OYW1lXS5VUkwpO1xyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1c3RyLCB7XHJcblx0XHRcdHN0YXRlOiB7XHJcblx0XHRcdFx0dXJsOiB0aGlzLnJvdXRlci5wYXJzZVVybCh1c3RyKSxcclxuXHRcdFx0XHRrZXk6IHVzdHIsXHJcblx0XHRcdFx0dGl0bGU6IHByby5OYW1lXHJcblx0XHRcdH0gYXMgSVJvdXRlclN0YXRlXHJcblx0XHR9KTtcclxuXHR9XHJcblx0b25OZXh0UGFnZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcblx0XHR0aGlzLnN2ci5kYXRhLmZldGNoUGFyYW0uRGl2aWRlID0gdGhpcy5zdnIuZGF0YS50YWJsZURhdGEuRG93bkRpdmlkZTtcclxuXHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5EaXZpZGVSb3dOdW0gPSB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Eb3duUm93TnVtO1xyXG5cdFx0aWYgKHRoaXMuc3ZyLmRhdGEucHJldkZldGNoRGl2aWRlKSB7XHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEudXBEaXZpZGUgPSB0aGlzLnN2ci5kYXRhLnVwRGl2aWRlIHx8IFtdO1xyXG5cdFx0XHR0aGlzLnN2ci5kYXRhLnVwUm93TnVtID0gdGhpcy5zdnIuZGF0YS51cFJvd051bSB8fCBbXTtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS51cERpdmlkZS5wdXNoKHRoaXMuc3ZyLmRhdGEucHJldkZldGNoRGl2aWRlKTtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS51cFJvd051bS5wdXNoKHRoaXMuc3ZyLmRhdGEucHJldkZldGNoUm93TnVtKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuc3ZyLnJlZnJlc2hEYXRhKHsga2VlcERpdmlkZTogdHJ1ZSwga2VlcFJvd0NvdW50OiB0cnVlIH0pLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHRvblByZXZQYWdlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICh0aGlzLnN2ci5kYXRhLnVwRGl2aWRlKSB7XHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5EaXZpZGUgPSB0aGlzLnN2ci5kYXRhLnVwRGl2aWRlLnBvcCgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLkRpdmlkZSA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLnN2ci5kYXRhLnVwUm93TnVtKSB7XHJcblx0XHRcdHRoaXMuc3ZyLmRhdGEuZmV0Y2hQYXJhbS5EaXZpZGVSb3dOdW0gPSB0aGlzLnN2ci5kYXRhLnVwUm93TnVtLnBvcCgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdnIuZGF0YS5mZXRjaFBhcmFtLkRpdmlkZVJvd051bSA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHRcdHRoaXMuc3ZyLnJlZnJlc2hEYXRhKHsga2VlcERpdmlkZTogdHJ1ZSwga2VlcFJvd0NvdW50OiB0cnVlIH0pLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHRvbkZvb3RlclJvd0NvdW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuXHRcdHRoaXMuc3ZyLnJlZnJlc2hSb3dDb3VudCgpLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHRzdGFydFJvd05vKCkge1xyXG5cdFx0aWYgKHRoaXMuc3ZyLmRhdGEgJiYgdGhpcy5zdnIuZGF0YS50YWJsZURhdGEgJiYgdGhpcy5zdnIuZGF0YS50YWJsZURhdGEuUm93cy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnN2ci5kYXRhLnRhYmxlRGF0YS5Sb3dzWzBdLlJvd051bSArIDE7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gMDtcclxuXHR9XHJcblx0b3BlbkxhYmVsRHJhd2VyKCkge1xyXG5cdFx0dGhpcy5zdnIuZGF0YS5zaG93TGFiZWxEcmF3ZXIgPSB0cnVlO1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdC8vIOWkjeWItizlm6DkuLrlr7nor53moYblhoXpg6jkvJrmlLnlj5jlgLxcclxuXHRcdFx0dGhpcy5sYWJlbERyYXdlci5zZWxlY3RlZExhYmVscyA9IFsuLi50aGlzLnN2ci5kYXRhLnNlbGVjdGVkTGFiZWxzXTtcclxuXHRcdFx0Ly8g54K55Ye75qih5p2/5omT5byA5oq95bGJXHJcblx0XHRcdHRoaXMuZHJhd2VyLnRvZ2dsZSgpO1xyXG5cdFx0fSwgMCk7XHJcblx0fVxyXG5cdG9wZW5Db2x1bW5zRHJhd2VyKCkge1xyXG5cdFx0dGhpcy5zdnIuZGF0YS5zaG93TGFiZWxEcmF3ZXIgPSBmYWxzZTtcclxuXHRcdGlmICghdGhpcy5zdnIuZGF0YS52aWV3TGlzdCB8fCB0aGlzLnN2ci5kYXRhLnZpZXdMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLnN2ci5lZGl0Vmlldy5hZGQoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuc3ZyLmVkaXRWaWV3LnRpdGxlSW5wdXQgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zdnIuZWRpdFZpZXcuY3VycmVudCA9IHRoaXMuc3ZyLmRhdGEudmlld0xpc3RbMF07XHJcblx0XHR9XHJcblx0XHQvLyDngrnlh7vmqKHmnb/miZPlvIDmir3lsYlcclxuXHRcdHRoaXMuZHJhd2VyLnRvZ2dsZSgpO1xyXG5cdH1cclxuXHRoYXNDb25kaXRpb25hbFRlbXBsYXRlKCkge1xyXG5cdFx0cmV0dXJuICEhdGhpcy5zdnIuZGF0YS5jb25kaXRpb25hbFRlbXBsYXRlcy5maW5kKHYgPT4gdi5lbmFibGUpO1xyXG5cdH1cclxuXHRjbG9zZURyYXdlcigpIHtcclxuXHRcdC8vIHRoaXMubGFiZWxEcmF3ZXIuZWRpdE1vZGVsID0gZmFsc2U7XHJcblx0XHR0aGlzLmVkaXRMYWJlbE1vZGVsID0gZmFsc2U7XHJcblx0XHRjb25zb2xlLmxvZygnY2xvc2UnLCB0aGlzLmVkaXRMYWJlbE1vZGVsLCB0aGlzLmxhYmVsRHJhd2VyLmVkaXRNb2RlbCk7XHJcblx0fVxyXG59XHJcbiJdfQ==