UNPKG

acr-assist-simulator-module

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

125 lines (124 loc) 18 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Component, Input } from '@angular/core'; import { AllReportText, MainReportText } from '../assist-data-element/assist-data-element.component'; import { AllTextReport } from '../../core/models/report-text.model'; const /** @type {?} */ $ = require('jquery'); export class AssistReportTextComponent { constructor() { this.allReportTexts = []; this.sections = []; setInterval(() => { }, 1000); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { this.mainReportTexts = new MainReportText(); this.onSelect(this.selectedSectionId); } /** * @param {?} sectionId * @return {?} */ onSelect(sectionId) { // console.log(this.reportText.allReportText); this.selectedSectionId = sectionId; this.sections = []; this.selectedSection = null; for (const /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].reportText !== '') { this.sections.push(section); } } if (sectionId === 'undefined' || sectionId === undefined || sectionId === 'All') { let /** @type {?} */ allText; this.allTextReport = []; allText = ''; for (const /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].reportText !== '') { const /** @type {?} */ textReport = new AllTextReport(); textReport.heading = section; textReport.content = this.removeEmptyLine(this.reportText.allReportText[section].reportText); this.allTextReport.push(textReport); } } this.selectedSectionId = 'All'; } for (const /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].sectionId === sectionId) { this.selectedSection = this.reportText.allReportText[section].reportText; this.selectedSection = this.reportText.reportTextMainContent + ((this.selectedSection !== undefined && this.selectedSection !== '') ? this.removeEmptyLine(this.selectedSection) : ''); break; } } this.mainReportTexts = new MainReportText(); this.allReportTexts = []; for (const /** @type {?} */ section in this.reportText.allReportText) { const /** @type {?} */ allreportText = new AllReportText(); allreportText.reportText = this.removeEmptyLine(this.reportText.allReportText[section].reportText); allreportText.sectionId = this.reportText.allReportText[section].sectionId; this.allReportTexts.push(allreportText); } this.mainReportTexts.allReportText = this.allReportTexts; this.mainReportTexts.reportTextMainContent = this.reportText.reportTextMainContent; } /** * @param {?} inputText * @return {?} */ removeEmptyLine(inputText) { if (inputText.trim().length !== 0) { const /** @type {?} */ lines = inputText.split('\n'); const /** @type {?} */ uniquelines = []; lines.forEach(function (line, i) { if (line.trim().length !== 0) { uniquelines.push(line); } }); return uniquelines.join('\n'); } } } AssistReportTextComponent.decorators = [ { type: Component, args: [{ selector: 'acr-assist-report-text', template: `<ng-container *ngFor="let textReport of allTextReport; let lastitem = last"> <dt class="text-capitalize">{{textReport.heading}}</dt> <dd> <p class="white-space-line" [innerHTML]="textReport.content"></p> </dd> <hr *ngIf="!lastitem"> </ng-container> `, styles: [``, `.required-field{color:red}.padding-l-5{padding-left:5px}.whitespace{margin-left:5px}.max-w-h-100{max-width:100%;max-height:100%}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.carousel-control.left{background-repeat:repeat-x}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control.right{background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.scroll{overflow-y:scroll;overflow-x:hidden}.div-simulator-form-height{height:calc(100vh - 100px);overflow-y:scroll;overflow-x:hidden}.div-report-text-scroll{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 300px)}.padding-r-10{padding-right:10px}.slide-left{left:30px}.slide-right{right:30px}hr{margin-top:10px;margin-bottom:10px}.white-space-line{white-space:pre-line;word-wrap:break-word}p{margin:0 0 10px}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}h4.modal-title.float-left{float:left}.margin-b-0{margin-bottom:0}.font-weight-400{font-weight:400}.custom-radio-style{float:left;margin-right:15px}.zoom{width:100%;overflow:auto}.zoom img{height:auto;width:100%;min-width:100%;max-width:inherit!important}.btn-zoom{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-zoom.hover,.btn-zoom:active,.btn-zoom:hover{background-color:#e7e7e7}@media (min-width:768px){label.control-label{padding-left:20px}}.padding-5{padding:5px}`] },] }, ]; /** @nocollapse */ AssistReportTextComponent.ctorParameters = () => []; AssistReportTextComponent.propDecorators = { reportText: [{ type: Input }] }; function AssistReportTextComponent_tsickle_Closure_declarations() { /** @type {?} */ AssistReportTextComponent.prototype.reportText; /** @type {?} */ AssistReportTextComponent.prototype.allReportTexts; /** @type {?} */ AssistReportTextComponent.prototype.selectedSection; /** @type {?} */ AssistReportTextComponent.prototype.mainReportTexts; /** @type {?} */ AssistReportTextComponent.prototype.selectedSectionId; /** @type {?} */ AssistReportTextComponent.prototype.allTextReport; /** @type {?} */ AssistReportTextComponent.prototype.sections; /** @type {?} */ AssistReportTextComponent.prototype.prevSectionId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fjci1hc3Npc3Qtc2ltdWxhdG9yLW1vZHVsZS8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9hY3ItYXNzaXN0LXNpbXVsYXRvci9hc3Npc3QtcmVwb3J0LXRleHQvYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLHVCQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFhNUIsTUFBTTtJQWNKOzhCQVhpQyxFQUFFO3dCQUtmLEVBQUU7UUFPbEIsV0FBVyxDQUFDLEdBQUcsRUFBRTtTQUNsQixFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ1Q7Ozs7O0lBUEosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQ3ZDOzs7OztJQU1DLFFBQVEsQ0FBQyxTQUFTOztRQUVoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxDQUFDLHVCQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDcEQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7UUFDRCxFQUFFLENBQUMsQ0FBQyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLEtBQU0sQ0FBQyxDQUFDLENBQUM7WUFDakYscUJBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixHQUFHLENBQUMsQ0FBQyx1QkFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDN0QsdUJBQU0sVUFBVSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUN0RCxVQUFVLENBQUMsT0FBTyxHQUFJLE9BQU8sQ0FBQztvQkFDOUIsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM3RixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBRSxVQUFVLENBQUMsQ0FBQztpQkFDdEM7YUFDRjtZQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDaEM7UUFFRCxHQUFHLENBQUMsQ0FBQyx1QkFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDekUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZMLEtBQUssQ0FBQzthQUNQO1NBQ0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLENBQUMsdUJBQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNwRCx1QkFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMxQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkcsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztLQUN0Rjs7Ozs7SUFDRCxlQUFlLENBQUMsU0FBaUI7UUFDN0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLHVCQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLHVCQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBRSxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hCO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjs7O1lBckZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Q0FPWDtnQkFDQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsazdDQUFrN0MsQ0FBQzthQUNqOEM7Ozs7O3lCQUdBLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbGxSZXBvcnRUZXh0LCBNYWluUmVwb3J0VGV4dCB9IGZyb20gJy4uL2Fzc2lzdC1kYXRhLWVsZW1lbnQvYXNzaXN0LWRhdGEtZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGxUZXh0UmVwb3J0IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvcmVwb3J0LXRleHQubW9kZWwnO1xyXG5jb25zdCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWNyLWFzc2lzdC1yZXBvcnQtdGV4dCcsXHJcbiAgdGVtcGxhdGU6IGA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZXh0UmVwb3J0IG9mIGFsbFRleHRSZXBvcnQ7IGxldCBsYXN0aXRlbSA9IGxhc3RcIj5cclxuICA8ZHQgY2xhc3M9XCJ0ZXh0LWNhcGl0YWxpemVcIj57e3RleHRSZXBvcnQuaGVhZGluZ319PC9kdD5cclxuICA8ZGQ+XHJcbiAgICA8cCBjbGFzcz1cIndoaXRlLXNwYWNlLWxpbmVcIiBbaW5uZXJIVE1MXT1cInRleHRSZXBvcnQuY29udGVudFwiPjwvcD5cclxuICA8L2RkPlxyXG4gIDxociAqbmdJZj1cIiFsYXN0aXRlbVwiPlxyXG48L25nLWNvbnRhaW5lcj5cclxuYCxcclxuICBzdHlsZXM6IFtgYCwgYC5yZXF1aXJlZC1maWVsZHtjb2xvcjpyZWR9LnBhZGRpbmctbC01e3BhZGRpbmctbGVmdDo1cHh9LndoaXRlc3BhY2V7bWFyZ2luLWxlZnQ6NXB4fS5tYXgtdy1oLTEwMHttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNhcm91c2VsLWNvbnRyb2w+LmZhe2ZvbnQtc2l6ZTo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7ei1pbmRleDo1O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6LTIwcHh9LmNhcm91c2VsLWNvbnRyb2wubGVmdHtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0uY2Fyb3VzZWwtY29udHJvbC5sZWZ0LC5jYXJvdXNlbC1jb250cm9sLnJpZ2h0e2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uY2Fyb3VzZWwtY29udHJvbC5yaWdodHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC4wMDAxKSAwLHJnYmEoMCwwLDAsLjUpIDEwMCUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59LmRpdi1zaW11bGF0b3ItZm9ybS1oZWlnaHR7aGVpZ2h0OmNhbGMoMTAwdmggLSAxMDBweCk7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59LmRpdi1yZXBvcnQtdGV4dC1zY3JvbGx7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDMwMHB4KX0ucGFkZGluZy1yLTEwe3BhZGRpbmctcmlnaHQ6MTBweH0uc2xpZGUtbGVmdHtsZWZ0OjMwcHh9LnNsaWRlLXJpZ2h0e3JpZ2h0OjMwcHh9aHJ7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MTBweH0ud2hpdGUtc3BhY2UtbGluZXt3aGl0ZS1zcGFjZTpwcmUtbGluZTt3b3JkLXdyYXA6YnJlYWstd29yZH1we21hcmdpbjowIDAgMTBweH0uZm9ybS1jb250cm9se2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWNvbG9yOiNkMmQ2ZGV9aDQubW9kYWwtdGl0bGUuZmxvYXQtbGVmdHtmbG9hdDpsZWZ0fS5tYXJnaW4tYi0we21hcmdpbi1ib3R0b206MH0uZm9udC13ZWlnaHQtNDAwe2ZvbnQtd2VpZ2h0OjQwMH0uY3VzdG9tLXJhZGlvLXN0eWxle2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjE1cHh9Lnpvb217d2lkdGg6MTAwJTtvdmVyZmxvdzphdXRvfS56b29tIGltZ3toZWlnaHQ6YXV0bzt3aWR0aDoxMDAlO21pbi13aWR0aDoxMDAlO21heC13aWR0aDppbmhlcml0IWltcG9ydGFudH0uYnRuLXpvb217YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O2NvbG9yOiM0NDQ7Ym9yZGVyLWNvbG9yOiNkZGR9LmJ0bi16b29tLmhvdmVyLC5idG4tem9vbTphY3RpdmUsLmJ0bi16b29tOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U3ZTdlN31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7bGFiZWwuY29udHJvbC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH19LnBhZGRpbmctNXtwYWRkaW5nOjVweH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzaXN0UmVwb3J0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG5ASW5wdXQoKSByZXBvcnRUZXh0OiBNYWluUmVwb3J0VGV4dDtcclxuYWxsUmVwb3J0VGV4dHM6IEFsbFJlcG9ydFRleHQgW10gPSBbXTtcclxuc2VsZWN0ZWRTZWN0aW9uOiBzdHJpbmc7XHJcbm1haW5SZXBvcnRUZXh0czogTWFpblJlcG9ydFRleHQ7XHJcbnNlbGVjdGVkU2VjdGlvbklkOiBzdHJpbmc7XHJcbmFsbFRleHRSZXBvcnQ6IEFsbFRleHRSZXBvcnRbXTtcclxuc2VjdGlvbnM6IHN0cmluZyBbXSA9IFtdO1xyXG5wcmV2U2VjdGlvbklkOiBzdHJpbmc7XHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICB0aGlzLm1haW5SZXBvcnRUZXh0cyA9IG5ldyBNYWluUmVwb3J0VGV4dCgpO1xyXG4gIHRoaXMub25TZWxlY3QodGhpcy5zZWxlY3RlZFNlY3Rpb25JZCk7XHJcbn1cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgIH1cclxuXHJcbiAgb25TZWxlY3Qoc2VjdGlvbklkKSB7XHJcbiAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uSWQgPSBzZWN0aW9uSWQ7XHJcbiAgICB0aGlzLnNlY3Rpb25zID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IG51bGw7XHJcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoc2VjdGlvbklkID09PSAndW5kZWZpbmVkJyB8fCBzZWN0aW9uSWQgPT09IHVuZGVmaW5lZCB8fCBzZWN0aW9uSWQgPT09ICdBbGwnICkge1xyXG4gICAgICBsZXQgYWxsVGV4dDogc3RyaW5nO1xyXG4gICAgICB0aGlzLmFsbFRleHRSZXBvcnQgPSBbXTtcclxuICAgICAgYWxsVGV4dCA9ICcnO1xyXG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgICBpZiAodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0ucmVwb3J0VGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgIGNvbnN0IHRleHRSZXBvcnQ6IEFsbFRleHRSZXBvcnQgPSBuZXcgQWxsVGV4dFJlcG9ydCgpO1xyXG4gICAgICAgICAgdGV4dFJlcG9ydC5oZWFkaW5nID0gIHNlY3Rpb247XHJcbiAgICAgICAgICB0ZXh0UmVwb3J0LmNvbnRlbnQgPSB0aGlzLnJlbW92ZUVtcHR5TGluZSh0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dFtzZWN0aW9uXS5yZXBvcnRUZXh0KTtcclxuICAgICAgICAgIHRoaXMuYWxsVGV4dFJlcG9ydC5wdXNoICh0ZXh0UmVwb3J0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25JZCA9ICdBbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBpbiB0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dCkge1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0uc2VjdGlvbklkID09PSBzZWN0aW9uSWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSB0aGlzLnJlcG9ydFRleHQucmVwb3J0VGV4dE1haW5Db250ZW50ICsgKCh0aGlzLnNlbGVjdGVkU2VjdGlvbiAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uICE9PSAnJykgPyB0aGlzLnJlbW92ZUVtcHR5TGluZSh0aGlzLnNlbGVjdGVkU2VjdGlvbikgOiAnJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubWFpblJlcG9ydFRleHRzID0gbmV3IE1haW5SZXBvcnRUZXh0KCk7XHJcbiAgICB0aGlzLmFsbFJlcG9ydFRleHRzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgY29uc3QgYWxscmVwb3J0VGV4dCA9IG5ldyBBbGxSZXBvcnRUZXh0KCk7XHJcbiAgICAgIGFsbHJlcG9ydFRleHQucmVwb3J0VGV4dCA9IHRoaXMucmVtb3ZlRW1wdHlMaW5lKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQpO1xyXG4gICAgICBhbGxyZXBvcnRUZXh0LnNlY3Rpb25JZCA9IHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnNlY3Rpb25JZDtcclxuICAgICAgdGhpcy5hbGxSZXBvcnRUZXh0cy5wdXNoKGFsbHJlcG9ydFRleHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYWluUmVwb3J0VGV4dHMuYWxsUmVwb3J0VGV4dCA9IHRoaXMuYWxsUmVwb3J0VGV4dHM7XHJcbiAgICB0aGlzLm1haW5SZXBvcnRUZXh0cy5yZXBvcnRUZXh0TWFpbkNvbnRlbnQgPSB0aGlzLnJlcG9ydFRleHQucmVwb3J0VGV4dE1haW5Db250ZW50O1xyXG59XHJcbnJlbW92ZUVtcHR5TGluZShpbnB1dFRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wdXRUZXh0LnRyaW0oKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgY29uc3QgbGluZXMgPSBpbnB1dFRleHQuc3BsaXQoJ1xcbicpO1xyXG4gICAgICBjb25zdCB1bmlxdWVsaW5lcyA9IFtdO1xyXG4gICAgICBsaW5lcy5mb3JFYWNoKCBmdW5jdGlvbiAobGluZSwgaSkge1xyXG4gICAgICAgICAgaWYgKGxpbmUudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICB1bmlxdWVsaW5lcy5wdXNoKGxpbmUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHVuaXF1ZWxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=