ngx-vector-components 5.162.0 → 5.164.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/esm2022/lib/components/menu/menu.component.mjs +4 -5
- package/esm2022/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +3 -4
- package/esm2022/lib/components/top-bar/top-bar.component.mjs +12 -3
- package/esm2022/lib/models/profile.model.mjs +3 -1
- package/fesm2022/ngx-vector-components.mjs +52 -41
- package/fesm2022/ngx-vector-components.mjs.map +1 -1
- package/lib/components/badge/badge.component.d.ts +1 -1
- package/lib/components/top-bar/top-bar.component.d.ts +3 -1
- package/lib/models/profile.model.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "primeng/tooltip";
|
|
5
4
|
export class SubMenusListComponent {
|
|
6
5
|
constructor() {
|
|
7
6
|
this.showList = false;
|
|
@@ -23,11 +22,11 @@ export class SubMenusListComponent {
|
|
|
23
22
|
return this.childLevel * 10 + 'px';
|
|
24
23
|
}
|
|
25
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubMenusListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: { showList: "showList", options: "options", childLevel: "childLevel", submenuSelected: "submenuSelected" }, outputs: { submenuSelectedChange: "submenuSelectedChange" }, ngImport: i0, template: "<div class=\"sub-menu-container\">\n <ul *ngIf=\"showList\" class=\"sub-menu\">\n <div *ngFor=\"let submenuItem of options\">\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\n <div\n class=\"current-item\"\n [ngClass]=\"{\n 'active-menu': submenuSelected?.id === submenuItem.id,\n 'always-open': !!submenuItem.alwaysOpen,\n 'last-child': !submenuItem.children?.length
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: { showList: "showList", options: "options", childLevel: "childLevel", submenuSelected: "submenuSelected" }, outputs: { submenuSelectedChange: "submenuSelectedChange" }, ngImport: i0, template: "<div class=\"sub-menu-container\">\n <ul *ngIf=\"showList\" class=\"sub-menu\">\n <div *ngFor=\"let submenuItem of options\">\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\n <div\n class=\"current-item\"\n [ngClass]=\"{\n 'active-menu': submenuSelected?.id === submenuItem.id,\n 'always-open': !!submenuItem.alwaysOpen,\n 'last-child': !submenuItem.children?.length,\n }\"\n >\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\n <i [class]=\"submenuItem.icon\"></i>\n </div>\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\n <i\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\n class=\"fas angle-icon\"\n [ngClass]=\"{\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\n 'fa-angle-up': submenuSelected?.id === submenuItem.id,\n }\"\n ></i>\n </div>\n </li>\n <vector-sub-menus-list\n *ngIf=\"submenuItem?.children\"\n [options]=\"submenuItem?.children\"\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\n [childLevel]=\"childLevel + 1\"\n (submenuSelectedChange)=\"submenuClick($event)\"\n ></vector-sub-menus-list>\n </div>\n </ul>\n</div>\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 32px 0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: ["showList", "options", "childLevel", "submenuSelected"], outputs: ["submenuSelectedChange"] }] }); }
|
|
27
26
|
}
|
|
28
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubMenusListComponent, decorators: [{
|
|
29
28
|
type: Component,
|
|
30
|
-
args: [{ selector: 'vector-sub-menus-list', template: "<div class=\"sub-menu-container\">\n <ul *ngIf=\"showList\" class=\"sub-menu\">\n <div *ngFor=\"let submenuItem of options\">\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\n <div\n class=\"current-item\"\n [ngClass]=\"{\n 'active-menu': submenuSelected?.id === submenuItem.id,\n 'always-open': !!submenuItem.alwaysOpen,\n 'last-child': !submenuItem.children?.length
|
|
29
|
+
args: [{ selector: 'vector-sub-menus-list', template: "<div class=\"sub-menu-container\">\n <ul *ngIf=\"showList\" class=\"sub-menu\">\n <div *ngFor=\"let submenuItem of options\">\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\n <div\n class=\"current-item\"\n [ngClass]=\"{\n 'active-menu': submenuSelected?.id === submenuItem.id,\n 'always-open': !!submenuItem.alwaysOpen,\n 'last-child': !submenuItem.children?.length,\n }\"\n >\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\n <i [class]=\"submenuItem.icon\"></i>\n </div>\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\n <i\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\n class=\"fas angle-icon\"\n [ngClass]=\"{\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\n 'fa-angle-up': submenuSelected?.id === submenuItem.id,\n }\"\n ></i>\n </div>\n </li>\n <vector-sub-menus-list\n *ngIf=\"submenuItem?.children\"\n [options]=\"submenuItem?.children\"\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\n [childLevel]=\"childLevel + 1\"\n (submenuSelectedChange)=\"submenuClick($event)\"\n ></vector-sub-menus-list>\n </div>\n </ul>\n</div>\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 32px 0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"] }]
|
|
31
30
|
}], propDecorators: { showList: [{
|
|
32
31
|
type: Input
|
|
33
32
|
}], options: [{
|
|
@@ -39,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
39
38
|
}], submenuSelectedChange: [{
|
|
40
39
|
type: Output
|
|
41
40
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1lbnVzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L3N1Yi1tZW51cy1saXN0L3N1Yi1tZW51cy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9zdWItbWVudXMtbGlzdC9zdWItbWVudXMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU9TLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUlmLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7S0FnQjdEO0lBZFEsWUFBWSxDQUFDLE1BQWdCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDckU7WUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDOytHQXpCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw4T0NSbEMsKzdDQW9DQSx1cEdENUJhLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBTTFCLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLO2dCQUdDLHFCQUFxQjtzQkFEM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci1zdWItbWVudXMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWItbWVudXMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1Yi1tZW51cy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN1Yk1lbnVzTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93TGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgcHVibGljIGNoaWxkTGV2ZWwgPSAxO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VibWVudVNlbGVjdGVkOiBNZW51SXRlbSB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtZW51U2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVJdGVtPigpO1xuXG4gIHB1YmxpYyBzdWJtZW51Q2xpY2sob3B0aW9uOiBNZW51SXRlbSkge1xuICAgIGlmICghb3B0aW9uLmFsd2F5c09wZW4pIHtcbiAgICAgIGlmICh0aGlzLnN1Ym1lbnVTZWxlY3RlZD8uaWQgPT09IG9wdGlvbi5pZCkge1xuICAgICAgICB0aGlzLnN1Ym1lbnVTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3VibWVudVNlbGVjdGVkID0gb3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggPyBvcHRpb24gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aGlzLnN1Ym1lbnVTZWxlY3RlZENoYW5nZS5lbWl0KG9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwYWRkaW5nTGVmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZExldmVsICogMTAgKyAncHgnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3ViLW1lbnUtY29udGFpbmVyXCI+XG4gIDx1bCAqbmdJZj1cInNob3dMaXN0XCIgY2xhc3M9XCJzdWItbWVudVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHN1Ym1lbnVJdGVtIG9mIG9wdGlvbnNcIj5cbiAgICAgIDxsaSBjbGFzcz1cInN1Yi1tZW51LWl0ZW1cIiBbbmdTdHlsZV09XCJ7ICdwYWRkaW5nLWxlZnQnOiBwYWRkaW5nTGVmdCB9XCIgKGNsaWNrKT1cInN1Ym1lbnVDbGljayhzdWJtZW51SXRlbSlcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3VycmVudC1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYWN0aXZlLW1lbnUnOiBzdWJtZW51U2VsZWN0ZWQ/LmlkID09PSBzdWJtZW51SXRlbS5pZCxcbiAgICAgICAgICAgICdhbHdheXMtb3Blbic6ICEhc3VibWVudUl0ZW0uYWx3YXlzT3BlbixcbiAgICAgICAgICAgICdsYXN0LWNoaWxkJzogIXN1Ym1lbnVJdGVtLmNoaWxkcmVuPy5sZW5ndGgsXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWVudUl0ZW0uaWNvblwiIGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJzdWJtZW51SXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPnt7IHN1Ym1lbnVJdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cInN1Ym1lbnVJdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgIXN1Ym1lbnVJdGVtLmFsd2F5c09wZW5cIlxuICAgICAgICAgICAgY2xhc3M9XCJmYXMgYW5nbGUtaWNvblwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmYS1hbmdsZS1kb3duJzogc3VibWVudVNlbGVjdGVkPy5pZCAhPT0gc3VibWVudUl0ZW0uaWQsXG4gICAgICAgICAgICAgICdmYS1hbmdsZS11cCc6IHN1Ym1lbnVTZWxlY3RlZD8uaWQgPT09IHN1Ym1lbnVJdGVtLmlkLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPHZlY3Rvci1zdWItbWVudXMtbGlzdFxuICAgICAgICAqbmdJZj1cInN1Ym1lbnVJdGVtPy5jaGlsZHJlblwiXG4gICAgICAgIFtvcHRpb25zXT1cInN1Ym1lbnVJdGVtPy5jaGlsZHJlblwiXG4gICAgICAgIFtzaG93TGlzdF09XCJzdWJtZW51SXRlbT8uaWQgPT09IHN1Ym1lbnVTZWxlY3RlZD8uaWQgfHwgISFzdWJtZW51SXRlbT8uYWx3YXlzT3BlblwiXG4gICAgICAgIFtjaGlsZExldmVsXT1cImNoaWxkTGV2ZWwgKyAxXCJcbiAgICAgICAgKHN1Ym1lbnVTZWxlY3RlZENoYW5nZSk9XCJzdWJtZW51Q2xpY2soJGV2ZW50KVwiXG4gICAgICA+PC92ZWN0b3Itc3ViLW1lbnVzLWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -33,6 +33,7 @@ export class TopBarComponent {
|
|
|
33
33
|
this.maskUtil = MaskUtil;
|
|
34
34
|
this.fintech = false;
|
|
35
35
|
this.showHelpCentral = false;
|
|
36
|
+
this.showProfile = false;
|
|
36
37
|
this.helpCentralIcons = [
|
|
37
38
|
{
|
|
38
39
|
icon: 'fab fa-whatsapp',
|
|
@@ -119,6 +120,12 @@ export class TopBarComponent {
|
|
|
119
120
|
goToPasswordChange() {
|
|
120
121
|
this.router.navigate(['password', 'recover'], { queryParams: { change: true } });
|
|
121
122
|
}
|
|
123
|
+
goToProfile() {
|
|
124
|
+
const userId = this.storageService.getUserId();
|
|
125
|
+
if (userId) {
|
|
126
|
+
this.router.navigate(['admin', 'user', 'detail', userId]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
122
129
|
goToTariff() {
|
|
123
130
|
this.router.navigate(['fintech/under-construction']);
|
|
124
131
|
}
|
|
@@ -132,18 +139,20 @@ export class TopBarComponent {
|
|
|
132
139
|
this.onClick.emit(notification?.link || '');
|
|
133
140
|
}
|
|
134
141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TopBarComponent, deps: [{ token: i1.MenuService }, { token: i1.AuthService }, { token: i2.Router }, { token: i1.ProfileService }, { token: i1.StorageService }, { token: i3.NotificationsService }, { token: i1.ErrorMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService", showHelpCentral: "showHelpCentral" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important;left:1462.88px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: i8.FormatDocumentPipe, name: "formatDocument" }, { kind: "pipe", type: i9.UnreadNotificationsPipe, name: "unreadNotifications" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
|
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService", showHelpCentral: "showHelpCentral", showProfile: "showProfile" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\" styleClass=\"background-white\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-file-contract\"></i></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-key\"></i></span>\n <span>Alterar Senha</span>\n </li>\n <li *ngIf=\"showProfile\" (click)=\"goToProfile(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-user\"></i></span>\n <span>Perfil</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-sign-out-alt\"></i></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:var(--theme-medium)}.user-menu li{display:flex;flex-direction:row;align-items:center;gap:10px;padding:8px 16px;font-weight:600;text-transform:uppercase;cursor:pointer;border-radius:5px;transition:background-color .15s ease,color .15s ease}.user-menu li:hover,.user-menu li:focus{background-color:var(--theme-medium);color:#fff;outline:none}.user-menu li:hover .user-menu-icon i,.user-menu li:focus .user-menu-icon i{color:#fff}.user-menu li .user-menu-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.user-menu li .user-menu-icon i{color:var(--theme-medium);font-size:1.1em;transition:color .15s ease}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: i8.FormatDocumentPipe, name: "formatDocument" }, { kind: "pipe", type: i9.UnreadNotificationsPipe, name: "unreadNotifications" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
|
|
136
143
|
}
|
|
137
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TopBarComponent, decorators: [{
|
|
138
145
|
type: Component,
|
|
139
|
-
args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important;left:1462.88px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"] }]
|
|
146
|
+
args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\" styleClass=\"background-white\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-file-contract\"></i></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-key\"></i></span>\n <span>Alterar Senha</span>\n </li>\n <li *ngIf=\"showProfile\" (click)=\"goToProfile(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-user\"></i></span>\n <span>Perfil</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-sign-out-alt\"></i></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:var(--theme-medium)}.user-menu li{display:flex;flex-direction:row;align-items:center;gap:10px;padding:8px 16px;font-weight:600;text-transform:uppercase;cursor:pointer;border-radius:5px;transition:background-color .15s ease,color .15s ease}.user-menu li:hover,.user-menu li:focus{background-color:var(--theme-medium);color:#fff;outline:none}.user-menu li:hover .user-menu-icon i,.user-menu li:focus .user-menu-icon i{color:#fff}.user-menu li .user-menu-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.user-menu li .user-menu-icon i{color:var(--theme-medium);font-size:1.1em;transition:color .15s ease}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"] }]
|
|
140
147
|
}], ctorParameters: () => [{ type: i1.MenuService }, { type: i1.AuthService }, { type: i2.Router }, { type: i1.ProfileService }, { type: i1.StorageService }, { type: i3.NotificationsService }, { type: i1.ErrorMessageService }], propDecorators: { fintech: [{
|
|
141
148
|
type: Input
|
|
142
149
|
}], accountService: [{
|
|
143
150
|
type: Input
|
|
144
151
|
}], showHelpCentral: [{
|
|
145
152
|
type: Input
|
|
153
|
+
}], showProfile: [{
|
|
154
|
+
type: Input
|
|
146
155
|
}], onClick: [{
|
|
147
156
|
type: Output
|
|
148
157
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBSXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFnRDFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxtQkFBd0M7UUFOeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEQzQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FB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Y0FBYztzQkFEcEIsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLO2dCQXlCSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb2xlLCBWZWN0b3JOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVscENlbnRyYWxJY29uT3B0aW9uc1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9wYmFyLm1vZGVsJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBFcnJvck1lc3NhZ2VTZXJ2aWNlLCBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFza1V0aWwsIFdpbmRvd1V0aWwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci10b3AtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvcC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkTWVudSA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZTtcbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25zID0gZmFsc2U7XG4gIHB1YmxpYyBkb2luZ09uYm9hcmRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgdmVjdG9yRmlyc3ROYW1lOiBhbnk7XG4gIHB1YmxpYyBjdXJyZW50QWNjb3VudDogYW55ID0ge307XG4gIHB1YmxpYyBpc0FkbWluID0gZmFsc2U7XG4gIHB1YmxpYyBvdGhlckFjY291bnRzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbWFza1V0aWwgPSBNYXNrVXRpbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmludGVjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjb3VudFNlcnZpY2U6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwQ2VudHJhbCA9IGZhbHNlO1xuICBwdWJsaWMgaGVscENlbnRyYWxJY29uczogSGVscENlbnRyYWxJY29uT3B0aW9uc1R5cGVbXSA9IFtcbiAgICB7XG4gICAgICBpY29uOiAnZmFiIGZhLXdoYXRzYXBwJyxcbiAgICAgIHVybDogJ2h0dHBzOi8vYXBpLndoYXRzYXBwLmNvbS9zZW5kP3Bob25lPTU1MjE5NzE1NTExODgmdGV4dD1vbCVDMyVBMScsXG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBpY29uOiAncGkgcGktcGhvbmUnLFxuICAgICAgdXJsOiAndGVsOjU1MjEyMDQyMzAxNycsXG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBpY29uOiAnZmFyIGZhLWVudmVsb3BlJyxcbiAgICAgIHVybDogJ21haWx0bzpzdXBvcnRlQHZlY3RvcmFwcC5jb20uYnInLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ2ZhciBmYS1xdWVzdGlvbi1jaXJjbGUnLFxuICAgICAgdXJsOiAnJyxcbiAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgfSxcbiAgXTtcblxuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBub3RpZmljYXRpb25zTGlzdDogVmVjdG9yTm90aWZpY2F0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXJyb3JNZXNzYWdlU2VydmljZTogRXJyb3JNZXNzYWdlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5wcm9maWxlU2VydmljZS5wcm9maWxlRmlyc3ROYW1lJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmVjdG9yRmlyc3ROYW1lID0gdmFsdWU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLm1lbnVPcGVuZWQkLnN1YnNjcmliZSgoaGFzT3BlbmVkKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzID0gaGFzT3BlbmVkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuYWNjb3VudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQuc3Vic2NyaWJlKChhY2NvdW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWNjb3VudCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gYCR7dGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyfWA7XG4gICAgICAgICAgICBjb25zdCBsZW4gPSBzdHIubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgYWNjb3VudFdpdGhIeWZlbiA9IHN0ci5zdWJzdHJpbmcoMCwgbGVuIC0gMSkgKyAnLScgKyBzdHIuc3Vic3RyaW5nKGxlbiAtIDEpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyID0gYWNjb3VudFdpdGhIeWZlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2U/LnVzZXJBY2NvdW50cyQuc3Vic2NyaWJlKChhY2NvdW50czogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5vdGhlckFjY291bnRzID0gYWNjb3VudHM/LmZpbHRlcigoYWNjOiBhbnkpID0+IGFjYy51dWlkICE9PSB0aGlzLmN1cnJlbnRBY2NvdW50Py51dWlkKSB8fCBbXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbk9uYm9hcmRpbmckLnN1YnNjcmliZSgob25PbmJvYXJkaW5nOiBhbnkpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9pbmdPbmJvYXJkaW5nID0gb25PbmJvYXJkaW5nO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJvbGUkLnN1YnNjcmliZSgocm9sZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSByb2xlID09PSBSb2xlLkFETUlOO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5ub3RpZmljYXRpb25zJC5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zTGlzdCA9IG5vdGlmaWNhdGlvbnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy5tZW51U2VydmljZS50b2dnbGVNZW51JC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbG9nb3V0KCkge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gIH1cblxuICBwdWJsaWMgaXNEZXNrdG9wKCkge1xuICAgIHJldHVybiBXaW5kb3dVdGlsLmlzRGVza3RvcCgpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUFjY291bnQobmV3QWNjb3VudDogYW55KSB7XG4gICAgaWYgKG5ld0FjY291bnQuaXNCbG9ja2VkKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZVNlcnZpY2UuZ2VuZXJpY01vZGFsRXJyb3JNZXNzYWdlJC5uZXh0KCdFbnRyZSBlbSBjb250YXRvIGNvbSBhIGNlbnRyYWwgZGUgYXRlbmRpbWVudG8nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnbGlua2VkQ25waicsIG5ld0FjY291bnQuY3VzdG9tZXJEb2N1bWVudCk7XG4gICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQubmV4dChuZXdBY2NvdW50KTtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1Rlcm1zT2ZVc2UoKSB7XG4gICAgdGhpcy5hY2NvdW50U2VydmljZS50ZXJtc09mVXNlJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1Bhc3N3b3JkQ2hhbmdlKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncGFzc3dvcmQnLCAncmVjb3ZlciddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoYW5nZTogdHJ1ZSB9IH0pO1xuICB9XG5cbiAgcHVibGljIGdvVG9UYXJpZmYoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydmaW50ZWNoL3VuZGVyLWNvbnN0cnVjdGlvbiddKTtcbiAgfVxuICBwdWJsaWMgZ29Ub09uYm9hcmRpbmcoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydvbmJvYXJkaW5nJywgJ2F0dG9ybmV5LWluZm9ybWF0aW9uJ10pO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNsaWNrKG5vdGlmaWNhdGlvbjogVmVjdG9yTm90aWZpY2F0aW9uKSB7XG4gICAgaWYgKG5vdGlmaWNhdGlvbj8ubGluaykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChub3RpZmljYXRpb24ubGluayk7XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KG5vdGlmaWNhdGlvbj8ubGluayB8fCAnJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3AtYmFyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGlkPVwibWVudS10b2dnbGVcIiBjbGFzcz1cIm1lbnUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnQtaXRlbXMtY29udGFpbmVyXCIgKm5nSWY9XCJmaW50ZWNoICYmIGlzRGVza3RvcCgpICYmICFkb2luZ09uYm9hcmRpbmcgJiYgIWlzQWRtaW5cIj5cbiAgICA8c3Bhbj5CYW5jbyB7eyBjdXJyZW50QWNjb3VudD8uYmFua0NvZGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPHNwYW4+QUcge3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxuICAgICAge3sgbWFza1V0aWwuZm9ybWF0RG9jdW1lbnQoY3VycmVudEFjY291bnQ/LmRvY3VtZW50KSB9fTwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtYnV0dG9uIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXItMlwiPkFsdGVybmFyIGNvbnRhPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiZmFzXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZENoYW5nZUFjY291bnRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSB9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicmlnaHQtaXRlbXMtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnaGlkZGVuLWl0ZW1zJzogaGlkZUVsZW1lbnRzIH1cIiAqbmdJZj1cIiFpc0FkbWluICYmICFkb2luZ09uYm9hcmRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVscC1jZW50cmFsXCIgKm5nSWY9XCJzaG93SGVscENlbnRyYWxcIj5cbiAgICAgIDxzcGFuPnt7ICdhcHAubGFiZWwuaGVscF9jZW50cmFsJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGhlbHBDZW50cmFsSWNvbnNcIj5cbiAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFpdGVtLmFjdGl2ZSB9XCIgW2F0dHIuaHJlZl09XCJpdGVtLnVybFwiPlxuICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW4gKm5nSWY9XCIhZmludGVjaFwiIChjbGljayk9XCJub3RpZmljYXRpb25zLnRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJmYXMgZmEtYmVsbCBub3RpZmljYXRpb25zLWljb25cIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiKG5vdGlmaWNhdGlvbnNMaXN0IHwgdW5yZWFkTm90aWZpY2F0aW9ucykubGVuZ3RoXCIgY2xhc3M9XCJub3RpZmljYXRpb25zLWluZGljYXRvclwiPiA8L3NwYW4+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPGRpdlxuICAgICAgI21lbnVDb250YWluZXJcbiAgICAgIGNsYXNzPVwibWVudS1jb250YWluZXJcIlxuICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxuICAgICAgcFRvb2x0aXA9XCJFbnRlciB5b3VyIHVzZXJuYW1lXCJcbiAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICB0b29sdGlwRXZlbnQ9XCJjbGlja1wiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW5hbWVcIj57eyBjdXJyZW50QWNjb3VudD8ubmFtZSB8fCB2ZWN0b3JGaXJzdE5hbWUgfHwgJycgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImZhc1wiIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkTWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkTWVudSB9XCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWwgI21lbnUgKG9uSGlkZSk9XCJvcGVuZWRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZE1lbnUgPSB0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mb1wiICpuZ0lmPVwiIWlzRGVza3RvcCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5CYW5jbzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkNDOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj57eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNoYW5nZS1hY2NvdW50LW1vYmlsZVwiIChjbGljayk9XCJjaGFuZ2VBY2NvdW50TWVudS50b2dnbGUoJGV2ZW50KVwiICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlLWxhYmVsXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCI+XG4gICAgICA8bGkgKm5nSWY9XCJmaW50ZWNoXCIgKGNsaWNrKT1cImdvVG9UZXJtc09mVXNlKCk7IG1lbnUuaGlkZSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGVybXMtb2YtdXNlIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5UZXJtb3MgZGUgVXNvPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cImZpbnRlY2hcIiAoY2xpY2spPVwiZ29Ub1Bhc3N3b3JkQ2hhbmdlKCk7IG1lbnUuaGlkZSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmludGVjaC1wYXNzd29yZCB1c2VyLW1lbnUtaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4+QWx0ZXJhciBTZW5oYTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsICNjaGFuZ2VBY2NvdW50TWVudSAob25IaWRlKT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gdHJ1ZVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBhY2NvdW50IG9mIG90aGVyQWNjb3VudHNcIlxuICAgICAgY2xhc3M9XCJhY2NvdW50LWluZm8gY2hhbmdlLWFjY291bnQtaW5mb1wiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlQWNjb3VudChhY2NvdW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+e3sgYWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBhY2NvdW50Py5kb2N1bWVudCB8IGZvcm1hdERvY3VtZW50IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aHIgLz5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgYWRkLWFjY291bnRcIiAoY2xpY2spPVwiZ29Ub09uYm9hcmRpbmcoKTsgY2hhbmdlQWNjb3VudE1lbnUuaGlkZSgpXCI+XG4gICAgICAgIEFkaWNpb25hciB1bWEgbm92YSBjb250YVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsXG4gICNub3RpZmljYXRpb25zXG4gIChvbkhpZGUpPVwic2hvd05vdGlmaWNhdGlvbnMgPSBmYWxzZVwiXG4gIChvblNob3cpPVwic2hvd05vdGlmaWNhdGlvbnMgPSB0cnVlXCJcbiAgc3R5bGVDbGFzcz1cImJhY2tncm91bmQtd2hpdGVcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtdmVjdG9yLWxvZ29cIj48L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9ucy10aXRsZVwiPlxuICAgICAgICB7eyAnYXBwLmxhYmVsLm5vdGlmaWNhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHVsIGNsYXNzPVwibm90aWZpY2F0aW9ucy1saXN0XCI+XG4gICAgICBAZm9yIChub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uc0xpc3Q7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8bGkgKGNsaWNrKT1cImhhbmRsZUNsaWNrKG5vdGlmaWNhdGlvbik7IG5vdGlmaWNhdGlvbnMuaGlkZSgpXCIgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBub3RpZmljYXRpb24udGl0bGUgfX1cbiAgICAgICAgICAgIEBpZiAoIW5vdGlmaWNhdGlvbi53YXNSZWFkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW0taW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICBAaWYgKG5vdGlmaWNhdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgPHNwYW4+e3sgbm90aWZpY2F0aW9uLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2VtPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBSXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFrRDFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxtQkFBd0M7UUFOeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBeEQzQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBR3BCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFJekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQWlDO1lBQ3REO2dCQUNFLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEdBQUcsRUFBRSxpRUFBaUU7Z0JBQ3RFLE1BQU0sRUFBRSxJQUFJO2FBQ2I7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsR0FBRyxFQUFFLGtCQUFrQjtnQkFDdkIsTUFBTSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNFLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEdBQUcsRUFBRSxpQ0FBaUM7Z0JBQ3RDLE1BQU0sRUFBRSxJQUFJO2FBQ2I7WUFDRDtnQkFDRSxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixHQUFHLEVBQUUsRUFBRTtnQkFDUCxNQUFNLEVBQUUsS0FBSzthQUNkO1NBQ0YsQ0FBQztRQUVRLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXhDLHNCQUFpQixHQUF5QixFQUFFLENBQUM7UUFFNUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBVXZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7Z0JBQzlCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDdkIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNuRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO29CQUN2QixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO2lCQUN0RDtZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7WUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwRyxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQWlCLEVBQUUsRUFBRTtnQkFDaEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFlO1FBQ2xDLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDekcsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0MsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQWdDO1FBQ2pELElBQUksWUFBWSxFQUFFLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBeEtVLGVBQWU7bUdBQWYsZUFBZSx5TkNkNUIsZ3NPQXVMQTs7NEZEekthLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhQQWtCbkIsT0FBTztzQkFEYixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsZUFBZTtzQkFEckIsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQXlCSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb2xlLCBWZWN0b3JOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVscENlbnRyYWxJY29uT3B0aW9uc1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9wYmFyLm1vZGVsJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBFcnJvck1lc3NhZ2VTZXJ2aWNlLCBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFza1V0aWwsIFdpbmRvd1V0aWwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci10b3AtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvcC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkTWVudSA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZTtcbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25zID0gZmFsc2U7XG4gIHB1YmxpYyBkb2luZ09uYm9hcmRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgdmVjdG9yRmlyc3ROYW1lOiBhbnk7XG4gIHB1YmxpYyBjdXJyZW50QWNjb3VudDogYW55ID0ge307XG4gIHB1YmxpYyBpc0FkbWluID0gZmFsc2U7XG4gIHB1YmxpYyBvdGhlckFjY291bnRzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbWFza1V0aWwgPSBNYXNrVXRpbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmludGVjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjb3VudFNlcnZpY2U6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwQ2VudHJhbCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Byb2ZpbGUgPSBmYWxzZTtcbiAgcHVibGljIGhlbHBDZW50cmFsSWNvbnM6IEhlbHBDZW50cmFsSWNvbk9wdGlvbnNUeXBlW10gPSBbXG4gICAge1xuICAgICAgaWNvbjogJ2ZhYiBmYS13aGF0c2FwcCcsXG4gICAgICB1cmw6ICdodHRwczovL2FwaS53aGF0c2FwcC5jb20vc2VuZD9waG9uZT01NTIxOTcxNTUxMTg4JnRleHQ9b2wlQzMlQTEnLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ3BpIHBpLXBob25lJyxcbiAgICAgIHVybDogJ3RlbDo1NTIxMjA0MjMwMTcnLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ2ZhciBmYS1lbnZlbG9wZScsXG4gICAgICB1cmw6ICdtYWlsdG86c3Vwb3J0ZUB2ZWN0b3JhcHAuY29tLmJyJyxcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGljb246ICdmYXIgZmEtcXVlc3Rpb24tY2lyY2xlJyxcbiAgICAgIHVybDogJycsXG4gICAgICBhY3RpdmU6IGZhbHNlLFxuICAgIH0sXG4gIF07XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgbm90aWZpY2F0aW9uc0xpc3Q6IFZlY3Rvck5vdGlmaWNhdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGVycm9yTWVzc2FnZVNlcnZpY2U6IEVycm9yTWVzc2FnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucHJvZmlsZVNlcnZpY2UucHJvZmlsZUZpcnN0TmFtZSQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZlY3RvckZpcnN0TmFtZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5zdWJzY3JpYmUoKGhhc09wZW5lZCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGhhc09wZW5lZDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmFjY291bnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLnN1YnNjcmliZSgoYWNjb3VudDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudCA9IGFjY291bnQ7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjY291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IGAke3RoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlcn1gO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnRXaXRoSHlmZW4gPSBzdHIuc3Vic3RyaW5nKDAsIGxlbiAtIDEpICsgJy0nICsgc3RyLnN1YnN0cmluZyhsZW4gLSAxKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlciA9IGFjY291bnRXaXRoSHlmZW47XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLmFjY291bnRTZXJ2aWNlPy51c2VyQWNjb3VudHMkLnN1YnNjcmliZSgoYWNjb3VudHM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMub3RoZXJBY2NvdW50cyA9IGFjY291bnRzPy5maWx0ZXIoKGFjYzogYW55KSA9PiBhY2MudXVpZCAhPT0gdGhpcy5jdXJyZW50QWNjb3VudD8udXVpZCkgfHwgW107XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uub25PbmJvYXJkaW5nJC5zdWJzY3JpYmUoKG9uT25ib2FyZGluZzogYW55KSA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRvaW5nT25ib2FyZGluZyA9IG9uT25ib2FyZGluZztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5yb2xlJC5zdWJzY3JpYmUoKHJvbGUpID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gcm9sZSA9PT0gUm9sZS5BRE1JTjtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9ucyQuc3Vic2NyaWJlKChub3RpZmljYXRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0xpc3QgPSBub3RpZmljYXRpb25zO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xuICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlTWVudSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGxvZ291dCgpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xuICB9XG5cbiAgcHVibGljIGlzRGVza3RvcCgpIHtcbiAgICByZXR1cm4gV2luZG93VXRpbC5pc0Rlc2t0b3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VBY2NvdW50KG5ld0FjY291bnQ6IGFueSkge1xuICAgIGlmIChuZXdBY2NvdW50LmlzQmxvY2tlZCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTZXJ2aWNlLmdlbmVyaWNNb2RhbEVycm9yTWVzc2FnZSQubmV4dCgnRW50cmUgZW0gY29udGF0byBjb20gYSBjZW50cmFsIGRlIGF0ZW5kaW1lbnRvJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2xpbmtlZENucGonLCBuZXdBY2NvdW50LmN1c3RvbWVyRG9jdW1lbnQpO1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLm5leHQobmV3QWNjb3VudCk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9UZXJtc09mVXNlKCkge1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UudGVybXNPZlVzZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXNzd29yZENoYW5nZSgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Bhc3N3b3JkJywgJ3JlY292ZXInXSwgeyBxdWVyeVBhcmFtczogeyBjaGFuZ2U6IHRydWUgfSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUHJvZmlsZSgpIHtcbiAgICBjb25zdCB1c2VySWQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJJZCgpO1xuICAgIGlmICh1c2VySWQpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYWRtaW4nLCAndXNlcicsICdkZXRhaWwnLCB1c2VySWRdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ29Ub1RhcmlmZigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2ZpbnRlY2gvdW5kZXItY29uc3RydWN0aW9uJ10pO1xuICB9XG4gIHB1YmxpYyBnb1RvT25ib2FyZGluZygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ29uYm9hcmRpbmcnLCAnYXR0b3JuZXktaW5mb3JtYXRpb24nXSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ2xpY2sobm90aWZpY2F0aW9uOiBWZWN0b3JOb3RpZmljYXRpb24pIHtcbiAgICBpZiAobm90aWZpY2F0aW9uPy5saW5rKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5vdGlmaWNhdGlvbi5saW5rKTtcbiAgICB9XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQobm90aWZpY2F0aW9uPy5saW5rIHx8ICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvcC1iYXItY29udGFpbmVyXCI+XG4gIDxkaXYgaWQ9XCJtZW51LXRvZ2dsZVwiIGNsYXNzPVwibWVudS10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGVmdC1pdGVtcy1jb250YWluZXJcIiAqbmdJZj1cImZpbnRlY2ggJiYgaXNEZXNrdG9wKCkgJiYgIWRvaW5nT25ib2FyZGluZyAmJiAhaXNBZG1pblwiPlxuICAgIDxzcGFuPkJhbmNvIHt7IGN1cnJlbnRBY2NvdW50Py5iYW5rQ29kZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5BRyB7eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxzcGFuPkNDIHt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICA+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19XG4gICAgICB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuXG4gICAgPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1idXR0b24gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0yXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJyaWdodC1pdGVtcy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdoaWRkZW4taXRlbXMnOiBoaWRlRWxlbWVudHMgfVwiICpuZ0lmPVwiIWlzQWRtaW4gJiYgIWRvaW5nT25ib2FyZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWxwLWNlbnRyYWxcIiAqbmdJZj1cInNob3dIZWxwQ2VudHJhbFwiPlxuICAgICAgPHNwYW4+e3sgJ2FwcC5sYWJlbC5oZWxwX2NlbnRyYWwnIHwgdHJhbnNsYXRlIH19Ojwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGVscENlbnRyYWxJY29uc1wiPlxuICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbbmdDbGFzc109XCJ7IGhpZGRlbjogIWl0ZW0uYWN0aXZlIH1cIiBbYXR0ci5ocmVmXT1cIml0ZW0udXJsXCI+XG4gICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8c3BhbiAqbmdJZj1cIiFmaW50ZWNoXCIgKGNsaWNrKT1cIm5vdGlmaWNhdGlvbnMudG9nZ2xlKCRldmVudClcIiBjbGFzcz1cImZhcyBmYS1iZWxsIG5vdGlmaWNhdGlvbnMtaWNvblwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIobm90aWZpY2F0aW9uc0xpc3QgfCB1bnJlYWROb3RpZmljYXRpb25zKS5sZW5ndGhcIiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yXCI+IDwvc3Bhbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICAjbWVudUNvbnRhaW5lclxuICAgICAgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiXG4gICAgICAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiXG4gICAgICBwVG9vbHRpcD1cIkVudGVyIHlvdXIgdXNlcm5hbWVcIlxuICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIHRvb2x0aXBFdmVudD1cImNsaWNrXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5uYW1lIHx8IHZlY3RvckZpcnN0TmFtZSB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmFzXCIgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRNZW51IH1cIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIiBzdHlsZUNsYXNzPVwiYmFja2dyb3VuZC13aGl0ZVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm9cIiAqbmdJZj1cIiFpc0Rlc2t0b3AoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5iYW5rIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QUc6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hZ2VuY3kgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5DQzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19OiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj4ge3sgbWFza1V0aWwuZm9ybWF0RG9jdW1lbnQoY3VycmVudEFjY291bnQ/LmRvY3VtZW50KSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGVcIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIiAqbmdJZj1cIm90aGVyQWNjb3VudHM/Lmxlbmd0aFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNoYW5nZS1hY2NvdW50LW1vYmlsZS1sYWJlbFwiPkFsdGVybmFyIGNvbnRhPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiZmFzXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZENoYW5nZUFjY291bnRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSB9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx1bCBjbGFzcz1cInVzZXItbWVudVwiPlxuICAgICAgPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvVGVybXNPZlVzZSgpOyBtZW51LmhpZGUoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbWVudS1pY29uXCI+PGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1jb250cmFjdFwiPjwvaT48L3NwYW4+XG4gICAgICAgIDxzcGFuPlRlcm1vcyBkZSBVc288L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvUGFzc3dvcmRDaGFuZ2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW1lbnUtaWNvblwiPjxpIGNsYXNzPVwiZmFzIGZhLWtleVwiPjwvaT48L3NwYW4+XG4gICAgICAgIDxzcGFuPkFsdGVyYXIgU2VuaGE8L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwic2hvd1Byb2ZpbGVcIiAoY2xpY2spPVwiZ29Ub1Byb2ZpbGUoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW1lbnUtaWNvblwiPjxpIGNsYXNzPVwiZmFzIGZhLXVzZXJcIj48L2k+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5QZXJmaWw8L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIChjbGljayk9XCJsb2dvdXQoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbWVudS1pY29uXCI+PGkgY2xhc3M9XCJmYXMgZmEtc2lnbi1vdXQtYWx0XCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4+U2Fpcjwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG5cbjxwLW92ZXJsYXlQYW5lbCAjY2hhbmdlQWNjb3VudE1lbnUgKG9uSGlkZSk9XCJvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSA9IGZhbHNlXCIgKG9uU2hvdyk9XCJvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSA9IHRydWVcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgYWNjb3VudCBvZiBvdGhlckFjY291bnRzXCJcbiAgICAgIGNsYXNzPVwiYWNjb3VudC1pbmZvIGNoYW5nZS1hY2NvdW50LWluZm9cIlxuICAgICAgKGNsaWNrKT1cImNoYW5nZUFjY291bnQoYWNjb3VudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkJhbmNvOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5iYW5rIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QUc6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkNDOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19OiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj4ge3sgYWNjb3VudD8uZG9jdW1lbnQgfCBmb3JtYXREb2N1bWVudCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGhyIC8+XG4gICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIGFkZC1hY2NvdW50XCIgKGNsaWNrKT1cImdvVG9PbmJvYXJkaW5nKCk7IGNoYW5nZUFjY291bnRNZW51LmhpZGUoKVwiPlxuICAgICAgICBBZGljaW9uYXIgdW1hIG5vdmEgY29udGFcbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG5cbjxwLW92ZXJsYXlQYW5lbFxuICAjbm90aWZpY2F0aW9uc1xuICAob25IaWRlKT1cInNob3dOb3RpZmljYXRpb25zID0gZmFsc2VcIlxuICAob25TaG93KT1cInNob3dOb3RpZmljYXRpb25zID0gdHJ1ZVwiXG4gIHN0eWxlQ2xhc3M9XCJiYWNrZ3JvdW5kLXdoaXRlXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9ucy1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLXZlY3Rvci1sb2dvXCI+PC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtdGl0bGVcIj5cbiAgICAgICAge3sgJ2FwcC5sYWJlbC5ub3RpZmljYXRpb25zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDx1bCBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbGlzdFwiPlxuICAgICAgQGZvciAobm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnNMaXN0OyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGxpIChjbGljayk9XCJoYW5kbGVDbGljayhub3RpZmljYXRpb24pOyBub3RpZmljYXRpb25zLmhpZGUoKVwiIGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAge3sgbm90aWZpY2F0aW9uLnRpdGxlIH19XG4gICAgICAgICAgICBAaWYgKCFub3RpZmljYXRpb24ud2FzUmVhZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgQGlmIChub3RpZmljYXRpb24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IG5vdGlmaWNhdGlvbi5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9lbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
|