UNPKG

stimulsoft-viewer-angular

Version:

The Viewer component is designed to view reports and dashboards in the web browser.

178 lines (166 loc) 17.7 kB
import { Component, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../services/model.service"; import * as i2 from "../services/helper.service"; import * as i3 from "@angular/common"; import * as i4 from "../controls/checkbox.component"; import * as i5 from "../controls/parameters/parameter-checkbox.component"; import * as i6 from "./parameter-menu-item.component"; import * as i7 from "./parameter-menu-separator.component"; import * as i8 from "../controls/parameters/parameter-find.component"; export class ParameterMenuNotEditListComponent { constructor(model, helper) { this.model = model; this.helper = helper; } ngOnInit() { } selectAll() { const isAllSelected = this.isAllSelected(); if (this.menu.params.items) { this.menu.params.items.forEach(e => e.isChecked = !isAllSelected); } } isAllSelected() { return this.menu.params.items.every(e => e.isChecked); } check(item) { item.isChecked = !item.isChecked; } closeAction() { this.menu.state = 'initialDown'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParameterMenuNotEditListComponent, deps: [{ token: i1.ModelService }, { token: i2.HelperService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ParameterMenuNotEditListComponent, selector: "sti-parameter-menu-not-edit-list", inputs: { menu: "menu" }, ngImport: i0, template: ` <sti-parameter-find *ngIf="menu.params.items.length > 10" [variable]="menu.params"></sti-parameter-find> <sti-parameter-menu-separator *ngIf="menu.params.items.length > 10"></sti-parameter-menu-separator> <div [style.max-height.px]="400" [style.overflow]="'hidden auto'"> <table class="stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable" cellpadding="0" cellspacing="0" [style.fontFamily]="model.options.toolbar.fontFamily" [style.color]="model.options.toolbar.fontColor" [style.fontSize]="'12px'" [style.width]="(menu.parent.nativeElement.offsetWidth - 5) + 'px'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-check-box [captionText]="model.loc('SelectAll')" [margin]="'8px 7px 8px 7px'" [isChecked]="isAllSelected()" (action)="selectAll()" > </sti-check-box> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-separator></sti-parameter-menu-separator> </td> </tr> <tr *ngFor="let item of menu.params.items" class="stiJsViewerClearAllStyles" [style.display]="item.visible ? '' : 'none'"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-item> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-checkbox [params]="item" [captionText]="helper.val(item.value, helper.getStringKey(item.key, menu.params))" [margin]="'0 5px 0 0'" [width]="'100%'" [imageBlockParentWidth]="'1px'" [isMenuParameter]="true" (action)="check(item)"> </sti-parameter-checkbox> </td> </tr> </tbody> </table> </sti-parameter-menu-item> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-separator></sti-parameter-menu-separator> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-item [padding]="'0px 5px 0px 13px'" (action)="closeAction()"> {{model.loc('Close')}} </sti-parameter-menu-item> </td> </tr> </tbody> </table> </div> `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CheckboxComponent, selector: "sti-check-box", inputs: ["isEnabled", "isChecked", "indeterminate", "captionText", "tooltip", "margin", "width", "styleColors", "imageBlockParentWidth", "nullable"], outputs: ["action"] }, { kind: "component", type: i5.ParameterCheckboxComponent, selector: "sti-parameter-checkbox", inputs: ["params", "captionText", "margin", "width", "imageBlockParentWidth", "isEnabled", "isMenuParameter", "paramNull", "nullable"], outputs: ["action"] }, { kind: "component", type: i6.ParameterMenuItemComponent, selector: "sti-parameter-menu-item", inputs: ["active", "padding"], outputs: ["action"] }, { kind: "component", type: i7.ParameterMenuSeparatorComponent, selector: "sti-parameter-menu-separator" }, { kind: "component", type: i8.ParameterFindComponent, selector: "sti-parameter-find", inputs: ["variable"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParameterMenuNotEditListComponent, decorators: [{ type: Component, args: [{ selector: 'sti-parameter-menu-not-edit-list', template: ` <sti-parameter-find *ngIf="menu.params.items.length > 10" [variable]="menu.params"></sti-parameter-find> <sti-parameter-menu-separator *ngIf="menu.params.items.length > 10"></sti-parameter-menu-separator> <div [style.max-height.px]="400" [style.overflow]="'hidden auto'"> <table class="stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable" cellpadding="0" cellspacing="0" [style.fontFamily]="model.options.toolbar.fontFamily" [style.color]="model.options.toolbar.fontColor" [style.fontSize]="'12px'" [style.width]="(menu.parent.nativeElement.offsetWidth - 5) + 'px'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-check-box [captionText]="model.loc('SelectAll')" [margin]="'8px 7px 8px 7px'" [isChecked]="isAllSelected()" (action)="selectAll()" > </sti-check-box> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-separator></sti-parameter-menu-separator> </td> </tr> <tr *ngFor="let item of menu.params.items" class="stiJsViewerClearAllStyles" [style.display]="item.visible ? '' : 'none'"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-item> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-checkbox [params]="item" [captionText]="helper.val(item.value, helper.getStringKey(item.key, menu.params))" [margin]="'0 5px 0 0'" [width]="'100%'" [imageBlockParentWidth]="'1px'" [isMenuParameter]="true" (action)="check(item)"> </sti-parameter-checkbox> </td> </tr> </tbody> </table> </sti-parameter-menu-item> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-separator></sti-parameter-menu-separator> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles"> <sti-parameter-menu-item [padding]="'0px 5px 0px 13px'" (action)="closeAction()"> {{model.loc('Close')}} </sti-parameter-menu-item> </td> </tr> </tbody> </table> </div> ` }] }], ctorParameters: () => [{ type: i1.ModelService }, { type: i2.HelperService }], propDecorators: { menu: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLW1lbnUtbm90LWVkaXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdGltdWxzb2Z0LXZpZXdlci1hbmd1bGFyL3NyYy9saWIvbWVudS9wYXJhbWV0ZXItbWVudS1ub3QtZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQThFekQsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxZQUFtQixLQUFtQixFQUFTLE1BQXFCO1FBQWpELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFlO0lBQUksQ0FBQztJQUV6RSxRQUFRLEtBQUssQ0FBQztJQUVkLFNBQVM7UUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDbEMsQ0FBQzsrR0F6QlUsaUNBQWlDO21HQUFqQyxpQ0FBaUMsa0dBdEVsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1FVDs7NEZBR1UsaUNBQWlDO2tCQXhFN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7aUJBQ0Y7NkdBSVUsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuL21lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGVsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYXJpYWJsZSB9IGZyb20gJy4uL3NlcnZpY2VzL29iamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdGktcGFyYW1ldGVyLW1lbnUtbm90LWVkaXQtbGlzdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPHN0aS1wYXJhbWV0ZXItZmluZCAqbmdJZj1cIm1lbnUucGFyYW1zLml0ZW1zLmxlbmd0aCA+IDEwXCIgW3ZhcmlhYmxlXT1cIm1lbnUucGFyYW1zXCI+PC9zdGktcGFyYW1ldGVyLWZpbmQ+XHJcblxyXG4gICAgICA8c3RpLXBhcmFtZXRlci1tZW51LXNlcGFyYXRvciAqbmdJZj1cIm1lbnUucGFyYW1zLml0ZW1zLmxlbmd0aCA+IDEwXCI+PC9zdGktcGFyYW1ldGVyLW1lbnUtc2VwYXJhdG9yPlxyXG5cclxuICAgICAgPGRpdiBbc3R5bGUubWF4LWhlaWdodC5weF09XCI0MDBcIiBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbiBhdXRvJ1wiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXMgc3RpSnNWaWV3ZXJQYXJhbWV0ZXJzTWVudUlubmVyVGFibGVcIiBjZWxscGFkZGluZz1cIjBcIiBjZWxsc3BhY2luZz1cIjBcIlxyXG4gICAgICAgICAgW3N0eWxlLmZvbnRGYW1pbHldPVwibW9kZWwub3B0aW9ucy50b29sYmFyLmZvbnRGYW1pbHlcIlxyXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIm1vZGVsLm9wdGlvbnMudG9vbGJhci5mb250Q29sb3JcIlxyXG4gICAgICAgICAgW3N0eWxlLmZvbnRTaXplXT1cIicxMnB4J1wiXHJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiKG1lbnUucGFyZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA1KSArICdweCdcIj5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN0aS1jaGVjay1ib3ggW2NhcHRpb25UZXh0XT1cIm1vZGVsLmxvYygnU2VsZWN0QWxsJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXJnaW5dPVwiJzhweCA3cHggOHB4IDdweCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoYWN0aW9uKT1cInNlbGVjdEFsbCgpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8L3N0aS1jaGVjay1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN0aS1wYXJhbWV0ZXItbWVudS1zZXBhcmF0b3I+PC9zdGktcGFyYW1ldGVyLW1lbnUtc2VwYXJhdG9yPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudS5wYXJhbXMuaXRlbXNcIiBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIiBbc3R5bGUuZGlzcGxheV09XCJpdGVtLnZpc2libGUgPyAnJyA6ICdub25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwic3RpSnNWaWV3ZXJDbGVhckFsbFN0eWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3RpLXBhcmFtZXRlci1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJzdGlKc1ZpZXdlckNsZWFyQWxsU3R5bGVzXCIgY2VsbHBhZGRpbmc9XCIwXCIgY2VsbHNwYWNpbmc9XCIwXCIgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwic3RpSnNWaWV3ZXJDbGVhckFsbFN0eWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0aS1wYXJhbWV0ZXItY2hlY2tib3ggW3BhcmFtc109XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvblRleHRdPVwiaGVscGVyLnZhbChpdGVtLnZhbHVlLCBoZWxwZXIuZ2V0U3RyaW5nS2V5KGl0ZW0ua2V5LCBtZW51LnBhcmFtcykpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFyZ2luXT1cIicwIDVweCAwIDAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiJzEwMCUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW1hZ2VCbG9ja1BhcmVudFdpZHRoXT1cIicxcHgnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNNZW51UGFyYW1ldGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiY2hlY2soaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3RpLXBhcmFtZXRlci1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3RpLXBhcmFtZXRlci1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInN0aUpzVmlld2VyQ2xlYXJBbGxTdHlsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN0aS1wYXJhbWV0ZXItbWVudS1zZXBhcmF0b3I+PC9zdGktcGFyYW1ldGVyLW1lbnUtc2VwYXJhdG9yPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJzdGlKc1ZpZXdlckNsZWFyQWxsU3R5bGVzXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzdGlKc1ZpZXdlckNsZWFyQWxsU3R5bGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN0aS1wYXJhbWV0ZXItbWVudS1pdGVtIFtwYWRkaW5nXT1cIicwcHggNXB4IDBweCAxM3B4J1wiIChhY3Rpb24pPVwiY2xvc2VBY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3ttb2RlbC5sb2MoJ0Nsb3NlJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3RpLXBhcmFtZXRlci1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyTWVudU5vdEVkaXRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgbWVudTogTWVudTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGVsOiBNb2RlbFNlcnZpY2UsIHB1YmxpYyBoZWxwZXI6IEhlbHBlclNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICBzZWxlY3RBbGwoKSB7XHJcbiAgICBjb25zdCBpc0FsbFNlbGVjdGVkID0gdGhpcy5pc0FsbFNlbGVjdGVkKCk7XHJcbiAgICBpZiAodGhpcy5tZW51LnBhcmFtcy5pdGVtcykge1xyXG4gICAgICB0aGlzLm1lbnUucGFyYW1zLml0ZW1zLmZvckVhY2goZSA9PiBlLmlzQ2hlY2tlZCA9ICFpc0FsbFNlbGVjdGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51LnBhcmFtcy5pdGVtcy5ldmVyeShlID0+IGUuaXNDaGVja2VkKTtcclxuICB9XHJcblxyXG4gIGNoZWNrKGl0ZW06IFZhcmlhYmxlKSB7XHJcbiAgICBpdGVtLmlzQ2hlY2tlZCA9ICFpdGVtLmlzQ2hlY2tlZDtcclxuICB9XHJcblxyXG4gIGNsb3NlQWN0aW9uKCkge1xyXG4gICAgdGhpcy5tZW51LnN0YXRlID0gJ2luaXRpYWxEb3duJztcclxuICB9XHJcbn1cclxuIl19