UNPKG

dbweb-common

Version:

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

153 lines 39.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, HostBinding, ViewChild } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ImportService } from './import.service'; import { TabsService } from '../home/tabs.service'; import { PromptDialogComponent } from '../components/prompt-dialog/prompt-dialog.component'; import { ConfirmDialogComponent } from '../components/confirm-dialog/confirm-dialog.component'; export class ImportComponent { // selected = '(SKIP)'; /** * @param {?} svr * @param {?} dialog * @param {?} tabs */ constructor(svr, dialog, tabs) { this.svr = svr; this.dialog = dialog; this.tabs = tabs; this.hostClass = true; // @ViewChild('fileInput', { static: true }) fileInput: any; 先留着让我学习 this.exp = true; this.isDisplay0 = true; this.isDisplayflex = true; this.isInfo = false; this.isHidden = false; this.isShowSpan = false; } /** * @return {?} */ ngOnInit() { this.svr.init(); } // 选择文件时触发文件提交 /** * @param {?} files * @return {?} */ uploadFile(files) { this.svr.file = files[0]; } /** * @param {?} e * @return {?} */ dragoverFile(e) { e.preventDefault(); } /** * @param {?} e * @return {?} */ drop(e) { this.svr.file = e.dataTransfer.files[0]; e.preventDefault(); } // ↓↓↓ 侧边栏 信息显示11 /** * @return {?} */ hiddenNav() { this.isDisplay0 = !this.isDisplay0; this.isDisplayflex = !this.isDisplayflex; this.isInfo = !this.isInfo; } /** * @return {?} */ changeNullIden() { /** @type {?} */ const dialogRef = this.dialog.open(PromptDialogComponent, { width: '250px', data: (/** @type {?} */ ({ title: 'NULL值识别码', prompt: '导入的数据中出现识别码的内容将被转换为NULL值', value: this.svr.nullIden })) }); dialogRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ result => { if (result !== undefined) { this.svr.nullIden = result; } })); } /** * @return {?} */ clearDialog() { /** @type {?} */ const dialogRef = this.dialog.open(ConfirmDialogComponent, { width: '360px', height: '180px', data: `确定要清除数据?` }); dialogRef.afterClosed().subscribe((/** * @param {?} result * @return {?} */ (result) => { if (result) { this.svr.removeTableData(); } })); } } ImportComponent.decorators = [ { type: Component, args: [{ selector: 'common-import', template: "<div class=\"main main-left\" [class.main-left]=\"!isDisplay0\">\r\n\t<!-- \b*** \u5BFC\u5165\u4E3B\u4F53 *** -->\r\n\t<section class=\"section-wrapper\">\r\n\r\n\t\t<!-- \u2193\u2193\u2193 \u6CE8\u610F\u56FE\u6807 \u2193\u2193\u2193 -->\r\n\t\t<mat-icon class=\"nav-icon\" [svgIcon]=\"isDisplay0 ? 'info' : 'cancel'\"\r\n\t\t\t(click)=\"hiddenNav()\" *ngIf=\"svr.step != 'done'\">\r\n\t\t</mat-icon>\r\n\t\t<!-- \b*** \u6CE8\u610F\u4E8B\u9879 *** -->\r\n\t\t<nav class=\"nav-notice\" [class.display0]=\"isDisplay0\">\r\n\t\t\t<!-- ** \u6587\u672C\u6846 ** -->\r\n\t\t\t<section class=\"notice-wrapper\">\r\n\t\t\t\t<div class=\"notice-title\">\u6CE8\u610F\u4E8B\u9879</div>\r\n\t\t\t\t<div class=\"notice-text\">\r\n\t\t\t\t\t<!-- \u7B2C1\u53E5 -->\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t1.\u7A7A\u884C\u88AB\u5FFD\u7565\uFF0C\u5E76\u4E0D\u8BA1\u5165\u884C\u53F7\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<!-- \u7B2C2\u53E5 -->\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t2.<span *ngFor=\"let fld of svr.mustFields()\">[{{fld}}]</span>\u4E3A\u7A7A\u7684\u5C06\u88AB\u5FFD\u7565\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<!-- \u7B2C3\u53E5 -->\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t3.<span\r\n\t\t\t\t\t\t\t*ngFor=\"let fld of svr.primaryKeyFields()\">[{{fld}}]</span>\u91CD\u590D\u7684\u884C,\u4EE5\u6700\u540E\u4E00\u884C\u4E3A\u51C6\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<!-- \u7B2C4\u53E5 -->\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t4.\u6307\u6807\u7684\u524D\u540E\u7A7A\u767D\u5B57\u7B26,\u5305\u62EC\u5168\u534A\u89D2\u7A7A\u683C\u3001\u56DE\u8F66\u6362\u884C\u3001\u5236\u8868\u7B26\u7B49\u5C06\u88AB\u6E05\u9664\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\r\n\t\t</nav>\r\n\r\n\t\t<ng-container [ngSwitch]=\"svr.step\">\r\n\t\t\t<!-- \u2193\u2193\u2193 \u9009\u62E9\u6587\u4EF6\u6B65\u9AA4 \u2193\u2193\u2193 -->\r\n\r\n\t\t\t<div *ngSwitchCase=\"'select-file'\" class=\"import-wrapper add-margin\">\r\n\t\t\t\t<!-- ** \u4E3B\u4F53\u6807\u9898 ** -->\r\n\t\t\t\t<header>1/2\u9009\u62E9\u6587\u4EF6</header>\r\n\t\t\t\t<!-- ** \u70B9\u51FB\u56FE\u6807\u90E8\u5206 ** click \u5E94\u8BE5\u653E\u5728\u8FD9\u4E2A\u56FE\u5C42-->\r\n\t\t\t\t<section class=\"select-wrapper\">\r\n\t\t\t\t\t<!-- * \u6CA1\u6709\u9009\u53D6\u4E0A\u4F20\u6587\u4EF6\u65F6 *-->\r\n\t\t\t\t\t<!-- <ng-template> -->\r\n\t\t\t\t\t<!-- \u56FE\u6807\u90E8\u5206 -->\r\n\t\t\t\t\t<div class=\"select-main\" (click)=\"fileInput.click()\"\r\n\t\t\t\t\t\t(dragover)=\"dragoverFile($event)\" (dragenter)=\"dragoverFile($event)\"\r\n\t\t\t\t\t\t(drop)=\"drop($event)\">\r\n\t\t\t\t\t\t<mat-icon class=\"icon\"\r\n\t\t\t\t\t\t\t[svgIcon]=\"this.svr.file ? 'insert_drive_file' : 'backup'\">\r\n\t\t\t\t\t\t</mat-icon>\r\n\t\t\t\t\t\t<div *ngIf=\"!this.svr.file\" class=\"icon-text\">\u70B9\u51FB\u6DFB\u52A0<br>\u6216\u5C06\u6587\u4EF6\u62D6\u5230\u6B64\u5904</div>\r\n\t\t\t\t\t\t<div *ngIf=\"this.svr.file\" class=\"icon-text\">\r\n\t\t\t\t\t\t\t<mat-icon svgIcon=\"replay\"></mat-icon>\u91CD\u65B0\u4E0A\u4F20\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<input hidden type=\"file\" #fileInput\r\n\t\t\t\t\t\t(change)=\"uploadFile($event.target.files)\" />\r\n\t\t\t\t\t<!-- \u6587\u5B57\u90E8\u5206 -->\r\n\t\t\t\t\t<div *ngIf=\"!this.svr.file\" class=\"select-text\">*\u4EC5\u652F\u6301\u4E0A\u4F20CSV\u3001TXT\u683C\u5F0F\u6587\u4EF6\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div *ngIf=\"this.svr.file\" class=\"select-text\">\r\n\t\t\t\t\t\t{{ this.svr.file.name }}</div>\r\n\t\t\t\t\t<!-- </ng-template> -->\r\n\t\t\t\t</section>\r\n\r\n\t\t\t\t<!-- ** \u8868\u683C\u90E8\u5206 ** -->\r\n\t\t\t\t<section class=\"table-wrapper\">\r\n\t\t\t\t\t<!-- * \u6587\u4EF6\u683C\u5F0F\u8BF4\u660E\u90E8\u5206 * -->\r\n\t\t\t\t\t<header>\r\n\t\t\t\t\t\t<div class=\"layout-title\">\u6587\u4EF6\u683C\u5F0F\u8BF4\u660E</div>\r\n\t\t\t\t\t\t<div class=\"layout-text\">\r\n\t\t\t\t\t\t\t<div class=\"text-left\">\r\n\t\t\t\t\t\t\t\t\u6570\u636E\u9700\u8981\u6309\u7167\u5982\u4E0B\u7684\u683C\u5F0F\u63D0\u4F9B\uFF0C\u53EF\u4EE5\u662FCSV\u6587\u4EF6\u6216\u8005TAB\u5206\u9694\u7684\u6587\u672C\u6587\u4EF6\uFF0C\u5B57\u7B26\u96C6\u9ED8\u8BA4\u4E3AUTF8</div>\r\n\r\n\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t<!-- <a (click)=\"svr.removeTableData()\">\u6E05\u7A7A\u6570\u636E</a> -->\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<button mat-button (click)=\"clearDialog()\">\u6E05\u7A7A\u6570\u636E</button>\r\n\t\t\t\t\t\t\t\t<!-- \u2193\u2193\u2193 \u6D6E\u7A97 \u2193\u2193\u2193 -->\r\n\t\t\t\t\t\t\t\t<div class=\"float-table-info\">\r\n\t\t\t\t\t\t\t\t\t<div><span>\u8868\u540D:</span><span>{{svr.tableName}}</span></div>\r\n\t\t\t\t\t\t\t\t\t<div><span>\u8BB0\u5F55\u603B\u6570:</span><span>{{svr.tableTotal}}</span></div>\r\n\t\t\t\t\t\t\t\t\t<div><span>\u53EF\u64CD\u4F5C\u8BB0\u5F55:</span><span>{{svr.tableCanRemove}}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<!-- \u2191\u2191\u2191 \u6D6E\u7A97 \u2191\u2191\u2191 -->\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</header>\r\n\t\t\t\t\t<!-- * \u8868\u683C\u6B63\u4F53 * -->\r\n\t\t\t\t\t<section class=\"import-table\">\r\n\t\t\t\t\t\t<div class=\"table-box\">\r\n\t\t\t\t\t\t\t<table mat-table [dataSource]=\"svr.fields\">\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"no\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u5E8F\u53F7</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element;let i = index\">{{i}}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"name\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u540D\u79F0</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">{{ element.Name }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"alias\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u522B\u540D</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">{{ element.Alias }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"type\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u6570\u636E\u7C7B\u578B</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">{{ element.Type }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"length\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u957F\u5EA6</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t{{ element.MaxLength }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"style\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u7C7B\u522B</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">{{ element.Style }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"comment\">\r\n\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u5907\u6CE8</th>\r\n\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">{{ element.Remark }}\r\n\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<tr mat-header-row\r\n\t\t\t\t\t\t\t\t\t*matHeaderRowDef=\"['no','name','alias', 'type', 'length', 'style', 'comment'];sticky: true\">\r\n\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr mat-row\r\n\t\t\t\t\t\t\t\t\t*matRowDef=\"let row; columns: ['no','name','alias', 'type', 'length', 'style', 'comment']\">\r\n\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</section>\r\n\t\t\t\t</section>\r\n\t\t\t\t<!-- ** \u6309\u94AE ** -->\r\n\t\t\t\t<footer class=\"next-step\">\r\n\t\t\t\t\t<button [disabled]=\"!this.svr.file\" mat-flat-button\r\n\t\t\t\t\t\t(click)=\"svr.upload()\">\u4E0B\u4E00\u6B65</button>\r\n\t\t\t\t</footer>\r\n\t\t\t\t<div class=\"clear-tip\">\r\n\t\t\t\t\t<div class=\"tip-wrapper\">\r\n\t\t\t\t\t\t<div class=\"tip-left\">\u6210\u529F\u5220\u9664\u6570\u636E</div>\r\n\t\t\t\t\t\t<div class=\"tip-right\">\u5173\u95ED</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- \u2193\u2193\u2193 \u8FD9\u4E2A/div\u7559\u7ED9ngSwitchCase -->\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- \u2191\u2191\u2191 \u9009\u62E9\u6587\u4EF6\u6B65\u9AA4 \u2191\u2191\u2191 -->\r\n\r\n\t\t\t<!-- \u2193\u2193\u2193 \u6587\u4EF6\u4E0A\u4F20\u4E2D\u6B65\u9AA4 \u2193\u2193\u2193 -->\r\n\t\t\t<div class=\"upload\" *ngSwitchCase=\"'upload'\">\r\n\t\t\t\t<div class=\"upload-wrapper\">\r\n\t\t\t\t\t<div class=\"upload-title\">\r\n\t\t\t\t\t\t\u6587\u4EF6\u6B63\u5728\u4E0A\u4F20\u4E2D\u00B7\u00B7\u00B7\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"upload-text\">\r\n\t\t\t\t\t\t{{svr.uploadProgress}}%\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<mat-progress-bar mode=\"determinate\" [value]=\"svr.uploadProgress\">\r\n\t\t\t\t\t\t</mat-progress-bar>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<!-- \u2191\u2191\u2191 \u6587\u4EF6\u4E0A\u4F20\u4E2D\u6B65\u9AA4 \u2191\u2191\u2191 -->\r\n\r\n\t\t\t<!-- \u2193\u2193\u2193 \u6587\u4EF6\u8BBE\u7F6E\u6B65\u9AA4 \u2193\u2193\u2193 -->\r\n\r\n\t\t\t<div class=\"setting-wrapper add-margin\" *ngSwitchCase=\"'setting'\" #exp>\r\n\r\n\t\t\t\t<header class=\"set-title\">2/2\u6587\u4EF6\u8BBE\u7F6E</header>\r\n\t\t\t\t<!-- * \u2193\u2193 \u6587\u4EF6\u9009\u62E9 \u2193\u2193 * -->\r\n\t\t\t\t<section class=\"set-select\">\r\n\t\t\t\t\t<div class=\"select-1\">\r\n\t\t\t\t\t\t<mat-checkbox [(ngModel)]=\"svr.firstHead\">\u9996\u884C\u662F\u6807\u9898\u884C</mat-checkbox>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"select-2\">\r\n\t\t\t\t\t\t\u683C\u5F0F:\r\n\t\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t\t<mat-select [(ngModel)]=\"svr.format\">\r\n\t\t\t\t\t\t\t\t<mat-option value=\"CSV\">\r\n\t\t\t\t\t\t\t\t\tCSV(\u9017\u53F7\u5206\u9694\u6587\u672C)\r\n\t\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t\t\t<mat-option value=\"TXT\">\r\n\t\t\t\t\t\t\t\t\tTXT(TAB\u5206\u9694\u6587\u672C)\r\n\t\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"select-3\">\r\n\t\t\t\t\t\t\u5B57\u7B26\u96C6:\r\n\t\t\t\t\t\t<mat-radio-group [(ngModel)]=\"svr.encoding\">\r\n\t\t\t\t\t\t\t<mat-radio-button value=\"UTF8\" checked>\r\n\t\t\t\t\t\t\t\tUTF-8\r\n\t\t\t\t\t\t\t</mat-radio-button>\r\n\t\t\t\t\t\t\t<mat-radio-button value=\"GBK\">\r\n\t\t\t\t\t\t\t\tGBK\r\n\t\t\t\t\t\t\t</mat-radio-button>\r\n\t\t\t\t\t\t</mat-radio-group>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"select-4\">\r\n\t\t\t\t\t\t<button mat-button (click)=\"svr.refreshPreview()\">\r\n\t\t\t\t\t\t\t<mat-icon class=\"icon-done\" svgIcon=\"done\"></mat-icon>\r\n\t\t\t\t\t\t\t\u751F\u6210\u9884\u89C8\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</section>\r\n\t\t\t\t<!-- * \u2191\u2191 \u6587\u4EF6\u9009\u62E9\u7ED3\u675F \u2191\u2191 * -->\r\n\t\t\t\t<!-- * \u2193\u2193 \u6587\u4EF6\u8BBE\u7F6E \u2193\u2193 * -->\r\n\t\t\t\t<section class=\"set-data\">\r\n\t\t\t\t\t<!-- * \u2193\u2193 \u6570\u636E\u9884\u89C8\u72B6\u6001 \u2193\u2193 * -->\r\n\t\t\t\t\t<div class=\"preview-data\"\r\n\t\t\t\t\t\t*ngIf=\"svr.previewData.Have; else previewDataEmpty\">\r\n\t\t\t\t\t\t<!-- * \u2193 \u6587\u4EF6\u9519\u8BEF \u2193 * -->\r\n\t\t\t\t\t\t<div class=\"error-wrapper\"\r\n\t\t\t\t\t\t\t*ngIf=\"svr.previewData.Error;else previewDataNoError\">\r\n\t\t\t\t\t\t\t<div class=\"error-title\">\r\n\t\t\t\t\t\t\t\t<mat-icon class=\"report-problem\" svgIcon=\"report_problem\">\r\n\t\t\t\t\t\t\t\t</mat-icon>\r\n\t\t\t\t\t\t\t\t\u751F\u6210\u5185\u5BB9\u51FA\u9519\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"error-text\">{{svr.previewData.Error}}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<!-- * \u2191 \u6587\u4EF6\u9519\u8BEF \u2191 * -->\r\n\t\t\t\t\t\t<!-- * \u2193 \u6570\u636E\u6B63\u786E\u663E\u793A \u2193 * -->\r\n\t\t\t\t\t\t<ng-template #previewDataNoError>\r\n\t\t\t\t\t\t\t<!-- \u2193 100\u884C\u6570\u636E \u2193 -->\r\n\t\t\t\t\t\t\t<section class=\"row100\">\r\n\t\t\t\t\t\t\t\t<header>\u4EE5\u4E0B\u662F\u8BC6\u522B\u51FA\u6765\u7684\u524D100\u884C\u6570\u636E</header>\r\n\t\t\t\t\t\t\t\t<section class=\"row100-data\">\r\n\t\t\t\t\t\t\t\t\t<table>\r\n\t\t\t\t\t\t\t\t\t\t<thead>\r\n\t\t\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<th *ngFor=\"let col of svr.previewData.Title\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{col}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t</thead>\r\n\t\t\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t<tr *ngFor=\"let row of svr.previewData.Rows\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<td *ngFor=\"let col of row\">{{col}}</td>\r\n\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t<!-- \u2191 100\u884C\u6570\u636E \u2191 -->\r\n\t\t\t\t\t\t\t<!-- \u2193 \u6307\u6807\u8BBE\u7F6E \u2193 -->\r\n\t\t\t\t\t\t\t<section class=\"set-index\">\r\n\t\t\t\t\t\t\t\t<header>\r\n\t\t\t\t\t\t\t\t\t<div class=\"title\">\u6307\u6807\u8BBE\u7F6E</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"text\">\r\n\t\t\t\t\t\t\t\t\t\t<div>\u4EE5\u4E0B\u662F\u6307\u6807\u5BF9\u7167\u8BBE\u7F6E\uFF0C\u53EF\u4EE5\u8BBE\u7F6E\u5BFC\u5165\u6570\u636E\u5217\u4E0E\u6570\u636E\u5E93\u5217\u7684\u6620\u5C04\u5173\u7CFB\uFF0C\u5E76\u53EF\u4EE5\u6307\u5B9A\u503C</div>\r\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"svr.nullIden;else noNullIden\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\u5F53\u524DNull\u503C\u8BC6\u522B\u7801\u4E3A\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{{svr.nullIden}}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button mat-button (click)=\"changeNullIden()\">\u4FEE\u6539</button>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<ng-template #noNullIden>\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\u5F53\u524DNull\u503C\u8BC6\u522B\u7801\u672A\u8BBE\u7F6E\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button mat-button (click)=\"changeNullIden()\">\u70B9\u51FB\u8BBE\u7F6E</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</header>\r\n\r\n\t\t\t\t\t\t\t\t<section class=\"index-data\">\r\n\t\t\t\t\t\t\t\t\t<!-- \u8868 -->\r\n\t\t\t\t\t\t\t\t\t<table mat-table [dataSource]=\"svr.mapFields\">\r\n\t\t\t\t\t\t\t\t\t\t<!-- \u5E8F\u53F7 -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"no\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u5E8F\u53F7</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element;let i = index\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{i}}\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- \u6570\u636E\u5E93 -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"name\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u6570\u636E\u5E93\u6307\u6807</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ element.Name }}\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- \u7C7B\u522B -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"type\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u7C7B\u522B</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ element.Style==='MUST'?'\u5FC5\u987B':'\u6B63\u5E38' }}\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<!-- \u6620\u5C04\u5217 -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"mapName\" class=\"map-name\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u6620\u5C04\u5217</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<mat-select [(ngModel)]=\"element.MapName\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mat-option value=\"(SKIP)\">(\u5FFD\u7565)</mat-option>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mat-option\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t*ngFor=\"let val of svr.previewData.Title\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[value]=\"val\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{val}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mat-option value=\"(CUSTOM)\">(\u5B9A\u503C)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<!-- \u503C -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"value\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u503C</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input matInput [(ngModel)]=\"element.Value\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"element.MapName !=='(CUSTOM)'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<!-- \u5907\u6CE8 -->\r\n\t\t\t\t\t\t\t\t\t\t<ng-container matColumnDef=\"comment\">\r\n\t\t\t\t\t\t\t\t\t\t\t<th mat-header-cell *matHeaderCellDef>\u5907\u6CE8</th>\r\n\t\t\t\t\t\t\t\t\t\t\t<td mat-cell *matCellDef=\"let element\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ element.Remark }}\r\n\t\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<tr mat-header-row\r\n\t\t\t\t\t\t\t\t\t\t\t*matHeaderRowDef=\"['no','name', 'type', 'mapName', 'value', 'comment'];sticky: true\">\r\n\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t<tr mat-row\r\n\t\t\t\t\t\t\t\t\t\t\t*matRowDef=\"let row; columns: ['no','name', 'type', 'mapName', 'value', 'comment']\">\r\n\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t<!-- \u2191 \u6307\u6807\u8BBE\u7F6E \u2191 -->\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<!-- * \u2191 \u6570\u636E\u6B63\u786E\u663E\u793A\u7ED3\u675F \u2191 * -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- * \u2191\u2191 \u6570\u636E\u9884\u89C8\u72B6\u6001 \u2191\u2191 * -->\r\n\t\t\t\t\t<!-- * \u2193\u2193 \u7A7A\u6570\u636E\u72B6\u6001 \u2193\u2193 * -->\r\n\t\t\t\t\t<ng-template class=\"data-empty\" #previewDataEmpty>\r\n\t\t\t\t\t\t<div class=\"data-empty\">\r\n\t\t\t\t\t\t\t<div class=\"empty-wrapper\">\r\n\t\t\t\t\t\t\t\t<div class=\"empty-title\">\u6682\u65E0\u5185\u5BB9</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"empty-text\">\u8BF7\u8BBE\u7F6E\u5BFC\u5165\u53C2\u6570\uFF0C\u70B9\u51FB\u751F\u6210\u9884\u89C8\u6309\u94AE\u67E5\u770B</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<!-- * \u2191\u2191 \u7A7A\u6570\u636E\u72B6\u6001\u7ED3\u675F \u2191\u2191 * -->\r\n\t\t\t\t</section>\r\n\t\t\t\t<!-- * \u2191\u2191 \u6587\u4EF6\u8BBE\u7F6E\u7ED3\u675F \u2191\u2191 * -->\r\n\t\t\t\t<footer class=\"set-button\">\r\n\t\t\t\t\t<button mat-button (click)=\"svr.step='select-file'\">\u4E0A\u4E00\u6B65</button>\r\n\t\t\t\t\t<button class=\"import-btn\" mat-flat-button\r\n\t\t\t\t\t\t[disabled]=\"!svr.previewData.Have || svr.previewData.Error !== ''\"\r\n\t\t\t\t\t\t(click)=\"svr.doImport()\">\u5BFC\u5165</button>\r\n\t\t\t\t</footer>\r\n\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- \u2191\u2191\u2191 \u6587\u4EF6\u8BBE\u7F6E\u6B65\u9AA4 \u2191\u2191\u2191 -->\r\n\t\t\t<!-- \u2193\u2193\u2193 \u5BFC\u5165\u5B8C\u6210 \u2193\u2193\u2193 -->\r\n\t\t\t<div *ngSwitchCase=\"'done'\">\r\n\t\t\t\t<div class=\"done\">\r\n\t\t\t\t\t<div class=\"done-wrapper\">\r\n\t\t\t\t\t\t<div class=\"done-title\">\r\n\t\t\t\t\t\t\t<span>\u6587\u4EF6\u5BFC\u5165\u5B8C\u6210</span>\r\n\t\t\t\t\t\t\t<div class=\"done-text\">\r\n\t\t\t\t\t\t\t\t\u672C\u9875\u9762\u5173\u95ED\u540E\u53EF\u5728<a class=\"text-check\"\r\n\t\t\t\t\t\t\t\t\t[routerLink]=\"svr.taskInfoURL\">\u4EFB\u52A1\u67E5\u8BE2</a>\u9875\u9762\u4E2D\u67E5\u770B\u6587\u4EF6\u3002\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\r\n\r\n\t\t\t\t\t\t<div class=\"btn\">\r\n\t\t\t\t\t\t\t<button mat-flat-button (click)=\"tabs.close()\">\u5173\u95ED</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\r\n\t\t\t</div>\r\n\t\t\t<!-- \u2191\u2191\u2191 \u5BFC\u5165\u5B8C\u6210 \u2191\u2191\u2191 -->\r\n\r\n\t\t</ng-container>\r\n\r\n\r\n\t</section>\r\n\r\n</div>\r\n\r\n", providers: [ImportService], styles: ["@charset \"UTF-8\";.main{width:100%;padding:8px 30px;box-sizing:border-box}@media (max-width:1460px){.main-left{padding-left:176px;padding-right:12px}}.display0{display:none}.nav-icon{position:absolute;top:8px;left:-28px;width:16px;height:16px;z-index:99}.nav-notice{position:absolute;top:0;left:-172px;width:168px;padding-left:4px;padding-right:4px;box-sizing:border-box}.notice-wrapper{width:160px;box-sizing:border-box;margin-left:4px;margin-right:4px;padding:8px;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.14)}.notice-text,.notice-title{font-size:14px}.notice-title{font-weight:700}.section-wrapper{position:relative;width:100%;max-width:960px;max-height:calc(100vh - 16px - 48px);margin:0 auto;box-sizing:border-box}.import-wrapper,.setting-wrapper{width:100%;max-width:960px;height:100%;margin-bottom:4px;padding:24px 24px 16px;box-sizing:border-box;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.14)}.import-wrapper header,.setting-wrapper header{font:20px bold;white-space:nowrap}.import-wrapper .icon-text,.import-wrapper .select-text,.setting-wrapper .icon-text,.setting-wrapper .select-text{margin-top:8px;font-size:14px;white-space:nowrap}.import-wrapper .select-wrapper,.import-wrapper .table-wrapper,.setting-wrapper .select-wrapper,.setting-wrapper .table-wrapper{margin-top:24px}.import-wrapper .select-wrapper,.setting-wrapper .select-wrapper{text-align:center;box-sizing:border-box}.import-wrapper .select-wrapper .select-main,.setting-wrapper .select-wrapper .select-main{display:flex;flex-direction:column;justify-content:center;align-items:center;width:240px;height:240px;box-sizing:border-box;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.14);margin:0 auto;cursor:pointer}.import-wrapper .select-wrapper .select-main .icon,.setting-wrapper .select-wrapper .select-main .icon{width:120px;height:120px}.import-wrapper .select-wrapper .select-main .icon-text,.setting-wrapper .select-wrapper .select-main .icon-text{display:flex;justify-content:center;align-items:center}.table-wrapper{width:100%}.table-wrapper header .layout-title{font:18px bold}.table-wrapper header .layout-text{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:12px}.table-wrapper header .layout-text .text-left{overflow:hidden}.table-wrapper header .layout-text .float-table-info{position:absolute;top:-100px;right:0;width:160px;height:88px;box-sizing:border-box;padding:8px;box-shadow:0 2px 5px rgba(0,0,0,.14)}.table-wrapper header .layout-text .float-table-info div{display:flex;justify-content:space-between;width:100%;height:24px;line-height:24px}.table-wrapper header .layout-text span{flex-grow:160px}.table-wrapper header .layout-text span .float-table-info{display:none}.table-wrapper header .layout-text span:hover .float-table-info{display:block}.table-wrapper .import-table{height:calc(100vh - 560px);max-height:calc(100vh - 430px);min-height:80px;margin-top:16px;overflow:hidden}.table-wrapper .import-table .table-box{width:100%;max-height:356px;overflow:auto}.table-wrapper .import-table table{width:100%;box-sizing:border-box}.table-wrapper .import-table td,.table-wrapper .import-table th{height:32px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-step{display:flex;justify-content:flex-end;margin-top:24px}.upload{display:flex;justify-content:center;align-items:center;width:100%;height:calc(100vh - 30px - 32px)}.upload .upload-wrapper{width:624px;height:456px;margin-top:-60px;background:url(/front/assets/export/prepare.png) top center/300px 300px no-repeat;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);box-sizing:border-box;text-align:center}.upload .upload-wrapper .upload-text,.upload .upload-wrapper .upload-title{width:100%;box-sizing:border-box}.upload .upload-wrapper .upload-title{padding:271px 128px 0;font-size:24px}.upload .upload-wrapper .upload-text{padding:116px 128px 16px;font-size:12px}.setting-wrapper .set-title{font:20px bold}.setting-wrapper .set-select{display:flex;justify-content:space-between;box-sizing:border-box;width:100%;height:60px;line-height:60px;font-size:14px}.setting-wrapper .set-select .select-1,.setting-wrapper .set-select .select-2,.setting-wrapper .set-select .select-3,.setting-wrapper .set-select .select-4{overflow:hidden}.setting-wrapper .set-select .select-1{padding-right:40px}.setting-wrapper .set-select .select-2{display:flex;flex-wrap:nowrap;align-items:center;white-space:nowrap}.setting-wrapper .set-select .select-2 ::ng-deep .mat-form-field{width:100%}.setting-wrapper .set-select .select-4{display:flex;align-items:center;padding-left:8px}.setting-wrapper .set-select .select-4 button{display:flex;justify-content:center;width:96px;height:40px}.setting-wrapper .set-select .select-4 button .icon-done{width:24px;height:24px}.setting-wrapper .set-data .preview-data .error-wrapper{width:100%;margin-top:32px;margin-bottom:8px;padding:8px 16px;box-sizing:border-box;border-radius:4px}.setting-wrapper .set-data .preview-data .error-wrapper .error-title{display:flex;align-items:center;margin-bottom:8px;font:14px bold}.setting-wrapper .set-data .preview-data .error-wrapper .error-title .report-problem{width:16px;height:16px;margin-right:8px}.setting-wrapper .set-data .preview-data .error-wrapper .error-text{font-size:12px}.setting-wrapper .set-data .preview-data .row100 header{margin-top:16px;margin-bottom:8px;font-size:12px;display:flex;align-content:space-between}.setting-wrapper .set-data .preview-data .row100 section.row100-data{width:100%;max-height:200px;overflow:auto}.setting-wrapper .set-data .preview-data .row100 section.row100-data table{width:100%;border-collapse:collapse;box-sizing:border-box;font-size:14px}.setting-wrapper .set-data .preview-data .row100 section.row100-data td,.setting-wrapper .set-data .preview-data .row100 section.row100-data th{height:40px;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.setting-wrapper .set-data .preview-data .row100 section.row100-data th{text-align:left}.setting-wrapper .set-data .preview-data .set-index{width:100%;padding-top:32px}.setting-wrapper .set-data .preview-data .set-index .title{font:16px bold}.setting-wrapper .set-data .preview-data .set-index .text{padding-top:16px;padding-bottom:16px;font-size:12px;overflow:hidden}.setting-wrapper .set-data .preview-data .set-index .index-data{width:100%;height:calc(100vh - 550px);max-height:310px;min-height:80px;overflow:auto}.setting-wrapper .set-data .preview-data .set-index .index-data table{width:100%;box-sizing:border-box}.setting-wrapper .set-data .preview-data .set-index .index-data td,.setting-wrapper .set-data .preview-data .set-index .index-data th{height:40px;padding-right:8px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-wrapper .set-data .preview-data .set-index .index-data .mat-column-mapName{width:200px}.setting-wrapper .set-data .data-empty{width:100%;height:336px;margin-bottom:24px;box-sizing:border-box;text-align:center}.setting-wrapper .set-data .data-empty .empty-wrapper{width:336px;margin:0 auto;padding-top:282px;padding-bottom:8px;background:url(/front/assets/import/nocontent.png) top center/300px 300px no-repeat;text-align:center}.setting-wrapper .set-data .data-empty .empty-wrapper .empty-title{font:24px bold}.setting-wrapper .set-data .data-empty .empty-text{font-size:14px}.setting-wrapper footer.set-button{text-align:right;margin-top:24px}.setting-wrapper footer.set-button .import-btn{margin-left:16px}.done{display:flex;justify-content:center;align-items:center;width:100%;height:calc(100vh - 30px - 32px)}.done .done-wrapper{width:624px;height:456px;margin-top:-60px;background:url(/front/assets/import/done.png) top center/300px 300px no-repeat;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);box-sizing:border-box}.done .done-wrapper .done-text,.done .done-wrapper .done-title{width:100%;box-sizing:border-box}.done .done-wrapper .done-title{padding:290px 128px 0}.done .done-wrapper .done-title span{font-size:24px}.done .done-wrapper .done-text{padding-top:16px;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.done .done-wrapper .done-text .text-check{font-weight:700}.done .done-wrapper .btn{width:100%;text-align:right;padding:44px 24px 16px 0;box-sizing:border-box}.clear-tip{position:absolute;display:none;bottom:0;width:100%;box-sizing:border-box}.tip-wrapper{display:flex;justify-content:space-between;align-items:center;width:340px;height:50px;font:14px bold;margin:0 auto;padding:0 16px;border-radius:4px;border:1px solid #333}.clear-tip-show{display:block}"] }] } ]; /** @nocollapse */ ImportComponent.ctorParameters = () => [ { type: ImportService }, { type: MatDialog }, { type: TabsService } ]; ImportComponent.propDecorators = { hostClass: [{ type: HostBinding, args: ['class.import',] }], exp: [{ type: ViewChild, args: ['exp', { static: true },] }] }; if (false) { /** @type {?} */ ImportComponent.prototype.hostClass; /** @type {?} */ ImportComponent.prototype.exp; /** @type {?} */ ImportComponent.prototype.isDisplay0; /** @type {?} */ ImportComponent.prototype.isDisplayflex; /** @type {?} */ ImportComponent.prototype.isInfo; /** @type {?} */ ImportComponent.prototype.isHidden; /** @type {?} */ ImportComponent.prototype.isShowSpan; /** @type {?} */ ImportComponent.prototype.svr; /** @type {?} */ ImportComponent.prototype.dialog; /** @type {?} */ ImportComponent.prototype.tabs; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Rid2ViLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9pbXBvcnQvaW1wb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBb0IsTUFBTSxxREFBcUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQVEvRixNQUFNLE9BQU8sZUFBZTs7Ozs7OztJQVkzQixZQUFtQixHQUFrQixFQUFTLE1BQWlCLEVBQVMsSUFBaUI7UUFBdEUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBWDVELGNBQVMsR0FBRyxJQUFJLENBQUM7O1FBRzlDLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFFWCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFFeUUsQ0FBQzs7OztJQUM3RixRQUFRO1FBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs7Ozs7SUFHRCxVQUFVLENBQUMsS0FBZTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsQ0FBWTtRQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFDRCxJQUFJLENBQUMsQ0FBWTtRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFHRCxTQUFTO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQzs7OztJQUNELGNBQWM7O2NBQ1AsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3pELEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLG1CQUFBO2dCQUNMLEtBQUssRUFBRSxVQUFVO2dCQUNqQixNQUFNLEVBQUUsMEJBQTBCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO2FBQ3hCLEVBQW9CO1NBQ3JCLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO2FBQzNCO1FBQ0YsQ0FBQyxFQUFDLENBQUM7SUFDSixDQUFDOzs7O0lBQ0QsV0FBVzs7Y0FDSixTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDMUQsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxVQUFVO1NBQ2hCLENBQUM7UUFDRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDckQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMzQjtRQUNGLENBQUMsRUFBQyxDQUFDO0lBQ0osQ0FBQzs7O1lBckVELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsZUFBZTtnQkFDekIscTJuQkFBc0M7Z0JBRXRDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQzs7YUFDMUI7Ozs7WUFWUSxhQUFhO1lBRGIsU0FBUztZQUVULFdBQVc7Ozt3QkFXbEIsV0FBVyxTQUFDLGNBQWM7a0JBRTFCLFNBQVMsU0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzs7O0lBRmxDLG9DQUE4Qzs7SUFFOUMsOEJBQ1c7O0lBRVgscUNBQWtCOztJQUNsQix3Q0FBcUI7O0lBQ3JCLGlDQUFlOztJQUNmLG1DQUFpQjs7SUFDakIscUNBQW1COztJQUVQLDhCQUF5Qjs7SUFBRSxpQ0FBd0I7O0lBQUUsK0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW1wb3J0U2VydmljZSB9IGZyb20gJy4vaW1wb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4uL2hvbWUvdGFicy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0RGlhbG9nQ29tcG9uZW50LCBQcm9tcHREaWFsb2dEYXRhIH0gZnJvbSAnLi4vY29tcG9uZW50cy9wcm9tcHQtZGlhbG9nL3Byb21wdC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY29tbW9uLWltcG9ydCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ltcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vaW1wb3J0LmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbSW1wb3J0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEltcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5pbXBvcnQnKSBob3N0Q2xhc3MgPSB0cnVlO1xyXG5cdC8vIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbGVJbnB1dDogYW55OyDlhYjnlZnnnYDorqnmiJHlrabkuaBcclxuXHRAVmlld0NoaWxkKCdleHAnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdGV4cCA9IHRydWU7XHJcblxyXG5cdGlzRGlzcGxheTAgPSB0cnVlO1xyXG5cdGlzRGlzcGxheWZsZXggPSB0cnVlO1xyXG5cdGlzSW5mbyA9IGZhbHNlO1xyXG5cdGlzSGlkZGVuID0gZmFsc2U7XHJcblx0aXNTaG93U3BhbiA9IGZhbHNlO1xyXG5cdC8vIHNlbGVjdGVkID0gJyhTS0lQKSc7XHJcblx0Y29uc3RydWN0b3IocHVibGljIHN2cjogSW1wb3J0U2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwdWJsaWMgdGFiczogVGFic1NlcnZpY2UpIHt9XHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnN2ci5pbml0KCk7XHJcblx0fVxyXG5cclxuXHQvLyDpgInmi6nmlofku7bml7bop6blj5Hmlofku7bmj5DkuqRcclxuXHR1cGxvYWRGaWxlKGZpbGVzOiBGaWxlTGlzdCkge1xyXG5cdFx0dGhpcy5zdnIuZmlsZSA9IGZpbGVzWzBdO1xyXG5cdH1cclxuXHJcblx0ZHJhZ292ZXJGaWxlKGU6IERyYWdFdmVudCkge1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdH1cclxuXHRkcm9wKGU6IERyYWdFdmVudCkge1xyXG5cdFx0dGhpcy5zdnIuZmlsZSA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzWzBdO1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdH1cclxuXHJcblx0Ly8g4oaT4oaT4oaTIOS+p+i+ueagjyAg5L+h5oGv5pi+56S6MTFcclxuXHRoaWRkZW5OYXYoKSB7XHJcblx0XHR0aGlzLmlzRGlzcGxheTAgPSAhdGhpcy5pc0Rpc3BsYXkwO1xyXG5cdFx0dGhpcy5pc0Rpc3BsYXlmbGV4ID0gIXRoaXMuaXNEaXNwbGF5ZmxleDtcclxuXHRcdHRoaXMuaXNJbmZvID0gIXRoaXMuaXNJbmZvO1xyXG5cdH1cclxuXHRjaGFuZ2VOdWxsSWRlbigpIHtcclxuXHRcdGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvbXB0RGlhbG9nQ29tcG9uZW50LCB7XHJcblx0XHRcdHdpZHRoOiAnMjUwcHgnLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0dGl0bGU6ICdOVUxM5YC86K+G5Yir56CBJyxcclxuXHRcdFx0XHRwcm9tcHQ6ICflr7zlhaXnmoTmlbDmja7kuK3lh7rnjrDor4bliKvnoIHnmoTlhoXlrrnlsIbooqvovazmjaLkuLpOVUxM5YC8JyxcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy5zdnIubnVsbElkZW5cclxuXHRcdFx0fSBhcyBQcm9tcHREaWFsb2dEYXRhXHJcblx0XHR9KTtcclxuXHJcblx0XHRkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuXHRcdFx0aWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0dGhpcy5zdnIubnVsbElkZW4gPSByZXN1bHQ7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHRjbGVhckRpYWxvZygpIHtcclxuXHRcdGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHR3aWR0aDogJzM2MHB4JyxcclxuXHRcdFx0aGVpZ2h0OiAnMTgwcHgnLFxyXG5cdFx0XHRkYXRhOiBg56Gu5a6a6KaB5riF6Zmk5pWw5o2uP2BcclxuXHRcdH0pO1xyXG5cdFx0ZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuXHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdHRoaXMuc3ZyLnJlbW92ZVRhYmxlRGF0YSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19