UNPKG

lct-components

Version:
164 lines 20.7 kB
import { Directive, HostListener, Input, Output, EventEmitter } from '@angular/core'; import { ModalTooltipComponent } from "./modal-tooltip/modal-tooltip.component"; import { ModalChangeStoreComponent } from './modal/modal-change-store/modal-change-store'; import * as i0 from "@angular/core"; export class ModalTooltipDirective { constructor(viewContainerRef, resolver) { this.viewContainerRef = viewContainerRef; this.resolver = resolver; this.tooltipText = ''; this.version = ''; this.dateVersion = ''; this.country = ''; this.nodes = []; this.stores = []; this.changeNode = new EventEmitter(); this.closeModal = new EventEmitter(); this.openModalChangeNode = new EventEmitter(); this.isMobile = false; this.userId = ''; this.componentRef2 = undefined; } ngOnInit() { const userID = sessionStorage.getItem('userId'); this.formatStore(); this.assingStore(); if (userID !== this.userId) { sessionStorage.removeItem('userId'); sessionStorage.removeItem('storeSelected'); } const storeSelected = sessionStorage.getItem('storeSelected'); this.selectedStore(storeSelected); } formatStore() { this.nodes.forEach(e => { e.node.forEach(nEl => { let obj = new LctNode(e.operator, nEl); this.stores.push(obj); }); }); } ngOnChanges(changes) { var _a, _b; if (((_a = changes.country) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes.country) === null || _b === void 0 ? void 0 : _b.previousValue)) { if (this.componentRef2 !== undefined) { console.log('ejecuta limpiza de conponente y abre el modal'); this.viewContainerRef.clear(); this.openModal(); } } } onMouseEnter() { const componentFactory = this.resolver.resolveComponentFactory(ModalTooltipComponent); const componentRef = this.viewContainerRef.createComponent(componentFactory); if (this.tooltipText) { componentRef.instance.nameStore = this.tooltipText; } if (this.version) { componentRef.instance.version = this.version; } if (this.dateVersion) { componentRef.instance.dateVersion = this.dateVersion; } if (this.stores.length > 1) { componentRef.instance.showChangeStore = true; } componentRef.instance.conditional2.subscribe(resp => { if (resp) { if (this.viewContainerRef) { this.viewContainerRef.clear(); this.closeModal.next(true); } } }); componentRef.instance.openModalStore.subscribe(reso => { if (reso) { this.openModal(); } }); } openModal() { const componentFactory = this.resolver.resolveComponentFactory(ModalChangeStoreComponent); this.componentRef2 = this.viewContainerRef.createComponent(componentFactory); if (this.openModalChangeNode) this.openModalChangeNode.next(true); this.componentRef2.instance.widthModalConfig = this.isMobile ? "100%" : '458px'; this.componentRef2.instance.heightModalConfig = this.isMobile ? "100%" : '268px'; if (this.stores) { // Filtra las tiendas en base al pais this.componentRef2.instance.tiendas = this.stores.filter(x => x.country === this.country); } if (this.userId) { this.componentRef2.instance.userId = this.userId; } this.componentRef2.instance.closeModalStore.subscribe(resp => { if (typeof resp.change === 'boolean') { if (this.viewContainerRef) { if (resp.change) { this.assingStore(); } this.changeNode.next(resp.change); this.viewContainerRef.clear(); } } }); } assingStore() { var _a; const storeSelected = sessionStorage.getItem('storeSelected'); if (storeSelected) { this.tooltipText = ((_a = JSON.parse(storeSelected)) === null || _a === void 0 ? void 0 : _a.nodeName) || ''; } } selectedStore(storeSelected) { if (this.stores.length > 1 && !storeSelected) { this.openModal(); } else if (this.stores.length === 1) { this.tooltipText = this.stores[0].nodeName; sessionStorage.setItem('storeSelected', JSON.stringify(this.stores[0])); } else { console.error('You don`t have store'); } } } ModalTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ModalTooltipDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive }); ModalTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: ModalTooltipDirective, selector: "[lctModalTooltip]", inputs: { version: "version", dateVersion: "dateVersion", country: "country", nodes: "nodes", isMobile: "isMobile", userId: "userId" }, outputs: { changeNode: "changeNode", closeModal: "closeModal", openModalChangeNode: "openModalChangeNode" }, host: { listeners: { "click": "onMouseEnter()" } }, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ModalTooltipDirective, decorators: [{ type: Directive, args: [{ selector: '[lctModalTooltip]' }] }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { version: [{ type: Input }], dateVersion: [{ type: Input }], country: [{ type: Input }], nodes: [{ type: Input }], changeNode: [{ type: Output }], closeModal: [{ type: Output }], openModalChangeNode: [{ type: Output }], isMobile: [{ type: Input }], userId: [{ type: Input }], onMouseEnter: [{ type: HostListener, args: ["click"] }] } }); export class LctNode { constructor(_operator, _node) { this.nodeName = _node.nodeName; this.nodeId = _node.nodeId; this.country = _operator.country; this.commerce = _operator.commerce; } } ; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sY3QtY29tcG9uZW50cy9zcmMvbGliL21vZGFsLXRvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBR0wsTUFBTSxFQUNOLFlBQVksRUFJYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFZMUYsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNVLGdCQUFrQyxFQUNsQyxRQUFrQztRQURsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBRzVDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBWSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUNwQyxXQUFNLEdBQWMsRUFBRSxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFDeEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFDeEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUNsRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBd0QsU0FBUyxDQUFDO0lBYjNFLENBQUM7SUFlTCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FB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LE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFtQ2lCLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTzs7QUE4RnZCLE1BQU0sT0FBTyxPQUFPO0lBS2xCLFlBQVksU0FBYyxFQUFFLEtBQVU7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxUb29sdGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vbW9kYWwtdG9vbHRpcC9tb2RhbC10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTW9kYWxDaGFuZ2VTdG9yZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwvbW9kYWwtY2hhbmdlLXN0b3JlL21vZGFsLWNoYW5nZS1zdG9yZSc7XG5cbmludGVyZmFjZSBOb2RlIHtcbiAgbm9kZU5hbWU6IHN0cmluZztcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgY29tbWVyY2U6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xjdE1vZGFsVG9vbHRpcF0nXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgKSB7IH1cblxuICB0b29sdGlwVGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHZlcnNpb24/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGF0ZVZlcnNpb246IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjb3VudHJ5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbm9kZXM6IEFjY2Vzc0ZpbHRlcltdID0gW107XG4gIHN0b3JlczogTGN0Tm9kZVtdID0gW107XG4gIEBPdXRwdXQoKSBjaGFuZ2VOb2RlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBPdXRwdXQoKSBvcGVuTW9kYWxDaGFuZ2VOb2RlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXJJZDogc3RyaW5nID0gJyc7XG4gIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxNb2RhbENoYW5nZVN0b3JlQ29tcG9uZW50PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB1c2VySUQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgICB0aGlzLmZvcm1hdFN0b3JlKCk7XG4gICAgdGhpcy5hc3NpbmdTdG9yZSgpO1xuICAgIGlmICh1c2VySUQgIT09IHRoaXMudXNlcklkKSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd1c2VySWQnKTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0b3JlU2VsZWN0ZWQnKTtcbiAgICB9XG4gICAgY29uc3Qgc3RvcmVTZWxlY3RlZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3N0b3JlU2VsZWN0ZWQnKTtcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUoc3RvcmVTZWxlY3RlZCk7XG4gIH1cblxuICBmb3JtYXRTdG9yZSgpIHtcbiAgICB0aGlzLm5vZGVzLmZvckVhY2goZSA9PiB7XG4gICAgICBlLm5vZGUuZm9yRWFjaChuRWwgPT4ge1xuICAgICAgICBsZXQgb2JqID0gbmV3IExjdE5vZGUoZS5vcGVyYXRvciwgbkVsKTtcbiAgICAgICAgdGhpcy5zdG9yZXMucHVzaChvYmopO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICBpZiAoY2hhbmdlcy5jb3VudHJ5Py5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY291bnRyeT8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmMiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdlamVjdXRhIGxpbXBpemEgZGUgY29ucG9uZW50ZSB5IGFicmUgZWwgbW9kYWwnKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNb2RhbFRvb2x0aXBDb21wb25lbnQpO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG5cbiAgICBpZiAodGhpcy50b29sdGlwVGV4dCkge1xuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWVTdG9yZSA9IHRoaXMudG9vbHRpcFRleHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnZlcnNpb24pIHtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52ZXJzaW9uID0gdGhpcy52ZXJzaW9uO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRlVmVyc2lvbikge1xuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGVWZXJzaW9uID0gdGhpcy5kYXRlVmVyc2lvbjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RvcmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93Q2hhbmdlU3RvcmUgPSB0cnVlO1xuICAgIH1cbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29uZGl0aW9uYWwyLnN1YnNjcmliZShyZXNwID0+IHtcbiAgICAgIGlmIChyZXNwKSB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9wZW5Nb2RhbFN0b3JlLnN1YnNjcmliZShyZXNvID0+IHtcbiAgICAgIGlmIChyZXNvKSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTW9kYWxDaGFuZ2VTdG9yZUNvbXBvbmVudCk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYyID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcblxuICAgIGlmKHRoaXMub3Blbk1vZGFsQ2hhbmdlTm9kZSl0aGlzLm9wZW5Nb2RhbENoYW5nZU5vZGUubmV4dCh0cnVlKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2Uud2lkdGhNb2RhbENvbmZpZyA9IHRoaXMuaXNNb2JpbGUgPyBcIjEwMCVcIiA6ICc0NThweCc7XG4gICAgdGhpcy5jb21wb25lbnRSZWYyLmluc3RhbmNlLmhlaWdodE1vZGFsQ29uZmlnID0gdGhpcy5pc01vYmlsZSA/IFwiMTAwJVwiIDogJzI2OHB4JztcblxuICAgIGlmICh0aGlzLnN0b3Jlcykge1xuICAgICAgLy8gRmlsdHJhIGxhcyB0aWVuZGFzIGVuIGJhc2UgYWwgcGFpc1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYyLmluc3RhbmNlLnRpZW5kYXMgPSB0aGlzLnN0b3Jlcy5maWx0ZXIoeCA9PiB4LmNvdW50cnkgPT09IHRoaXMuY291bnRyeSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZXJJZCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYyLmluc3RhbmNlLnVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2UuY2xvc2VNb2RhbFN0b3JlLnN1YnNjcmliZShyZXNwID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcmVzcC5jaGFuZ2UgPT09ICdib29sZWFuJykge1xuICAgICAgICBpZiAodGhpcy52aWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgaWYgKHJlc3AuY2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmFzc2luZ1N0b3JlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hhbmdlTm9kZS5uZXh0KHJlc3AuY2hhbmdlKTtcbiAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBhc3NpbmdTdG9yZSgpIHtcbiAgICBjb25zdCBzdG9yZVNlbGVjdGVkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnc3RvcmVTZWxlY3RlZCcpO1xuICAgIGlmIChzdG9yZVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnRvb2x0aXBUZXh0ID0gSlNPTi5wYXJzZShzdG9yZVNlbGVjdGVkKT8ubm9kZU5hbWUgfHwgJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFN0b3JlKHN0b3JlU2VsZWN0ZWQ6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5zdG9yZXMubGVuZ3RoID4gMSAmJiAhc3RvcmVTZWxlY3RlZCkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RvcmVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy50b29sdGlwVGV4dCA9IHRoaXMuc3RvcmVzWzBdLm5vZGVOYW1lO1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RvcmVTZWxlY3RlZCcsIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RvcmVzWzBdKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1lvdSBkb25gdCBoYXZlIHN0b3JlJyk7XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBPcGVyYXRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBjb21tZXJjZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIEFOb2RlIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIG5vZGVOYW1lOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgQWNjZXNzRmlsdGVyIHtcbiAgb3BlcmF0b3I6IE9wZXJhdG9yO1xuICBub2RlOiBBTm9kZVtdO1xufVxuXG5leHBvcnQgY2xhc3MgTGN0Tm9kZSBpbXBsZW1lbnRzIE5vZGUge1xuICBub2RlTmFtZTogc3RyaW5nO1xuICBub2RlSWQ6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBjb21tZXJjZTogc3RyaW5nO1xuICBjb25zdHJ1Y3Rvcihfb3BlcmF0b3I6IGFueSwgX25vZGU6IGFueSkge1xuICAgIHRoaXMubm9kZU5hbWUgPSBfbm9kZS5ub2RlTmFtZTtcbiAgICB0aGlzLm5vZGVJZCA9IF9ub2RlLm5vZGVJZDtcbiAgICB0aGlzLmNvdW50cnkgPSBfb3BlcmF0b3IuY291bnRyeTtcbiAgICB0aGlzLmNvbW1lcmNlID0gX29wZXJhdG9yLmNvbW1lcmNlO1xuICB9XG59OyJdfQ==