UNPKG

@vendasta/store

Version:

Components and data for Store

60 lines 18.2 kB
import { Component, Input, Output, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/icon"; import * as i2 from "@vendasta/uikit"; import * as i3 from "@angular/common"; import * as i4 from "@ngx-translate/core"; export class ProductsNavV2Component { constructor() { this.itemSelected = new EventEmitter(); this.selected_id = ''; this.pageMarker = 0; } onItemSelected(id) { this.selected_id = id; this.itemSelected.emit(id); } moveSlides(slides) { const sliderWidth = Math.round(slides.offsetWidth / slides.children[0].clientWidth); const numSlides = Math.ceil(slides.children.length / sliderWidth); if (numSlides === 0) { return; } const pageWidth = slides.offsetWidth; let move = 0; if (this.pageMarker === -1) { this.pageMarker = numSlides - 1; // go to end move = pageWidth * this.pageMarker; slides.style.left = `-${move}px`; } else if (this.pageMarker >= numSlides) { slides.style.left = '0px'; this.pageMarker = 0; // reset } else { move = pageWidth * this.pageMarker; slides.style.left = `-${move}px`; } } pageNext(slides) { this.pageMarker++; this.moveSlides(slides); } pagePrev(slides) { this.pageMarker--; this.moveSlides(slides); } } ProductsNavV2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ProductsNavV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); ProductsNavV2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ProductsNavV2Component, selector: "app-products-nav-v2", inputs: { items: "items", hideItemsNav: "hideItemsNav" }, outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "<p *ngIf=\"items?.length > 1\" class=\"item-amount\">\n {{\n 'FRONTEND.STORE.CONTAINS_NUM_ITEMS' | translate: { itemCount: items.length }\n }}\n</p>\n<div class=\"wrapper\">\n <nav\n *ngIf=\"items && !hideItemsNav\"\n (swipeleft)=\"pageNext(slides)\"\n (swiperight)=\"pagePrev(slides)\"\n >\n <div [ngClass]=\"{ 'hide-arrows': items && items.length < 5 }\">\n <span class=\"prev\" (click)=\"pagePrev(slides)\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </span>\n <span class=\"next\" (click)=\"pageNext(slides)\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n <ul class=\"slides\" #slides>\n <li\n *ngFor=\"let lineItem of items\"\n (click)=\"onItemSelected(lineItem?.item?.id)\"\n >\n <a [ngClass]=\"{ active: lineItem?.item?.id === selected_id }\">\n <span class=\"icon-area\">\n <va-icon\n [iconUrl]=\"lineItem?.item?.icon\"\n [name]=\"lineItem?.item?.name\"\n [diameter]=\"80\"\n ></va-icon>\n <va-icon\n *ngIf=\"lineItem?.parent?.id\"\n class=\"addon-indicator\"\n [iconUrl]=\"lineItem?.parent?.icon\"\n [name]=\"lineItem?.parent?.name\"\n [diameter]=\"24\"\n ></va-icon>\n </span>\n <div class=\"name-container\">\n <div>{{ lineItem?.item?.name }}</div>\n <div *ngIf=\"lineItem?.item?.editionName\" class=\"edition-name\">\n {{ lineItem.item.editionName }}\n </div>\n </div>\n <div *ngIf=\"lineItem?.parent?.id\">\n <span class=\"requires-text\">\n {{ 'FRONTEND.STORE.REQUIRES' | translate }}\n </span>\n <span>{{ lineItem?.parent.name }}</span>\n </div>\n </a>\n </li>\n </ul>\n </nav>\n</div>\n", styles: [".name-container{display:flex;justify-content:center;align-items:center;flex-direction:column}.name-container va-badge{margin-top:12px;margin-left:6px}nav{position:relative;width:350px;margin:0 auto;background:#ffffff;border:1px solid #e0e0e0;border-width:1px 0;overflow:hidden}nav ul{display:flex;flex-wrap:nowrap;list-style:none;margin:0 50px;padding:0;position:relative;left:0;transition:.3s left ease;word-break:break-word}nav li{min-width:100%;flex:1 0 25%;text-align:center;font-size:14px}nav li:first-child a{border-right:1px solid #e0e0e0}nav a{position:relative;display:block;height:100%;padding:20px;text-decoration:none;color:#212121;transition:.3s background;align-items:center;border-right:1px solid #e0e0e0;cursor:pointer}nav a:hover{background-color:rgba(255,255,255,.6)}nav a.active{background-color:#fff}nav a.active:after{content:\"\";display:block;position:absolute;bottom:-1px;left:0;width:100%;height:1px;background-color:#fff}nav p{margin-bottom:0}nav .icon img{width:80px;min-width:80px;height:80px}nav .prev,nav .next{position:absolute;height:100%;width:50px;top:0;background:rgba(33,33,33,.1);cursor:pointer;text-align:center;opacity:1;transition:.3s opacity ease;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1}nav .prev:not(.disabled):hover,nav .next:not(.disabled):hover{background:rgba(33,33,33,.3)}nav .prev{left:0}nav .next{right:0}nav .disabled{cursor:default;opacity:0}@media screen and (min-width: 600px){nav{width:auto;overflow:visible;overflow:initial}nav li{min-width:0;width:25%;flex-grow:0}}@media screen and (min-width: 600px){nav .hide-arrows{display:none}nav .hide-arrows+.slides{margin:0}}va-icon{display:inline-block}.item-amount{color:#9e9e9e;font-size:14px;text-align:right;margin:0 24px 8px}.wrapper{overflow:hidden}.requires-text{color:#9e9e9e}.icon-area{position:relative;display:inline-block}.addon-indicator{position:absolute;border:2px solid #ffffff;border-radius:50%;bottom:-2px;right:-2px}.edition-name{color:#9e9e9e;font-style:italic;text-align:center;width:100%;font-size:16px;margin-bottom:4px}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.IconComponent, selector: "va-icon", inputs: ["iconUrl", "name", "diameter", "backgroundColor", "borderColor", "fontColor"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i4.TranslatePipe } }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ProductsNavV2Component, decorators: [{ type: Component, args: [{ selector: 'app-products-nav-v2', template: "<p *ngIf=\"items?.length > 1\" class=\"item-amount\">\n {{\n 'FRONTEND.STORE.CONTAINS_NUM_ITEMS' | translate: { itemCount: items.length }\n }}\n</p>\n<div class=\"wrapper\">\n <nav\n *ngIf=\"items && !hideItemsNav\"\n (swipeleft)=\"pageNext(slides)\"\n (swiperight)=\"pagePrev(slides)\"\n >\n <div [ngClass]=\"{ 'hide-arrows': items && items.length < 5 }\">\n <span class=\"prev\" (click)=\"pagePrev(slides)\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </span>\n <span class=\"next\" (click)=\"pageNext(slides)\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n <ul class=\"slides\" #slides>\n <li\n *ngFor=\"let lineItem of items\"\n (click)=\"onItemSelected(lineItem?.item?.id)\"\n >\n <a [ngClass]=\"{ active: lineItem?.item?.id === selected_id }\">\n <span class=\"icon-area\">\n <va-icon\n [iconUrl]=\"lineItem?.item?.icon\"\n [name]=\"lineItem?.item?.name\"\n [diameter]=\"80\"\n ></va-icon>\n <va-icon\n *ngIf=\"lineItem?.parent?.id\"\n class=\"addon-indicator\"\n [iconUrl]=\"lineItem?.parent?.icon\"\n [name]=\"lineItem?.parent?.name\"\n [diameter]=\"24\"\n ></va-icon>\n </span>\n <div class=\"name-container\">\n <div>{{ lineItem?.item?.name }}</div>\n <div *ngIf=\"lineItem?.item?.editionName\" class=\"edition-name\">\n {{ lineItem.item.editionName }}\n </div>\n </div>\n <div *ngIf=\"lineItem?.parent?.id\">\n <span class=\"requires-text\">\n {{ 'FRONTEND.STORE.REQUIRES' | translate }}\n </span>\n <span>{{ lineItem?.parent.name }}</span>\n </div>\n </a>\n </li>\n </ul>\n </nav>\n</div>\n", styles: [".name-container{display:flex;justify-content:center;align-items:center;flex-direction:column}.name-container va-badge{margin-top:12px;margin-left:6px}nav{position:relative;width:350px;margin:0 auto;background:#ffffff;border:1px solid #e0e0e0;border-width:1px 0;overflow:hidden}nav ul{display:flex;flex-wrap:nowrap;list-style:none;margin:0 50px;padding:0;position:relative;left:0;transition:.3s left ease;word-break:break-word}nav li{min-width:100%;flex:1 0 25%;text-align:center;font-size:14px}nav li:first-child a{border-right:1px solid #e0e0e0}nav a{position:relative;display:block;height:100%;padding:20px;text-decoration:none;color:#212121;transition:.3s background;align-items:center;border-right:1px solid #e0e0e0;cursor:pointer}nav a:hover{background-color:rgba(255,255,255,.6)}nav a.active{background-color:#fff}nav a.active:after{content:\"\";display:block;position:absolute;bottom:-1px;left:0;width:100%;height:1px;background-color:#fff}nav p{margin-bottom:0}nav .icon img{width:80px;min-width:80px;height:80px}nav .prev,nav .next{position:absolute;height:100%;width:50px;top:0;background:rgba(33,33,33,.1);cursor:pointer;text-align:center;opacity:1;transition:.3s opacity ease;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1}nav .prev:not(.disabled):hover,nav .next:not(.disabled):hover{background:rgba(33,33,33,.3)}nav .prev{left:0}nav .next{right:0}nav .disabled{cursor:default;opacity:0}@media screen and (min-width: 600px){nav{width:auto;overflow:visible;overflow:initial}nav li{min-width:0;width:25%;flex-grow:0}}@media screen and (min-width: 600px){nav .hide-arrows{display:none}nav .hide-arrows+.slides{margin:0}}va-icon{display:inline-block}.item-amount{color:#9e9e9e;font-size:14px;text-align:right;margin:0 24px 8px}.wrapper{overflow:hidden}.requires-text{color:#9e9e9e}.icon-area{position:relative;display:inline-block}.addon-indicator{position:absolute;border:2px solid #ffffff;border-radius:50%;bottom:-2px;right:-2px}.edition-name{color:#9e9e9e;font-style:italic;text-align:center;width:100%;font-size:16px;margin-bottom:4px}\n"] }] }], propDecorators: { items: [{ type: Input }], hideItemsNav: [{ type: Input }], itemSelected: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMtbmF2LXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9wcm9kdWN0cy1uYXYvcHJvZHVjdHMtbmF2LXYyL3Byb2R1Y3RzLW5hdi12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N0b3JlL3NyYy9saWIvcHJvZHVjdHMtbmF2L3Byb2R1Y3RzLW5hdi12Mi9wcm9kdWN0cy1uYXYtdjIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFRWSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFHLENBQUMsQ0FBQztLQXNDaEI7SUFwQ0MsY0FBYyxDQUFDLEVBQVU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUF1QjtRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQzdDLElBQUksR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRTtZQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRO1NBQzlCO2FBQU07WUFDTCxJQUFJLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsTUFBdUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDOzttSEEzQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsZ0tDUm5DLHM0REF3REE7MkZEaERhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmVMaW5lSXRlbSB9IGZyb20gJy4uLy4uL3BhY2thZ2UtZGV0YWlscy12Mi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdHMtbmF2LXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3RzLW5hdi12Mi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1Y3RzLW5hdi12Mi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0c05hdlYyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IFN0b3JlTGluZUl0ZW1bXTtcbiAgQElucHV0KCkgaGlkZUl0ZW1zTmF2OiBib29sZWFuO1xuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgc2VsZWN0ZWRfaWQgPSAnJztcbiAgcGFnZU1hcmtlciA9IDA7XG5cbiAgb25JdGVtU2VsZWN0ZWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRfaWQgPSBpZDtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGlkKTtcbiAgfVxuXG4gIG1vdmVTbGlkZXMoc2xpZGVzOiBIVE1MQm9keUVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzbGlkZXJXaWR0aCA9IE1hdGgucm91bmQoc2xpZGVzLm9mZnNldFdpZHRoIC8gc2xpZGVzLmNoaWxkcmVuWzBdLmNsaWVudFdpZHRoKTtcbiAgICBjb25zdCBudW1TbGlkZXMgPSBNYXRoLmNlaWwoc2xpZGVzLmNoaWxkcmVuLmxlbmd0aCAvIHNsaWRlcldpZHRoKTtcbiAgICBpZiAobnVtU2xpZGVzID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhZ2VXaWR0aCA9IHNsaWRlcy5vZmZzZXRXaWR0aDtcbiAgICBsZXQgbW92ZSA9IDA7XG5cbiAgICBpZiAodGhpcy5wYWdlTWFya2VyID09PSAtMSkge1xuICAgICAgdGhpcy5wYWdlTWFya2VyID0gbnVtU2xpZGVzIC0gMTsgLy8gZ28gdG8gZW5kXG4gICAgICBtb3ZlID0gcGFnZVdpZHRoICogdGhpcy5wYWdlTWFya2VyO1xuICAgICAgc2xpZGVzLnN0eWxlLmxlZnQgPSBgLSR7bW92ZX1weGA7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2VNYXJrZXIgPj0gbnVtU2xpZGVzKSB7XG4gICAgICBzbGlkZXMuc3R5bGUubGVmdCA9ICcwcHgnO1xuICAgICAgdGhpcy5wYWdlTWFya2VyID0gMDsgLy8gcmVzZXRcbiAgICB9IGVsc2Uge1xuICAgICAgbW92ZSA9IHBhZ2VXaWR0aCAqIHRoaXMucGFnZU1hcmtlcjtcbiAgICAgIHNsaWRlcy5zdHlsZS5sZWZ0ID0gYC0ke21vdmV9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHBhZ2VOZXh0KHNsaWRlczogSFRNTEJvZHlFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlTWFya2VyKys7XG4gICAgdGhpcy5tb3ZlU2xpZGVzKHNsaWRlcyk7XG4gIH1cblxuICBwYWdlUHJldihzbGlkZXM6IEhUTUxCb2R5RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMucGFnZU1hcmtlci0tO1xuICAgIHRoaXMubW92ZVNsaWRlcyhzbGlkZXMpO1xuICB9XG59XG4iLCI8cCAqbmdJZj1cIml0ZW1zPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJpdGVtLWFtb3VudFwiPlxuICB7e1xuICAgICdGUk9OVEVORC5TVE9SRS5DT05UQUlOU19OVU1fSVRFTVMnIHwgdHJhbnNsYXRlOiB7IGl0ZW1Db3VudDogaXRlbXMubGVuZ3RoIH1cbiAgfX1cbjwvcD5cbjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxuYXZcbiAgICAqbmdJZj1cIml0ZW1zICYmICFoaWRlSXRlbXNOYXZcIlxuICAgIChzd2lwZWxlZnQpPVwicGFnZU5leHQoc2xpZGVzKVwiXG4gICAgKHN3aXBlcmlnaHQpPVwicGFnZVByZXYoc2xpZGVzKVwiXG4gID5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2hpZGUtYXJyb3dzJzogaXRlbXMgJiYgaXRlbXMubGVuZ3RoIDwgNSB9XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInByZXZcIiAoY2xpY2spPVwicGFnZVByZXYoc2xpZGVzKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5leHRcIiAoY2xpY2spPVwicGFnZU5leHQoc2xpZGVzKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDx1bCBjbGFzcz1cInNsaWRlc1wiICNzbGlkZXM+XG4gICAgICA8bGlcbiAgICAgICAgKm5nRm9yPVwibGV0IGxpbmVJdGVtIG9mIGl0ZW1zXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uSXRlbVNlbGVjdGVkKGxpbmVJdGVtPy5pdGVtPy5pZClcIlxuICAgICAgPlxuICAgICAgICA8YSBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbGluZUl0ZW0/Lml0ZW0/LmlkID09PSBzZWxlY3RlZF9pZCB9XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWFyZWFcIj5cbiAgICAgICAgICAgIDx2YS1pY29uXG4gICAgICAgICAgICAgIFtpY29uVXJsXT1cImxpbmVJdGVtPy5pdGVtPy5pY29uXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwibGluZUl0ZW0/Lml0ZW0/Lm5hbWVcIlxuICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiODBcIlxuICAgICAgICAgICAgPjwvdmEtaWNvbj5cbiAgICAgICAgICAgIDx2YS1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwibGluZUl0ZW0/LnBhcmVudD8uaWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImFkZG9uLWluZGljYXRvclwiXG4gICAgICAgICAgICAgIFtpY29uVXJsXT1cImxpbmVJdGVtPy5wYXJlbnQ/Lmljb25cIlxuICAgICAgICAgICAgICBbbmFtZV09XCJsaW5lSXRlbT8ucGFyZW50Py5uYW1lXCJcbiAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjI0XCJcbiAgICAgICAgICAgID48L3ZhLWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdj57eyBsaW5lSXRlbT8uaXRlbT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxpbmVJdGVtPy5pdGVtPy5lZGl0aW9uTmFtZVwiIGNsYXNzPVwiZWRpdGlvbi1uYW1lXCI+XG4gICAgICAgICAgICAgIHt7IGxpbmVJdGVtLml0ZW0uZWRpdGlvbk5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lSXRlbT8ucGFyZW50Py5pZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlcy10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7ICdGUk9OVEVORC5TVE9SRS5SRVFVSVJFUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGxpbmVJdGVtPy5wYXJlbnQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvZGl2PlxuIl19