ngx-vector-components 4.14.0 → 4.16.1

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.
@@ -82,15 +82,18 @@ export class TopBarComponent {
82
82
  goToTariff() {
83
83
  this.router.navigate(['fintech/under-construction']);
84
84
  }
85
+ goToOnboarding() {
86
+ this.router.navigate(['onboarding']);
87
+ }
85
88
  }
86
89
  TopBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, deps: [{ token: i1.MenuService }, { token: i2.AuthService }, { token: i3.Router }, { token: i2.ProfileService }], target: i0.ɵɵFactoryTarget.Component });
87
- TopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService" }, 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 *ngIf=\"otherAccounts?.length\">\n <span class=\"separator\"></span>\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\n <span>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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"], components: [{ type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
90
+ TopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService" }, 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 *ngIf=\"otherAccounts?.length\">\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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding()\">Adicionar uma nova conta</p>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");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}}\n"], components: [{ type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
88
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, decorators: [{
89
92
  type: Component,
90
- 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 *ngIf=\"otherAccounts?.length\">\n <span class=\"separator\"></span>\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\n <span>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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"] }]
93
+ 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 *ngIf=\"otherAccounts?.length\">\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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding()\">Adicionar uma nova conta</p>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");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}}\n"] }]
91
94
  }], ctorParameters: function () { return [{ type: i1.MenuService }, { type: i2.AuthService }, { type: i3.Router }, { type: i2.ProfileService }]; }, propDecorators: { fintech: [{
92
95
  type: Input
93
96
  }], accountService: [{
94
97
  type: Input
95
98
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFtQjFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCO1FBSDlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0QmpDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUdwQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBSXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO2dCQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDbkQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztvQkFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDdEQ7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUU7Z0JBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBZTtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzRHQXpHVSxlQUFlO2dHQUFmLGVBQWUsd0hDYjVCLDJtTEFnSkE7MkZEbklhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhLQWlCbkIsT0FBTztzQkFEYixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXNrVXRpbCwgV2luZG93VXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVjdG9yLXRvcC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9wLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvcC1iYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9wQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgaGlkZUVsZW1lbnRzID0gZmFsc2U7XG4gIHB1YmxpYyBvcGVuZWRNZW51ID0gZmFsc2U7XG4gIHB1YmxpYyBvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSA9IGZhbHNlO1xuICBwdWJsaWMgZG9pbmdPbmJvYXJkaW5nID0gZmFsc2U7XG5cbiAgcHVibGljIHZlY3RvckZpcnN0TmFtZTogYW55O1xuICBwdWJsaWMgY3VycmVudEFjY291bnQ6IGFueSA9IHt9O1xuICBwdWJsaWMgaXNBZG1pbiA9IGZhbHNlO1xuICBwdWJsaWMgb3RoZXJBY2NvdW50czogYW55W10gPSBbXTtcbiAgcHVibGljIG1hc2tVdGlsID0gTWFza1V0aWw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbnRlY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgcHVibGljIGFjY291bnRTZXJ2aWNlOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5wcm9maWxlU2VydmljZS5wcm9maWxlRmlyc3ROYW1lJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmVjdG9yRmlyc3ROYW1lID0gdmFsdWU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLm1lbnVPcGVuZWQkLnN1YnNjcmliZSgoaGFzT3BlbmVkKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzID0gaGFzT3BlbmVkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuYWNjb3VudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQuc3Vic2NyaWJlKChhY2NvdW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWNjb3VudCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gYCR7dGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyfWA7XG4gICAgICAgICAgICBjb25zdCBsZW4gPSBzdHIubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgYWNjb3VudFdpdGhIeWZlbiA9IHN0ci5zdWJzdHJpbmcoMCwgbGVuIC0gMSkgKyAnLScgKyBzdHIuc3Vic3RyaW5nKGxlbiAtIDEpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyID0gYWNjb3VudFdpdGhIeWZlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2U/LnVzZXJBY2NvdW50cyQuc3Vic2NyaWJlKChhY2NvdW50czogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5vdGhlckFjY291bnRzID0gYWNjb3VudHM/LmZpbHRlcigoYWNjOiBhbnkpID0+IGFjYy51dWlkICE9PSB0aGlzLmN1cnJlbnRBY2NvdW50Py51dWlkKSB8fCBbXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbk9uYm9hcmRpbmckLnN1YnNjcmliZSgob25PbmJvYXJkaW5nOiBhbnkpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9pbmdPbmJvYXJkaW5nID0gb25PbmJvYXJkaW5nO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJvbGUkLnN1YnNjcmliZSgocm9sZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSByb2xlID09PSBSb2xlLkFETUlOO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xuICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlTWVudSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGxvZ291dCgpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xuICB9XG5cbiAgcHVibGljIGlzRGVza3RvcCgpIHtcbiAgICByZXR1cm4gV2luZG93VXRpbC5pc0Rlc2t0b3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VBY2NvdW50KG5ld0FjY291bnQ6IGFueSkge1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLm5leHQobmV3QWNjb3VudCk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9UZXJtc09mVXNlKCkge1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UudGVybXNPZlVzZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXNzd29yZENoYW5nZSgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Bhc3N3b3JkJywgJ3JlY292ZXInXSwgeyBxdWVyeVBhcmFtczogeyBjaGFuZ2U6IHRydWUgfSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvVGFyaWZmKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZmludGVjaC91bmRlci1jb25zdHJ1Y3Rpb24nXSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3AtYmFyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGlkPVwibWVudS10b2dnbGVcIiBjbGFzcz1cIm1lbnUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnQtaXRlbXMtY29udGFpbmVyXCIgKm5nSWY9XCJmaW50ZWNoICYmIGlzRGVza3RvcCgpICYmICFkb2luZ09uYm9hcmRpbmcgJiYgIWlzQWRtaW5cIj5cbiAgICA8c3Bhbj5CYW5jbyB7eyBjdXJyZW50QWNjb3VudD8uYmFua0NvZGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPHNwYW4+QUcge3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxuICAgICAge3sgbWFza1V0aWwuZm9ybWF0RG9jdW1lbnQoY3VycmVudEFjY291bnQ/LmRvY3VtZW50KSB9fTwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1idXR0b25cIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJyaWdodC1pdGVtcy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdoaWRkZW4taXRlbXMnOiBoaWRlRWxlbWVudHMgfVwiICpuZ0lmPVwiIWlzQWRtaW4gJiYgIWRvaW5nT25ib2FyZGluZ1wiPlxuICAgIDxzcGFuICpuZ0lmPVwiIWZpbnRlY2hcIiBjbGFzcz1cImZhcyBmYS1iZWxsXCI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxkaXZcbiAgICAgICNtZW51Q29udGFpbmVyXG4gICAgICBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCJcbiAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgIHBUb29sdGlwPVwiRW50ZXIgeW91ciB1c2VybmFtZVwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgdG9vbHRpcEV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1uYW1lXCI+e3sgY3VycmVudEFjY291bnQ/Lm5hbWUgfHwgdmVjdG9yRmlyc3ROYW1lIHx8ICcnIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmYXNcIiBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZE1lbnUgfVwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSA8cC1vdmVybGF5UGFuZWwgI21lbnUgKG9uSGlkZSk9XCJvcGVuZWRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZE1lbnUgPSB0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCI+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD4gLS0+XG5cbjxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvXCIgKm5nSWY9XCIhaXNEZXNrdG9wKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkJhbmNvOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fTogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IG1hc2tVdGlsLmZvcm1hdERvY3VtZW50KGN1cnJlbnRBY2NvdW50Py5kb2N1bWVudCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCIgKm5nSWY9XCJvdGhlckFjY291bnRzPy5sZW5ndGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGUtbGFiZWxcIj5BbHRlcm5hciBjb250YTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZhc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVcIj5cbiAgICAgIDxsaSAqbmdJZj1cImZpbnRlY2hcIiAoY2xpY2spPVwiZ29Ub1Rlcm1zT2ZVc2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtcy1vZi11c2UgdXNlci1tZW51LWljb25cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuPlRlcm1vcyBkZSBVc288L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvUGFzc3dvcmRDaGFuZ2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaW50ZWNoLXBhc3N3b3JkIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5BbHRlcmFyIFNlbmhhPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDwhLS0gPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvVGFyaWZmKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YXJpZmZzIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5UYXJpZmFzPC9zcGFuPlxuICAgICAgPC9saT4gLS0+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsICNjaGFuZ2VBY2NvdW50TWVudSAob25IaWRlKT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gdHJ1ZVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBhY2NvdW50IG9mIG90aGVyQWNjb3VudHNcIlxuICAgICAgY2xhc3M9XCJhY2NvdW50LWluZm8gY2hhbmdlLWFjY291bnQtaW5mb1wiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlQWNjb3VudChhY2NvdW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+e3sgYWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBhY2NvdW50Py5kb2N1bWVudEZvcm1hdHRlZCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFtQjFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCO1FBSDlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0QmpDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUdwQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBSXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO2dCQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDbkQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztvQkFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDdEQ7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUU7Z0JBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBZTtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs0R0E1R1UsZUFBZTtnR0FBZixlQUFlLHdIQ2I1QixveExBb0pBOzJGRHZJYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQjs4S0FpQm5CLE9BQU87c0JBRGIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFza1V0aWwsIFdpbmRvd1V0aWwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci10b3AtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvcC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkTWVudSA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZTtcbiAgcHVibGljIGRvaW5nT25ib2FyZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyB2ZWN0b3JGaXJzdE5hbWU6IGFueTtcbiAgcHVibGljIGN1cnJlbnRBY2NvdW50OiBhbnkgPSB7fTtcbiAgcHVibGljIGlzQWRtaW4gPSBmYWxzZTtcbiAgcHVibGljIG90aGVyQWNjb3VudHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBtYXNrVXRpbCA9IE1hc2tVdGlsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaW50ZWNoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY2NvdW50U2VydmljZTogYW55O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucHJvZmlsZVNlcnZpY2UucHJvZmlsZUZpcnN0TmFtZSQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZlY3RvckZpcnN0TmFtZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5zdWJzY3JpYmUoKGhhc09wZW5lZCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGhhc09wZW5lZDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmFjY291bnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLnN1YnNjcmliZSgoYWNjb3VudDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudCA9IGFjY291bnQ7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjY291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IGAke3RoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlcn1gO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnRXaXRoSHlmZW4gPSBzdHIuc3Vic3RyaW5nKDAsIGxlbiAtIDEpICsgJy0nICsgc3RyLnN1YnN0cmluZyhsZW4gLSAxKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlciA9IGFjY291bnRXaXRoSHlmZW47XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLmFjY291bnRTZXJ2aWNlPy51c2VyQWNjb3VudHMkLnN1YnNjcmliZSgoYWNjb3VudHM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMub3RoZXJBY2NvdW50cyA9IGFjY291bnRzPy5maWx0ZXIoKGFjYzogYW55KSA9PiBhY2MudXVpZCAhPT0gdGhpcy5jdXJyZW50QWNjb3VudD8udXVpZCkgfHwgW107XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uub25PbmJvYXJkaW5nJC5zdWJzY3JpYmUoKG9uT25ib2FyZGluZzogYW55KSA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRvaW5nT25ib2FyZGluZyA9IG9uT25ib2FyZGluZztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5yb2xlJC5zdWJzY3JpYmUoKHJvbGUpID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gcm9sZSA9PT0gUm9sZS5BRE1JTjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLnRvZ2dsZU1lbnUkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Rlc2t0b3AoKSB7XG4gICAgcmV0dXJuIFdpbmRvd1V0aWwuaXNEZXNrdG9wKCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlQWNjb3VudChuZXdBY2NvdW50OiBhbnkpIHtcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlLmN1cnJlbnRBY2NvdW50JC5uZXh0KG5ld0FjY291bnQpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvVGVybXNPZlVzZSgpIHtcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlLnRlcm1zT2ZVc2UkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFzc3dvcmRDaGFuZ2UoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydwYXNzd29yZCcsICdyZWNvdmVyJ10sIHsgcXVlcnlQYXJhbXM6IHsgY2hhbmdlOiB0cnVlIH0gfSk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1RhcmlmZigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2ZpbnRlY2gvdW5kZXItY29uc3RydWN0aW9uJ10pO1xuICB9XG4gIHB1YmxpYyBnb1RvT25ib2FyZGluZygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ29uYm9hcmRpbmcnXSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3AtYmFyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGlkPVwibWVudS10b2dnbGVcIiBjbGFzcz1cIm1lbnUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnQtaXRlbXMtY29udGFpbmVyXCIgKm5nSWY9XCJmaW50ZWNoICYmIGlzRGVza3RvcCgpICYmICFkb2luZ09uYm9hcmRpbmcgJiYgIWlzQWRtaW5cIj5cbiAgICA8c3Bhbj5CYW5jbyB7eyBjdXJyZW50QWNjb3VudD8uYmFua0NvZGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPHNwYW4+QUcge3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxuICAgICAge3sgbWFza1V0aWwuZm9ybWF0RG9jdW1lbnQoY3VycmVudEFjY291bnQ/LmRvY3VtZW50KSB9fTwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1idXR0b24gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0yXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJyaWdodC1pdGVtcy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdoaWRkZW4taXRlbXMnOiBoaWRlRWxlbWVudHMgfVwiICpuZ0lmPVwiIWlzQWRtaW4gJiYgIWRvaW5nT25ib2FyZGluZ1wiPlxuICAgIDxzcGFuICpuZ0lmPVwiIWZpbnRlY2hcIiBjbGFzcz1cImZhcyBmYS1iZWxsXCI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxkaXZcbiAgICAgICNtZW51Q29udGFpbmVyXG4gICAgICBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCJcbiAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgIHBUb29sdGlwPVwiRW50ZXIgeW91ciB1c2VybmFtZVwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgdG9vbHRpcEV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1uYW1lXCI+e3sgY3VycmVudEFjY291bnQ/Lm5hbWUgfHwgdmVjdG9yRmlyc3ROYW1lIHx8ICcnIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmYXNcIiBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZE1lbnUgfVwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSA8cC1vdmVybGF5UGFuZWwgI21lbnUgKG9uSGlkZSk9XCJvcGVuZWRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZE1lbnUgPSB0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCI+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD4gLS0+XG5cbjxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvXCIgKm5nSWY9XCIhaXNEZXNrdG9wKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkJhbmNvOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fTogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IG1hc2tVdGlsLmZvcm1hdERvY3VtZW50KGN1cnJlbnRBY2NvdW50Py5kb2N1bWVudCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCIgKm5nSWY9XCJvdGhlckFjY291bnRzPy5sZW5ndGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGUtbGFiZWxcIj5BbHRlcm5hciBjb250YTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZhc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVcIj5cbiAgICAgIDxsaSAqbmdJZj1cImZpbnRlY2hcIiAoY2xpY2spPVwiZ29Ub1Rlcm1zT2ZVc2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtcy1vZi11c2UgdXNlci1tZW51LWljb25cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuPlRlcm1vcyBkZSBVc288L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvUGFzc3dvcmRDaGFuZ2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaW50ZWNoLXBhc3N3b3JkIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5BbHRlcmFyIFNlbmhhPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDwhLS0gPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvVGFyaWZmKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YXJpZmZzIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5UYXJpZmFzPC9zcGFuPlxuICAgICAgPC9saT4gLS0+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsICNjaGFuZ2VBY2NvdW50TWVudSAob25IaWRlKT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gdHJ1ZVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBhY2NvdW50IG9mIG90aGVyQWNjb3VudHNcIlxuICAgICAgY2xhc3M9XCJhY2NvdW50LWluZm8gY2hhbmdlLWFjY291bnQtaW5mb1wiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlQWNjb3VudChhY2NvdW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+e3sgYWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBhY2NvdW50Py5kb2N1bWVudEZvcm1hdHRlZCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGhyIC8+XG4gICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIGFkZC1hY2NvdW50XCIgKGNsaWNrKT1cImdvVG9PbmJvYXJkaW5nKClcIj5BZGljaW9uYXIgdW1hIG5vdmEgY29udGE8L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuIl19
@@ -8,5 +8,20 @@ export class ObjectUtil {
8
8
  static isValid(obj) {
9
9
  return obj !== null && obj !== undefined;
10
10
  }
11
+ static getCodes(obj) {
12
+ if (!obj) {
13
+ return {};
14
+ }
15
+ return Object.keys(obj).reduce((acc, curr) => {
16
+ let value = obj[curr];
17
+ try {
18
+ value = JSON.parse(obj[curr]);
19
+ }
20
+ catch (_) {
21
+ value = obj[curr];
22
+ }
23
+ return { ...acc, [curr]: value?.code || value };
24
+ }, {});
25
+ }
11
26
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNkLE1BQU0sQ0FBQyxhQUFhLENBQUksR0FBVztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVE7UUFDNUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE9iamVjdFV0aWwge1xuICBwdWJsaWMgc3RhdGljIGdldE9iamVjdEtleXM8VD4ob2JqOiBPYmplY3QpOiBBcnJheTxrZXlvZiBUPiB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoKGtleTogc3RyaW5nKSA9PiBrZXkgYXMga2V5b2YgVCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWQob2JqOiBhbnkpIHtcbiAgICByZXR1cm4gb2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNkLE1BQU0sQ0FBQyxhQUFhLENBQUksR0FBVztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVE7UUFDNUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBUTtRQUM3QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUk7Z0JBQ0YsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDL0I7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1lBQ0QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNsRCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgT2JqZWN0VXRpbCB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T2JqZWN0S2V5czxUPihvYmo6IE9iamVjdCk6IEFycmF5PGtleW9mIFQ+IHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcCgoa2V5OiBzdHJpbmcpID0+IGtleSBhcyBrZXlvZiBUKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZChvYmo6IGFueSkge1xuICAgIHJldHVybiBvYmogIT09IG51bGwgJiYgb2JqICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldENvZGVzKG9iajogYW55KTogYW55IHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSBvYmpbY3Vycl07XG4gICAgICB0cnkge1xuICAgICAgICB2YWx1ZSA9IEpTT04ucGFyc2Uob2JqW2N1cnJdKTtcbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgdmFsdWUgPSBvYmpbY3Vycl07XG4gICAgICB9XG4gICAgICByZXR1cm4geyAuLi5hY2MsIFtjdXJyXTogdmFsdWU/LmNvZGUgfHwgdmFsdWUgfTtcbiAgICB9LCB7fSk7XG4gIH1cbn1cbiJdfQ==
@@ -391,6 +391,21 @@ class ObjectUtil {
391
391
  static isValid(obj) {
392
392
  return obj !== null && obj !== undefined;
393
393
  }
394
+ static getCodes(obj) {
395
+ if (!obj) {
396
+ return {};
397
+ }
398
+ return Object.keys(obj).reduce((acc, curr) => {
399
+ let value = obj[curr];
400
+ try {
401
+ value = JSON.parse(obj[curr]);
402
+ }
403
+ catch (_) {
404
+ value = obj[curr];
405
+ }
406
+ return Object.assign(Object.assign({}, acc), { [curr]: (value === null || value === void 0 ? void 0 : value.code) || value });
407
+ }, {});
408
+ }
394
409
  }
395
410
 
396
411
  class StringUtil {
@@ -794,7 +809,7 @@ class BreadcrumbComponent {
794
809
  this.subscription.unsubscribe();
795
810
  }
796
811
  navigateToFragment(fragment) {
797
- this.router.navigate([fragment.route]);
812
+ this.router.navigate([fragment.route], { queryParamsHandling: 'preserve' });
798
813
  }
799
814
  extractRouteFragmentsFromMenu(url, currentChildren) {
800
815
  let foundItem = false;
@@ -1926,6 +1941,7 @@ class DropdownFieldComponent {
1926
1941
  this.minLengthToService = 0;
1927
1942
  this.initialLoad = true;
1928
1943
  this.onFocus = new EventEmitter();
1944
+ this.onChange = new EventEmitter();
1929
1945
  this.pagedSuggestions = [];
1930
1946
  this.unlistenAutocompleteVirtualScroll = () => { };
1931
1947
  this.selectedDynamicFilter = this.dynamicFilters ? this.dynamicFilters[0].code : undefined;
@@ -2070,10 +2086,10 @@ class DropdownFieldComponent {
2070
2086
  }
2071
2087
  }
2072
2088
  DropdownFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DropdownFieldComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2073
- DropdownFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: { options: "options", isRequired: "isRequired", control: "control", label: "label", service: "service", paged: "paged", buttonAction: "buttonAction", dependencies: "dependencies", hiddenErrorMessage: "hiddenErrorMessage", dynamicFilters: "dynamicFilters", minLengthToService: "minLengthToService", initialLoad: "initialLoad" }, outputs: { onFocus: "onFocus" }, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"input-container\">\n <div class=\"input-inner-container\">\n <p-dropdown\n *ngIf=\"dynamicFilters\"\n appendTo=\"body\"\n optionLabel=\"name\"\n optionValue=\"code\"\n [(ngModel)]=\"selectedDynamicFilter\"\n [options]=\"dynamicFilters\"\n >\n </p-dropdown>\n <p-autoComplete\n appendTo=\"body\"\n field=\"name\"\n dataKey=\"code\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [suggestions]=\"pagedSuggestions\"\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n (completeMethod)=\"search($event)\"\n (onShow)=\"onOpenAutocompletePanel()\"\n (onHide)=\"onHideAutocompletePanel()\"\n (onFocus)=\"onFocus.emit($event)\"\n >\n </p-autoComplete>\n </div>\n <vector-button\n *ngIf=\"buttonAction\"\n [label]=\"buttonAction.label\"\n [disabled]=\"!control.value\"\n (onClick)=\"buttonAction.onClick(control.value)\"\n ></vector-button>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n", styles: [".input-container{display:flex;align-items:flex-end;width:100%}@media (max-width: 575px){.input-container{align-items:flex-start;flex-direction:column}}.input-container p-autoComplete{flex:1}@media (max-width: 575px){.input-container p-autoComplete{width:100%}}.input-container vector-button{margin-left:15px}@media (max-width: 575px){.input-container vector-button{margin-left:0;margin-top:10px;width:100%}}.input-container p-dropdown{margin-right:-5px;width:150px}@media (max-width: 575px){.input-container p-dropdown{width:100px}}.input-container .input-inner-container{display:flex;width:100%}\n"], components: [{ type: i1$6.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2$6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2089
+ DropdownFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: { options: "options", isRequired: "isRequired", control: "control", label: "label", service: "service", paged: "paged", buttonAction: "buttonAction", dependencies: "dependencies", hiddenErrorMessage: "hiddenErrorMessage", dynamicFilters: "dynamicFilters", minLengthToService: "minLengthToService", initialLoad: "initialLoad" }, outputs: { onFocus: "onFocus", onChange: "onChange" }, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"input-container\">\n <div class=\"input-inner-container\">\n <p-dropdown\n *ngIf=\"dynamicFilters\"\n appendTo=\"body\"\n optionLabel=\"name\"\n optionValue=\"code\"\n [(ngModel)]=\"selectedDynamicFilter\"\n [options]=\"dynamicFilters\"\n >\n </p-dropdown>\n <p-autoComplete\n appendTo=\"body\"\n field=\"name\"\n dataKey=\"code\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [suggestions]=\"pagedSuggestions\"\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n (completeMethod)=\"search($event)\"\n (onShow)=\"onOpenAutocompletePanel()\"\n (onHide)=\"onHideAutocompletePanel()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onChange)=\"onChange.emit($event)\"\n >\n </p-autoComplete>\n </div>\n <vector-button\n *ngIf=\"buttonAction\"\n [label]=\"buttonAction.label\"\n [disabled]=\"!control.value\"\n (onClick)=\"buttonAction.onClick(control.value)\"\n ></vector-button>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n", styles: [".input-container{display:flex;align-items:flex-end;width:100%}@media (max-width: 575px){.input-container{align-items:flex-start;flex-direction:column}}.input-container p-autoComplete{flex:1}@media (max-width: 575px){.input-container p-autoComplete{width:100%}}.input-container vector-button{margin-left:15px}@media (max-width: 575px){.input-container vector-button{margin-left:0;margin-top:10px;width:100%}}.input-container p-dropdown{margin-right:-5px;width:150px}@media (max-width: 575px){.input-container p-dropdown{width:100px}}.input-container .input-inner-container{display:flex;width:100%}\n"], components: [{ type: i1$6.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2$6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2074
2090
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DropdownFieldComponent, decorators: [{
2075
2091
  type: Component,
2076
- args: [{ selector: 'vector-dropdown-field', template: "<div class=\"relative\">\n <div class=\"input-container\">\n <div class=\"input-inner-container\">\n <p-dropdown\n *ngIf=\"dynamicFilters\"\n appendTo=\"body\"\n optionLabel=\"name\"\n optionValue=\"code\"\n [(ngModel)]=\"selectedDynamicFilter\"\n [options]=\"dynamicFilters\"\n >\n </p-dropdown>\n <p-autoComplete\n appendTo=\"body\"\n field=\"name\"\n dataKey=\"code\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [suggestions]=\"pagedSuggestions\"\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n (completeMethod)=\"search($event)\"\n (onShow)=\"onOpenAutocompletePanel()\"\n (onHide)=\"onHideAutocompletePanel()\"\n (onFocus)=\"onFocus.emit($event)\"\n >\n </p-autoComplete>\n </div>\n <vector-button\n *ngIf=\"buttonAction\"\n [label]=\"buttonAction.label\"\n [disabled]=\"!control.value\"\n (onClick)=\"buttonAction.onClick(control.value)\"\n ></vector-button>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n", styles: [".input-container{display:flex;align-items:flex-end;width:100%}@media (max-width: 575px){.input-container{align-items:flex-start;flex-direction:column}}.input-container p-autoComplete{flex:1}@media (max-width: 575px){.input-container p-autoComplete{width:100%}}.input-container vector-button{margin-left:15px}@media (max-width: 575px){.input-container vector-button{margin-left:0;margin-top:10px;width:100%}}.input-container p-dropdown{margin-right:-5px;width:150px}@media (max-width: 575px){.input-container p-dropdown{width:100px}}.input-container .input-inner-container{display:flex;width:100%}\n"] }]
2092
+ args: [{ selector: 'vector-dropdown-field', template: "<div class=\"relative\">\n <div class=\"input-container\">\n <div class=\"input-inner-container\">\n <p-dropdown\n *ngIf=\"dynamicFilters\"\n appendTo=\"body\"\n optionLabel=\"name\"\n optionValue=\"code\"\n [(ngModel)]=\"selectedDynamicFilter\"\n [options]=\"dynamicFilters\"\n >\n </p-dropdown>\n <p-autoComplete\n appendTo=\"body\"\n field=\"name\"\n dataKey=\"code\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [suggestions]=\"pagedSuggestions\"\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n (completeMethod)=\"search($event)\"\n (onShow)=\"onOpenAutocompletePanel()\"\n (onHide)=\"onHideAutocompletePanel()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onChange)=\"onChange.emit($event)\"\n >\n </p-autoComplete>\n </div>\n <vector-button\n *ngIf=\"buttonAction\"\n [label]=\"buttonAction.label\"\n [disabled]=\"!control.value\"\n (onClick)=\"buttonAction.onClick(control.value)\"\n ></vector-button>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n", styles: [".input-container{display:flex;align-items:flex-end;width:100%}@media (max-width: 575px){.input-container{align-items:flex-start;flex-direction:column}}.input-container p-autoComplete{flex:1}@media (max-width: 575px){.input-container p-autoComplete{width:100%}}.input-container vector-button{margin-left:15px}@media (max-width: 575px){.input-container vector-button{margin-left:0;margin-top:10px;width:100%}}.input-container p-dropdown{margin-right:-5px;width:150px}@media (max-width: 575px){.input-container p-dropdown{width:100px}}.input-container .input-inner-container{display:flex;width:100%}\n"] }]
2077
2093
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { options: [{
2078
2094
  type: Input
2079
2095
  }], isRequired: [{
@@ -2100,6 +2116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2100
2116
  type: Input
2101
2117
  }], onFocus: [{
2102
2118
  type: Output
2119
+ }], onChange: [{
2120
+ type: Output
2103
2121
  }] } });
2104
2122
 
2105
2123
  class SelectButtonFieldComponent {
@@ -2128,6 +2146,7 @@ var FieldType;
2128
2146
  FieldType[FieldType["DYNAMIC_DROPDOWN"] = 5] = "DYNAMIC_DROPDOWN";
2129
2147
  FieldType[FieldType["SELECT_BUTTON"] = 6] = "SELECT_BUTTON";
2130
2148
  FieldType[FieldType["DATE_RANGE"] = 7] = "DATE_RANGE";
2149
+ FieldType[FieldType["MULTISELECT"] = 8] = "MULTISELECT";
2131
2150
  })(FieldType || (FieldType = {}));
2132
2151
  class FiltersComponent {
2133
2152
  constructor(activatedRoute) {
@@ -2163,10 +2182,6 @@ class FiltersComponent {
2163
2182
  this.formGroup.addControl(field.name, new FormControl({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field)));
2164
2183
  }
2165
2184
  });
2166
- const queryParams = this.activatedRoute.snapshot.queryParams;
2167
- if (Object.keys(queryParams).length) {
2168
- this.formGroup.patchValue(queryParams);
2169
- }
2170
2185
  (_b = this.fields) === null || _b === void 0 ? void 0 : _b.filter((field) => field.dependencies).forEach((field) => {
2171
2186
  var _a;
2172
2187
  (_a = field.dependencies) === null || _a === void 0 ? void 0 : _a.forEach((dependency) => {
@@ -2182,9 +2197,7 @@ class FiltersComponent {
2182
2197
  }
2183
2198
  this.formBuilded.emit();
2184
2199
  this.fieldsSubscription.add(this.activatedRoute.queryParams.subscribe((queryParams) => {
2185
- if (Object.keys(queryParams).length) {
2186
- this.formGroup.patchValue(queryParams);
2187
- }
2200
+ this.patchFormFromQueryParams(Object.assign({}, queryParams));
2188
2201
  }));
2189
2202
  }
2190
2203
  get fields() {
@@ -2247,6 +2260,27 @@ class FiltersComponent {
2247
2260
  return 'md:col-4';
2248
2261
  }
2249
2262
  }
2263
+ patchFormFromQueryParams(queryParams) {
2264
+ if (Object.keys(queryParams).length) {
2265
+ this.fields.forEach((field) => {
2266
+ if (queryParams.hasOwnProperty(field.name)) {
2267
+ queryParams[field.name] = queryParams[field.name]
2268
+ ? JSON.parse(queryParams[field.name])
2269
+ : queryParams[field.name];
2270
+ if (field.type === FieldType.DATE_RANGE) {
2271
+ queryParams[field.name] = {
2272
+ startDate: queryParams[field.name].startDate ? new Date(queryParams[field.name].startDate) : undefined,
2273
+ endDate: queryParams[field.name].endDate ? new Date(queryParams[field.name].endDate) : undefined,
2274
+ };
2275
+ }
2276
+ if (field.type === FieldType.DATE) {
2277
+ queryParams[field.name] = queryParams[field.name] ? new Date(queryParams[field.name]) : undefined;
2278
+ }
2279
+ }
2280
+ });
2281
+ this.formGroup.patchValue(queryParams);
2282
+ }
2283
+ }
2250
2284
  buildValidators(field) {
2251
2285
  const validators = [];
2252
2286
  if (field.required) {
@@ -2268,10 +2302,10 @@ class FiltersComponent {
2268
2302
  }
2269
2303
  }
2270
2304
  FiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, deps: [{ token: i2$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
2271
- FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label>{{ field.label }}</label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"field.type === fieldTypes.DROPDOWN || field.type === fieldTypes.DYNAMIC_DROPDOWN\"\n [dynamicFilters]=\"field.filterTypes\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"!!field.defaultValue\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n </div>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n label=\"Pesquisar\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n style=\"float: right; width: 150px\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], components: [{ type: TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "decimal", "onlyText", "alphaNumeric", "mask", "autoClear", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "control"], outputs: ["blurEvent", "enterKeyPress", "focusEvent", "onDocumentTypeChange"] }, { type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad"], outputs: ["onFocus"] }, { type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "disabled"] }, { type: CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage"] }, { type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "notHidden": NotHiddenPipe } });
2305
+ FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label>{{ field.label }}</label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\n [dynamicFilters]=\"field.filterTypes\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"!!field.defaultValue\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n </div>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n label=\"Pesquisar\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n style=\"float: right; width: 150px\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], components: [{ type: TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "decimal", "onlyText", "alphaNumeric", "mask", "autoClear", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "control"], outputs: ["blurEvent", "enterKeyPress", "focusEvent", "onDocumentTypeChange"] }, { type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad"], outputs: ["onFocus", "onChange"] }, { type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "disabled"] }, { type: CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage"] }, { type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "notHidden": NotHiddenPipe } });
2272
2306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, decorators: [{
2273
2307
  type: Component,
2274
- args: [{ selector: 'vector-filters', template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label>{{ field.label }}</label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"field.type === fieldTypes.DROPDOWN || field.type === fieldTypes.DYNAMIC_DROPDOWN\"\n [dynamicFilters]=\"field.filterTypes\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"!!field.defaultValue\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n </div>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n label=\"Pesquisar\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n style=\"float: right; width: 150px\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"] }]
2308
+ args: [{ selector: 'vector-filters', template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label>{{ field.label }}</label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\n [dynamicFilters]=\"field.filterTypes\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"!!field.defaultValue\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n ></vector-calendar-field>\n </div>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n label=\"Pesquisar\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n style=\"float: right; width: 150px\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"] }]
2275
2309
  }], ctorParameters: function () { return [{ type: i2$1.ActivatedRoute }]; }, propDecorators: { fields: [{
2276
2310
  type: Input
2277
2311
  }], onSearch: [{
@@ -3627,12 +3661,15 @@ class TopBarComponent {
3627
3661
  goToTariff() {
3628
3662
  this.router.navigate(['fintech/under-construction']);
3629
3663
  }
3664
+ goToOnboarding() {
3665
+ this.router.navigate(['onboarding']);
3666
+ }
3630
3667
  }
3631
3668
  TopBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, deps: [{ token: MenuService }, { token: AuthService }, { token: i2$1.Router }, { token: ProfileService }], target: i0.ɵɵFactoryTarget.Component });
3632
- TopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService" }, 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 *ngIf=\"otherAccounts?.length\">\n <span class=\"separator\"></span>\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\n <span>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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"], components: [{ type: i4$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3669
+ TopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService" }, 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 *ngIf=\"otherAccounts?.length\">\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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding()\">Adicionar uma nova conta</p>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");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}}\n"], components: [{ type: i4$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3633
3670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, decorators: [{
3634
3671
  type: Component,
3635
- 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 *ngIf=\"otherAccounts?.length\">\n <span class=\"separator\"></span>\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\n <span>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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"] }]
3672
+ 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 *ngIf=\"otherAccounts?.length\">\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 <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\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 <ul class=\"user-menu\">\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 #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 *ngIf=\"fintech\" (click)=\"goToTariff()\">\n <span class=\"tariffs user-menu-icon\"></span>\n <span>Tarifas</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?.documentFormatted }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding()\">Adicionar uma nova conta</p>\n </div>\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,%3Csvg width%3D%2221%22 height%3D%2214%22 viewBox%3D%220 0 21 14%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M0 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%22 fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\");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 .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}.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,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.687%22 height%3D%2217.686%22 viewBox%3D%220 0 17.687 17.686%22%3E %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E %3Cg id%3D%22exit-to-app%22%3E %3Cpath id%3D%22Caminho_706%22 data-name%3D%22Caminho 706%22 d%3D%22M1628.279%2C320.831l1.375%2C1.375%2C4.914-4.912-4.914-4.913-1.375%2C1.375%2C2.554%2C2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971%2C1.971%2C0%2C0%2C0-1.965%2C1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971%2C1.971%2C0%2C0%2C0%2C1.965%2C1.965h13.757a1.971%2C1.971%2C0%2C0%2C0%2C1.965-1.965V310.415A1.971%2C1.971%2C0%2C0%2C0%2C1637.024%2C308.45Z%22 transform%3D%22translate(-1633.459 -308.45)%22 fill%3D%22%23fff%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");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}}\n"] }]
3636
3673
  }], ctorParameters: function () { return [{ type: MenuService }, { type: AuthService }, { type: i2$1.Router }, { type: ProfileService }]; }, propDecorators: { fintech: [{
3637
3674
  type: Input
3638
3675
  }], accountService: [{