ngx-sp-auth 1.0.5 → 2.1.6

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.
Files changed (64) hide show
  1. package/README.md +207 -24
  2. package/fesm2022/ngx-sp-auth.mjs +381 -409
  3. package/fesm2022/ngx-sp-auth.mjs.map +1 -1
  4. package/lib/auth.module.d.ts +8 -15
  5. package/lib/components/menu-lateral/dropdown/primary-dropdown/primary-dropdown.component.d.ts +1 -1
  6. package/lib/components/menu-lateral/dropdown/secondary-dropdown/secondary-dropdown.component.d.ts +1 -1
  7. package/lib/components/menu-lateral/menu/menu-lateral.component.d.ts +13 -13
  8. package/lib/components/menu-lateral/menu/selecao-estabelecimentos-modal/selecao-estabelecimentos-modal.component.d.ts +1 -1
  9. package/lib/components/menu-lateral/submenus/dynamic-menu/dynamic-menu.component.d.ts +1 -1
  10. package/lib/components/menu-lateral/submenus/notif-submenu/notif-submenu.component.d.ts +1 -1
  11. package/lib/components/nova-senha/nova-senhacomponent.d.ts +1 -1
  12. package/package.json +2 -4
  13. package/esm2022/lib/auth.module.mjs +0 -87
  14. package/esm2022/lib/auth.service.mjs +0 -306
  15. package/esm2022/lib/components/login/login.component.mjs +0 -323
  16. package/esm2022/lib/components/menu-lateral/dropdown/primary-dropdown/primary-dropdown.component.mjs +0 -67
  17. package/esm2022/lib/components/menu-lateral/dropdown/secondary-dropdown/secondary-dropdown.component.mjs +0 -32
  18. package/esm2022/lib/components/menu-lateral/menu/list-estab.service.mjs +0 -55
  19. package/esm2022/lib/components/menu-lateral/menu/menu-lateral.component.mjs +0 -233
  20. package/esm2022/lib/components/menu-lateral/menu/selecao-estabelecimentos-modal/selecao-estabelecimentos-modal.component.mjs +0 -200
  21. package/esm2022/lib/components/menu-lateral/menu-services.service.mjs +0 -151
  22. package/esm2022/lib/components/menu-lateral/model/iestabelecimento.model.mjs +0 -2
  23. package/esm2022/lib/components/menu-lateral/model/imenu-item-structure.model.mjs +0 -2
  24. package/esm2022/lib/components/menu-lateral/model/imenu.model.mjs +0 -12
  25. package/esm2022/lib/components/menu-lateral/model/infrausuarioimg.mjs +0 -12
  26. package/esm2022/lib/components/menu-lateral/model/isubmenu-item-structure.model.mjs +0 -2
  27. package/esm2022/lib/components/menu-lateral/model/ret-estabelecimento-session.mjs +0 -10
  28. package/esm2022/lib/components/menu-lateral/model/ret-infrausuarioemail.mjs +0 -8
  29. package/esm2022/lib/components/menu-lateral/model/ret-infrausuarioimg.mjs +0 -11
  30. package/esm2022/lib/components/menu-lateral/model/usuario-img.mjs +0 -8
  31. package/esm2022/lib/components/menu-lateral/submenus/dynamic-menu/dynamic-menu.component.mjs +0 -54
  32. package/esm2022/lib/components/menu-lateral/submenus/notif-submenu/notif-submenu.component.mjs +0 -14
  33. package/esm2022/lib/components/nova-senha/nova-senhacomponent.mjs +0 -191
  34. package/esm2022/lib/custom/custom-login.service.mjs +0 -52
  35. package/esm2022/lib/custom/custom-menu.service.mjs +0 -88
  36. package/esm2022/lib/custom/custom-storage.service.mjs +0 -70
  37. package/esm2022/lib/custom/menu-config.service.mjs +0 -70
  38. package/esm2022/lib/custom/models/icustom-login-service.mjs +0 -2
  39. package/esm2022/lib/custom/models/icustom-menu-service.mjs +0 -2
  40. package/esm2022/lib/custom/models/icustom-storage-service.mjs +0 -2
  41. package/esm2022/lib/custom/models/imenu-config.mjs +0 -2
  42. package/esm2022/lib/environments/environments.service.mjs +0 -21
  43. package/esm2022/lib/environments/models/ienvironments.mjs +0 -2
  44. package/esm2022/lib/guards/auth-guard.mjs +0 -34
  45. package/esm2022/lib/guards/external-login-guard.mjs +0 -88
  46. package/esm2022/lib/guards/login-guard.mjs +0 -35
  47. package/esm2022/lib/interceptors/auth-aplic.interceptor.mjs +0 -41
  48. package/esm2022/lib/interceptors/auth-infra.interceptor.mjs +0 -30
  49. package/esm2022/lib/models/code-2fa.mjs +0 -2
  50. package/esm2022/lib/models/custom-propriedades-login.mjs +0 -3
  51. package/esm2022/lib/models/forgotten-password-form.mjs +0 -2
  52. package/esm2022/lib/models/login-form.mjs +0 -2
  53. package/esm2022/lib/models/login.mjs +0 -2
  54. package/esm2022/lib/models/nova-senha-form.mjs +0 -2
  55. package/esm2022/lib/models/password-recup.mjs +0 -2
  56. package/esm2022/lib/models/payload.mjs +0 -2
  57. package/esm2022/lib/models/ret-login.mjs +0 -21
  58. package/esm2022/lib/models/ret-token.mjs +0 -8
  59. package/esm2022/lib/models/token.mjs +0 -2
  60. package/esm2022/lib/server/ret-server-config.mjs +0 -9
  61. package/esm2022/lib/server/server.service.mjs +0 -38
  62. package/esm2022/lib/storage/auth-storage.service.mjs +0 -365
  63. package/esm2022/ngx-sp-auth.mjs +0 -5
  64. package/esm2022/public-api.mjs +0 -39
@@ -1,54 +0,0 @@
1
- import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- import * as i2 from "@angular/common";
5
- export class DynamicMenuComponent {
6
- constructor(router) {
7
- this.router = router;
8
- this.selectTemplate = new EventEmitter;
9
- this.titleSubmenu = "";
10
- this.submenuList = [];
11
- this.menuList = [];
12
- this.menuStatic = [];
13
- this.selectedMenuItem = [];
14
- this.selectedItem = -1;
15
- }
16
- ngOnInit() { }
17
- onClickedOutside(e, ref) {
18
- ref.classList.remove("opened-sub");
19
- this.submenuList = [];
20
- this.indicateSelectedMenuItem();
21
- }
22
- indicateSelectedMenuItem() {
23
- if (this.selectedMenuItem.length) {
24
- this.selectedItem = this.selectedMenuItem[0];
25
- }
26
- }
27
- changeStar(ref, id) {
28
- ref.classList.toggle("star");
29
- ref.classList.toggle("yellow-star");
30
- }
31
- getExternalUrl(url) {
32
- return `https://siscandesv6.sispro.com.br/SisproErpCloud/${url}`;
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicMenuComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicMenuComponent, selector: "app-dynamic-menu", inputs: { submenuRef: "submenuRef", recebeParam: "recebeParam", titleSubmenu: "titleSubmenu", submenuList: "submenuList" }, outputs: { selectTemplate: "selectTemplate" }, queries: [{ propertyName: "desiredContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div #submenu class=\"header-submenu\">\r\n <h1 class=\"titulo pb-3 pt-4\">{{ titleSubmenu }}</h1>\r\n <div class=\"itens-list\">\r\n <ul style=\"width: 100%\">\r\n \r\n <li *ngFor=\"let itemList of submenuList; let i = index\" [id]=\"itemList!.id\" \r\n class=\"d-flex justify-content-between align-items-center\"\r\n [class]=\"i == 0 ? 'mt-1' : ''\">\r\n \r\n <a *ngIf=\"!itemList.isExternal; else externalMenu\"\r\n [routerLink]=\"itemList!.route != null ? ['/' + itemList!.route] : null\" \r\n (click)=\"recebeParam($event, submenuRef)\">\r\n <span>{{ itemList!.label }}</span>\r\n </a>\r\n \r\n <ng-template #externalMenu>\r\n <a [href]=\"getExternalUrl(itemList.route)\"\r\n target=\"_blank\" \r\n (click)=\"recebeParam($event, submenuRef)\">\r\n <span>{{ itemList!.label }}</span>\r\n </a>\r\n </ng-template>\r\n\r\n <!-- <button class=\"star favoritos\" #star (click)=\"changeStar(star, itemList)\"></button> -->\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n</div>", styles: ["*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;color:#fff}ul{list-style:none;padding-left:0;display:inline;white-space:nowrap}.titulo{font-size:20px;font-weight:700;display:flex;justify-content:center;border-bottom:1px solid #2847a0}ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}ul li{font-size:16px;padding-bottom:18px}ul li span:hover{font-weight:700}a{text-decoration:none}.itens-list{display:flex;align-items:center}.itens-list .favoritos,.itens-list span{cursor:pointer}.footer-menu{display:flex;flex-direction:column;justify-content:center;padding-bottom:16px}.footer-menu .footer-components{border-top:1px solid #3265ee;padding-top:16px;padding-left:17px;white-space:nowrap}.footer-menu button{position:relative;left:35%;border:none;background-color:transparent}.footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0 15px 0 0}.footer-components{display:flex;justify-content:center;align-items:center}button{position:relative;border:none;background-color:transparent}.photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu.opened-sub{z-index:1;display:flex;position:absolute;left:100%;height:100vh;justify-content:space-between}.submenu-footer{display:flex;flex-direction:row;justify-content:center;align-content:center;margin-bottom:14px;border-top:1px solid #2847a0}.submenu-footer .subfooter-components{padding-top:16px}.submenu-footer span{font-weight:700;padding-left:10px}.star{width:24px;height:24px;background-repeat:no-repeat}.yellow-star{width:26px;height:24px;background-repeat:no-repeat}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicMenuComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'app-dynamic-menu', template: "<div #submenu class=\"header-submenu\">\r\n <h1 class=\"titulo pb-3 pt-4\">{{ titleSubmenu }}</h1>\r\n <div class=\"itens-list\">\r\n <ul style=\"width: 100%\">\r\n \r\n <li *ngFor=\"let itemList of submenuList; let i = index\" [id]=\"itemList!.id\" \r\n class=\"d-flex justify-content-between align-items-center\"\r\n [class]=\"i == 0 ? 'mt-1' : ''\">\r\n \r\n <a *ngIf=\"!itemList.isExternal; else externalMenu\"\r\n [routerLink]=\"itemList!.route != null ? ['/' + itemList!.route] : null\" \r\n (click)=\"recebeParam($event, submenuRef)\">\r\n <span>{{ itemList!.label }}</span>\r\n </a>\r\n \r\n <ng-template #externalMenu>\r\n <a [href]=\"getExternalUrl(itemList.route)\"\r\n target=\"_blank\" \r\n (click)=\"recebeParam($event, submenuRef)\">\r\n <span>{{ itemList!.label }}</span>\r\n </a>\r\n </ng-template>\r\n\r\n <!-- <button class=\"star favoritos\" #star (click)=\"changeStar(star, itemList)\"></button> -->\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n</div>", styles: ["*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;color:#fff}ul{list-style:none;padding-left:0;display:inline;white-space:nowrap}.titulo{font-size:20px;font-weight:700;display:flex;justify-content:center;border-bottom:1px solid #2847a0}ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}ul li{font-size:16px;padding-bottom:18px}ul li span:hover{font-weight:700}a{text-decoration:none}.itens-list{display:flex;align-items:center}.itens-list .favoritos,.itens-list span{cursor:pointer}.footer-menu{display:flex;flex-direction:column;justify-content:center;padding-bottom:16px}.footer-menu .footer-components{border-top:1px solid #3265ee;padding-top:16px;padding-left:17px;white-space:nowrap}.footer-menu button{position:relative;left:35%;border:none;background-color:transparent}.footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0 15px 0 0}.footer-components{display:flex;justify-content:center;align-items:center}button{position:relative;border:none;background-color:transparent}.photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu.opened-sub{z-index:1;display:flex;position:absolute;left:100%;height:100vh;justify-content:space-between}.submenu-footer{display:flex;flex-direction:row;justify-content:center;align-content:center;margin-bottom:14px;border-top:1px solid #2847a0}.submenu-footer .subfooter-components{padding-top:16px}.submenu-footer span{font-weight:700;padding-left:10px}.star{width:24px;height:24px;background-repeat:no-repeat}.yellow-star{width:26px;height:24px;background-repeat:no-repeat}\n"] }]
40
- }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { selectTemplate: [{
41
- type: Output
42
- }], submenuRef: [{
43
- type: Input
44
- }], recebeParam: [{
45
- type: Input
46
- }], titleSubmenu: [{
47
- type: Input
48
- }], submenuList: [{
49
- type: Input
50
- }], desiredContent: [{
51
- type: ContentChild,
52
- args: [TemplateRef]
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWxhdGVyYWwvc3VibWVudXMvZHluYW1pYy1tZW51L2R5bmFtaWMtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvbWVudS1sYXRlcmFsL3N1Ym1lbnVzL2R5bmFtaWMtbWVudS9keW5hbWljLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTFHLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBcEJ2QixtQkFBYyxHQUFzQixJQUFJLFlBQVksQ0FBQztRQU10RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUEwQixFQUFFLENBQUM7UUFFakQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUF5QixFQUFFLENBQUM7UUFFdEMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRWhDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDLENBQUM7SUFNdEIsQ0FBQztJQUVMLFFBQVEsS0FBVyxDQUFDO0lBRXBCLGdCQUFnQixDQUFDLENBQVEsRUFBRSxHQUFtQjtRQUM1QyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXNCLEVBQUUsRUFBa0M7UUFDbkUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLE9BQU8sb0RBQW9ELEdBQUcsRUFBRSxDQUFDO0lBQ25FLENBQUM7K0dBL0NVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtRQW9CakIsV0FBVyxnREM5QjNCLDBtQ0E0Qk07OzRGRGxCTyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCOzJFQU9sQixjQUFjO3NCQUF2QixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBVXFCLGNBQWM7c0JBQXhDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSU1lbnVJdGVtU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vbW9kZWwvaW1lbnUtaXRlbS1zdHJ1Y3R1cmUubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RUZW1wbGF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyO1xyXG5cclxuICBASW5wdXQoKSBzdWJtZW51UmVmITogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIHJlY2ViZVBhcmFtITogRnVuY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlU3VibWVudSA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpIHN1Ym1lbnVMaXN0PzogSU1lbnVJdGVtU3RydWN0dXJlW10gPSBbXTtcclxuXHJcbiAgbWVudUxpc3Q6IElNZW51SXRlbVN0cnVjdHVyZVtdID0gW107XHJcblxyXG4gIG1lbnVTdGF0aWM6IElNZW51SXRlbVN0cnVjdHVyZVtdID0gW107XHJcblxyXG4gIHNlbGVjdGVkTWVudUl0ZW06IG51bWJlcltdID0gW107XHJcblxyXG4gIHNlbGVjdGVkSXRlbTogbnVtYmVyID0gLTE7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIGRlc2lyZWRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLFxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxyXG5cclxuICBvbkNsaWNrZWRPdXRzaWRlKGU6IEV2ZW50LCByZWY6IEhUTUxEaXZFbGVtZW50KSB7XHJcbiAgICByZWYuY2xhc3NMaXN0LnJlbW92ZShcIm9wZW5lZC1zdWJcIik7XHJcbiAgICB0aGlzLnN1Ym1lbnVMaXN0ID0gW107XHJcbiAgICB0aGlzLmluZGljYXRlU2VsZWN0ZWRNZW51SXRlbSgpO1xyXG4gIH1cclxuXHJcbiAgaW5kaWNhdGVTZWxlY3RlZE1lbnVJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNZW51SXRlbS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkTWVudUl0ZW1bMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTdGFyKHJlZjogSFRNTEJ1dHRvbkVsZW1lbnQsIGlkOiBJTWVudUl0ZW1TdHJ1Y3R1cmUgfCB1bmRlZmluZWQpIHtcclxuICAgIHJlZi5jbGFzc0xpc3QudG9nZ2xlKFwic3RhclwiKTtcclxuICAgIHJlZi5jbGFzc0xpc3QudG9nZ2xlKFwieWVsbG93LXN0YXJcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9zaXNjYW5kZXN2Ni5zaXNwcm8uY29tLmJyL1Npc3Byb0VycENsb3VkLyR7dXJsfWA7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNzdWJtZW51IGNsYXNzPVwiaGVhZGVyLXN1Ym1lbnVcIj5cclxuICA8aDEgY2xhc3M9XCJ0aXR1bG8gcGItMyBwdC00XCI+e3sgdGl0bGVTdWJtZW51IH19PC9oMT5cclxuICA8ZGl2IGNsYXNzPVwiaXRlbnMtbGlzdFwiPlxyXG4gICAgPHVsIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICBcclxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtTGlzdCBvZiBzdWJtZW51TGlzdDsgbGV0IGkgPSBpbmRleFwiIFtpZF09XCJpdGVtTGlzdCEuaWRcIiBcclxuICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgIFtjbGFzc109XCJpID09IDAgPyAnbXQtMScgOiAnJ1wiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPGEgKm5nSWY9XCIhaXRlbUxpc3QuaXNFeHRlcm5hbDsgZWxzZSBleHRlcm5hbE1lbnVcIlxyXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbUxpc3QhLnJvdXRlICE9IG51bGwgPyBbJy8nICsgaXRlbUxpc3QhLnJvdXRlXSA6IG51bGxcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZWNlYmVQYXJhbSgkZXZlbnQsIHN1Ym1lbnVSZWYpXCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyBpdGVtTGlzdCEubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXh0ZXJuYWxNZW51PlxyXG4gICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0RXh0ZXJuYWxVcmwoaXRlbUxpc3Qucm91dGUpXCJcclxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCIgXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWNlYmVQYXJhbSgkZXZlbnQsIHN1Ym1lbnVSZWYpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW1MaXN0IS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJzdGFyIGZhdm9yaXRvc1wiICNzdGFyIChjbGljayk9XCJjaGFuZ2VTdGFyKHN0YXIsIGl0ZW1MaXN0KVwiPjwvYnV0dG9uPiAtLT5cclxuICAgICAgPC9saT5cclxuXHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,14 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NotifSubmenuComponent {
4
- constructor() { }
5
- ngOnInit() {
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotifSubmenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotifSubmenuComponent, selector: "app-notif-submenu", ngImport: i0, template: "<div class=\"header-submenu\">\r\n <h1 class=\"titulo pb-3 pt-4\">Notifica\u00E7\u00F5es</h1>\r\n</div>\r\n<div class=\"body-notif\">\r\n <div class=\"new-notif\">\r\n <div class=\"session-header p-2\">\r\n <p class=\"session-h-item\">Novas (2)</p><p>Marcar todas como Lidas</p>\r\n </div>\r\n <div class=\"scroll\">\r\n <div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"read-notif\">\r\n <div class=\"session-header p-2\">\r\n <p class=\"session-h-item\">Lidas</p>\r\n </div>\r\n <div class=\"scroll-second\">\r\n <div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has\r\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;color:#fff}ul{list-style:none;padding-left:0;display:inline;white-space:nowrap}::-webkit-scrollbar{width:4px;background:transparent}::-webkit-scrollbar-thumb{background:#fff;border-radius:16px}.titulo{font-size:20px;font-weight:700;display:flex;justify-content:center;border-bottom:1px solid #2847a0}ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}ul li{font-size:20px;font-weight:600;line-height:22px;padding-bottom:18px}button{position:relative;border:none;background-color:transparent}.session-header{display:flex;justify-content:space-between;background-color:#2847a0}.session-header .session-h-item{font-weight:700}.session{border-bottom:1px solid #fff;overflow:auto;height:100%}.session:last-child{border-bottom:none}.session-start{display:flex}.item-end{display:flex;justify-content:space-between}.scroll{margin-right:2px;overflow:auto;max-height:300px}.scroll-second{margin-right:2px;overflow:auto;max-height:481px}\n"] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotifSubmenuComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: 'app-notif-submenu', template: "<div class=\"header-submenu\">\r\n <h1 class=\"titulo pb-3 pt-4\">Notifica\u00E7\u00F5es</h1>\r\n</div>\r\n<div class=\"body-notif\">\r\n <div class=\"new-notif\">\r\n <div class=\"session-header p-2\">\r\n <p class=\"session-h-item\">Novas (2)</p><p>Marcar todas como Lidas</p>\r\n </div>\r\n <div class=\"scroll\">\r\n <div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"read-notif\">\r\n <div class=\"session-header p-2\">\r\n <p class=\"session-h-item\">Lidas</p>\r\n </div>\r\n <div class=\"scroll-second\">\r\n <div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has\r\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n <div class=\"session mb-3 pb-3\">\r\n <div class=\"session-start mt-3 ms-3\">\r\n <img src=\"assets/icons/file-text.svg\" alt=\"\"><p>Contratos</p>\r\n </div>\r\n <div class=\"m-4\">\r\n <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has </p>\r\n </div>\r\n <div class=\"item-end ms-4 mx-4\">\r\n <button>Marcar como lida</button>\r\n <p>2h atr\u00E1s</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;color:#fff}ul{list-style:none;padding-left:0;display:inline;white-space:nowrap}::-webkit-scrollbar{width:4px;background:transparent}::-webkit-scrollbar-thumb{background:#fff;border-radius:16px}.titulo{font-size:20px;font-weight:700;display:flex;justify-content:center;border-bottom:1px solid #2847a0}ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}ul li{font-size:20px;font-weight:600;line-height:22px;padding-bottom:18px}button{position:relative;border:none;background-color:transparent}.session-header{display:flex;justify-content:space-between;background-color:#2847a0}.session-header .session-h-item{font-weight:700}.session{border-bottom:1px solid #fff;overflow:auto;height:100%}.session:last-child{border-bottom:none}.session-start{display:flex}.item-end{display:flex;justify-content:space-between}.scroll{margin-right:2px;overflow:auto;max-height:300px}.scroll-second{margin-right:2px;overflow:auto;max-height:481px}\n"] }]
13
- }], ctorParameters: () => [] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWYtc3VibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvbWVudS1sYXRlcmFsL3N1Ym1lbnVzL25vdGlmLXN1Ym1lbnUvbm90aWYtc3VibWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvbWVudS1sYXRlcmFsL3N1Ym1lbnVzL25vdGlmLXN1Ym1lbnUvbm90aWYtc3VibWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQU9sRCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFFUixDQUFDOytHQU5VLHFCQUFxQjttR0FBckIscUJBQXFCLHlEQ1BsQyxxc1NBb0xBOzs0RkQ3S2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1ub3RpZi1zdWJtZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWYtc3VibWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWYtc3VibWVudS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZTdWJtZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyLXN1Ym1lbnVcIj5cclxuICAgIDxoMSBjbGFzcz1cInRpdHVsbyBwYi0zIHB0LTRcIj5Ob3RpZmljYcOnw7VlczwvaDE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiYm9keS1ub3RpZlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5ldy1ub3RpZlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXNzaW9uLWhlYWRlciBwLTJcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJzZXNzaW9uLWgtaXRlbVwiPk5vdmFzICgyKTwvcD48cD5NYXJjYXIgdG9kYXMgY29tbyBMaWRhczwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInJlYWQtbm90aWZcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1oZWFkZXIgcC0yXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2Vzc2lvbi1oLWl0ZW1cIj5MaWRhczwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLXNlY29uZFwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlc3Npb24gbWItMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlc3Npb24tc3RhcnQgbXQtMyBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2ZpbGUtdGV4dC5zdmdcIiBhbHQ9XCJcIj48cD5Db250cmF0b3M8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5Mb3JlbSBJcHN1bSBpcyBzaW1wbHkgZHVtbXkgdGV4dCBvZiB0aGUgcHJpbnRpbmcgYW5kIHR5cGVzZXR0aW5nIGluZHVzdHJ5LiBMb3JlbSBJcHN1bSBoYXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbiBtYi0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbi1zdGFydCBtdC0zIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS10ZXh0LnN2Z1wiIGFsdD1cIlwiPjxwPkNvbnRyYXRvczwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZW5kIG1zLTQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPk1hcmNhciBjb21vIGxpZGE8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MmggYXRyw6FzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,191 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { FormGroup, Validators } from '@angular/forms';
3
- import { FormUtils } from 'ngx-sp-infra';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "ngx-sp-infra";
7
- import * as i3 from "../../server/server.service";
8
- import * as i4 from "../../auth.service";
9
- import * as i5 from "../../storage/auth-storage.service";
10
- import * as i6 from "@angular/platform-browser";
11
- import * as i7 from "@angular/router";
12
- export class NovaSenhaComponent {
13
- constructor(_formBuilder, _messageService, _serverService, _authService, _authStorageService, _title, _router, _route) {
14
- this._formBuilder = _formBuilder;
15
- this._messageService = _messageService;
16
- this._serverService = _serverService;
17
- this._authService = _authService;
18
- this._authStorageService = _authStorageService;
19
- this._title = _title;
20
- this._router = _router;
21
- this._route = _route;
22
- // #region ==========> PROPERTIES <==========
23
- // #region PRIVATE
24
- this.domain = "";
25
- this.user = "";
26
- this.createPassword = false;
27
- this.esqueceuSenhaText = "Enviamos um código para o seu e-mail.<br>Insira-o abaixo para redefinir sua senha.";
28
- this.primeiroAcessoText = "Este é o seu primeiro acesso. Por favor,<br>Insira abaixo o código enviado pare seu<br>e-mail para definir sua senha.";
29
- this.senhaExpiradaText = "Sua senha expirou e precisa ser atualizada.<br>Enviamos um código para o seu e-mail.<br>Insira-o abaixo para definir sua senha.";
30
- this.cadeadoImg = 'assets/imgs/Property1-cadeado.png';
31
- this.maoImg = 'assets/imgs/Property1-mao.png';
32
- this.calendarioImg = 'assets/imgs/Property1-calendariofino.png';
33
- // #region PRIVATE
34
- // #region PUBLIC
35
- // #region ==========> FORM BUILDER <==========
36
- this.form = new FormGroup({});
37
- this.passwordLabel = "";
38
- this.statusSenha = 0;
39
- }
40
- ngOnInit() {
41
- this._title.setTitle("Nova Senha");
42
- this.createForm();
43
- this.getParmsFromRoute();
44
- this.form.get('password')?.disable();
45
- this.form.get('confirmPassword')?.disable();
46
- this.form.get('code')?.setValue('');
47
- this.form.get('code')?.valueChanges.subscribe(value => {
48
- if (value && value.length === 6) {
49
- this.form.get('password')?.enable();
50
- this.form.get('confirmPassword')?.enable();
51
- }
52
- else {
53
- this.form.get('password')?.disable();
54
- this.form.get('confirmPassword')?.disable();
55
- }
56
- });
57
- }
58
- // Propriedade necessário para que a classe static FormUtils possa ser utilizada no Html
59
- get FormUtils() {
60
- return FormUtils;
61
- }
62
- // #region FORM DATA
63
- // Variáveis específicas para funcionalidades padrões dos formulários
64
- get code() {
65
- return this.form.get('code')?.value;
66
- }
67
- get password() {
68
- return this.form.get('password')?.value;
69
- }
70
- get confirmPassword() {
71
- return this.form.get('confirmPassword')?.value;
72
- }
73
- // #endregion FORM DATA
74
- // #region FORM VALIDATORS
75
- // #region PUBLIC
76
- // Método para configuração dos campos de edição do formulário
77
- createForm() {
78
- this.form = this._formBuilder.group({
79
- code: ['', [Validators.required, Validators.maxLength(6)]],
80
- password: ['', [Validators.required, Validators.maxLength(100)]],
81
- confirmPassword: ['', [Validators.required, Validators.maxLength(100)]]
82
- });
83
- this.form.get('code')?.setValue('');
84
- this.form.get('password')?.setValue('');
85
- this.form.get('confirmPassword')?.setValue('');
86
- }
87
- // #endregion FORM VALIDATORS
88
- // #endregion ==========> FORM BUILDER <==========
89
- // #region ==========> SERVICE METHODS <==========
90
- // #region GET
91
- /**
92
- * Puxa o nome do servidor salvo na configuração da máquina
93
- */
94
- getServer() {
95
- if (this.form.valid) {
96
- this._serverService.getServer().subscribe({
97
- next: response => {
98
- },
99
- error: (error) => {
100
- //this._projectUtilservice.showHttpError(error);
101
- this._messageService.showAlertDanger(error);
102
- throw new Error(error);
103
- },
104
- });
105
- }
106
- else {
107
- FormUtils.validateFields(this.form);
108
- }
109
- }
110
- // #endregion GET
111
- // #region POST
112
- // Envia requisição para recuperar de senha
113
- sendPassword() {
114
- if (this.form.valid) {
115
- this._serverService.getServer().subscribe({
116
- next: response => {
117
- this.updatePassword();
118
- },
119
- error: (error) => {
120
- //this._projectUtilservice.showHttpError(error);
121
- },
122
- });
123
- }
124
- else {
125
- FormUtils.validateFields(this.form);
126
- }
127
- }
128
- // Recuperar senha
129
- updatePassword() {
130
- if (this.createPassword) {
131
- this._authService.createPassword(this.domain, this.user, this.form.value).subscribe({
132
- next: (response) => {
133
- this._messageService.showAlertSuccess('Você definiu sua senha com sucesso. Preencha suas novas credenciais para acessar o sistema.');
134
- this.cancelar();
135
- },
136
- error: (error) => {
137
- //this._projectUtilservice.showHttpError(error);
138
- this._messageService.showAlertDanger(error);
139
- throw new Error(error);
140
- },
141
- });
142
- }
143
- else {
144
- this._authService.recoverPassword(this.domain, this.user, this.form.value).subscribe({
145
- next: (response) => {
146
- this._messageService.showAlertSuccess('Você redefiniu sua senha com sucesso. Preencha suas novas credenciais para acessar o sistema.');
147
- this.cancelar();
148
- },
149
- error: (error) => {
150
- //this._projectUtilservice.showHttpError(error);
151
- this._messageService.showAlertDanger(error);
152
- throw new Error(error);
153
- },
154
- });
155
- }
156
- }
157
- // #endregion POST
158
- // #region UTILIDADES
159
- getParmsFromRoute() {
160
- if (this._route.snapshot.paramMap.get('param') != null) {
161
- let param = atob(this._route.snapshot.paramMap.get('param'));
162
- var params = param.split('$');
163
- let numero = +params[params.length - 1].slice(-1);
164
- this.statusSenha = numero;
165
- this.createPassword = (params[0] == 'true' ? true : false);
166
- this.domain = params[1];
167
- this.user = params[2];
168
- this.passwordLabel = (this.createPassword ? "Escolha sua nova senha" : "Digite uma nova Senha");
169
- if (params[3] != null) {
170
- this.form.get('code')?.setValue(params[3]);
171
- }
172
- }
173
- else {
174
- this.createPassword = false;
175
- this.domain = "";
176
- this.user = "";
177
- }
178
- }
179
- // Retorno para o login
180
- cancelar() {
181
- this._authStorageService.logout();
182
- this._router.navigate(["/auth/login"]);
183
- }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NovaSenhaComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MessageService }, { token: i3.ServerService }, { token: i4.AuthService }, { token: i5.AuthStorageService }, { token: i6.Title }, { token: i7.Router }, { token: i7.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NovaSenhaComponent, selector: "app-nova-senha", ngImport: i0, template: "<body>\r\n\t<div id=\"main-container\">\r\n\t\t<!-- #region MAIN CONTENT -->\r\n\t\t<div class=\"glb-main-container password-container\">\r\n\t\t\t<div class=\"password-info-container\">\r\n\t\t\t\t<div class=\"img mb-3\">\r\n\t\t\t\t\t<img [src]=\"statusSenha == 2 ? calendarioImg : statusSenha == 1 ? maoImg : statusSenha == 3 ? cadeadoImg : '' \" width=\"125.69\" height=\"122\">\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"text\">\r\n\t\t\t\t\t<h4>{{statusSenha == 2 ? 'Senha expirada' : statusSenha == 1 ? 'Primeiro acesso' : statusSenha == 3 ? 'Esqueceu sua senha?' : ''}}</h4>\r\n\t\t\t\t\t<p [innerHTML]=\"statusSenha == 2 ? senhaExpiradaText : statusSenha == 1 ? primeiroAcessoText : statusSenha == 3 ? esqueceuSenhaText : '' \"></p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<form [formGroup]=\"form\">\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputCode\" class=\"form-label\"> C\u00F3digo de valida\u00E7\u00E3o <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"Insira seu c\u00F3digo aqui...\" id=\"inputCode\" class=\"form-control\" formControlName=\"code\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('code'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('code')\" label=\"C\u00F3digo de valida\u00E7\u00E3o\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputPassword\" class=\"form-label\"> Digite uma nova Senha <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"password\" placeholder=\"Digite sua nova senha...\" id=\"inputPassword\" class=\"form-control\" formControlName=\"password\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('password'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('password')\" label=\"{{ passwordLabel }}\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputConfirmPassword\" class=\"form-label\"> Confirme sua nova Senha <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"password\" placeholder=\"Digite a senha novamente...\" id=\"inputConfirmPassword\" class=\"form-control\" formControlName=\"confirmPassword\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('confirmPassword'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('confirmPassword')\" label=\"Confirme sua Senha\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\r\n\t\t\t\t\t<div class=\"btns\">\r\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-primary modal-button\" (click)=\"sendPassword()\">\r\n\t\t\t\t\t\t\t<span> Redefinir senha </span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"btn modal-button cancelar-btn\" (click)=\"cancelar()\">\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<span><span class=\"icon\"><lib-icon iconName=\"p-seta-esquerda\" [iconSize]=\"20\"/></span>Voltar para a tela de login</span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</div>\r\n\t\t<!-- #endregion MAIN CONTENT -->\r\n\t</div>\r\n\t</body>\r\n\t", styles: ["body{background-color:#f5f5f5;height:100%!important;margin:0!important;padding:0!important}#main-container{display:flex;align-items:center;justify-content:center;height:100%}.password-container{padding:30px;width:37%;border:none;box-shadow:0 2px -1px #0000001a}.img{width:26%}.text{display:flex;flex-direction:column;align-items:flex-start;margin-left:auto}.text h4{font-weight:700}.text p{text-align:start}.password-info-container{display:flex;gap:15px}.btns{display:flex;flex-direction:column;gap:10px;align-items:center;width:100%}button{width:100%;padding:10px;border:none}button .cancelar-btn{background-color:none}.cancelar-btn span{color:#6c757d;font-weight:700}input{padding:10px}input::placeholder{color:#8d8d8d;font-size:15px}.icon{margin-right:5px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.FieldErrorMessageComponent, selector: "app-field-error-message, lib-error-message", inputs: ["customMessage", "control", "label"] }, { kind: "component", type: i2.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }], preserveWhitespaces: true }); }
186
- }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NovaSenhaComponent, decorators: [{
188
- type: Component,
189
- args: [{ selector: 'app-nova-senha', preserveWhitespaces: true, template: "<body>\r\n\t<div id=\"main-container\">\r\n\t\t<!-- #region MAIN CONTENT -->\r\n\t\t<div class=\"glb-main-container password-container\">\r\n\t\t\t<div class=\"password-info-container\">\r\n\t\t\t\t<div class=\"img mb-3\">\r\n\t\t\t\t\t<img [src]=\"statusSenha == 2 ? calendarioImg : statusSenha == 1 ? maoImg : statusSenha == 3 ? cadeadoImg : '' \" width=\"125.69\" height=\"122\">\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"text\">\r\n\t\t\t\t\t<h4>{{statusSenha == 2 ? 'Senha expirada' : statusSenha == 1 ? 'Primeiro acesso' : statusSenha == 3 ? 'Esqueceu sua senha?' : ''}}</h4>\r\n\t\t\t\t\t<p [innerHTML]=\"statusSenha == 2 ? senhaExpiradaText : statusSenha == 1 ? primeiroAcessoText : statusSenha == 3 ? esqueceuSenhaText : '' \"></p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<form [formGroup]=\"form\">\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputCode\" class=\"form-label\"> C\u00F3digo de valida\u00E7\u00E3o <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"Insira seu c\u00F3digo aqui...\" id=\"inputCode\" class=\"form-control\" formControlName=\"code\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('code'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('code')\" label=\"C\u00F3digo de valida\u00E7\u00E3o\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputPassword\" class=\"form-label\"> Digite uma nova Senha <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"password\" placeholder=\"Digite sua nova senha...\" id=\"inputPassword\" class=\"form-control\" formControlName=\"password\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('password'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('password')\" label=\"{{ passwordLabel }}\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t<div class=\"row\">\r\n\t\t\t\t\t<div class=\"col-12 mb-3\">\r\n\t\t\t\t\t\t<label for=\"inputConfirmPassword\" class=\"form-label\"> Confirme sua nova Senha <span class=\"text-danger\">*</span></label>\r\n\t\t\t\t\t\t<input type=\"password\" placeholder=\"Digite a senha novamente...\" id=\"inputConfirmPassword\" class=\"form-control\" formControlName=\"confirmPassword\"\r\n\t\t\t\t\t\t\t[class.is-invalid]=\"FormUtils.isInvalidField(form.get('confirmPassword'))\">\r\n\t\t\t\t\t\t<app-field-error-message [control]=\"form.get('confirmPassword')\" label=\"Confirme sua Senha\"></app-field-error-message>\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\r\n\t\t\t\t\t<div class=\"btns\">\r\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-primary modal-button\" (click)=\"sendPassword()\">\r\n\t\t\t\t\t\t\t<span> Redefinir senha </span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"btn modal-button cancelar-btn\" (click)=\"cancelar()\">\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<span><span class=\"icon\"><lib-icon iconName=\"p-seta-esquerda\" [iconSize]=\"20\"/></span>Voltar para a tela de login</span>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</div>\r\n\t\t<!-- #endregion MAIN CONTENT -->\r\n\t</div>\r\n\t</body>\r\n\t", styles: ["body{background-color:#f5f5f5;height:100%!important;margin:0!important;padding:0!important}#main-container{display:flex;align-items:center;justify-content:center;height:100%}.password-container{padding:30px;width:37%;border:none;box-shadow:0 2px -1px #0000001a}.img{width:26%}.text{display:flex;flex-direction:column;align-items:flex-start;margin-left:auto}.text h4{font-weight:700}.text p{text-align:start}.password-info-container{display:flex;gap:15px}.btns{display:flex;flex-direction:column;gap:10px;align-items:center;width:100%}button{width:100%;padding:10px;border:none}button .cancelar-btn{background-color:none}.cancelar-btn span{color:#6c757d;font-weight:700}input{padding:10px}input::placeholder{color:#8d8d8d;font-size:15px}.icon{margin-right:5px;font-weight:700}\n"] }]
190
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.MessageService }, { type: i3.ServerService }, { type: i4.AuthService }, { type: i5.AuthStorageService }, { type: i6.Title }, { type: i7.Router }, { type: i7.ActivatedRoute }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm92YS1zZW5oYWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY29tcG9uZW50cy9ub3ZhLXNlbmhhL25vdmEtc2VuaGFjb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvbm92YS1zZW5oYS9ub3ZhLXNlbmhhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBV3pELE1BQU0sT0FBTyxrQkFBa0I7SUFFOUIsWUFDUyxZQUF5QixFQUN6QixlQUErQixFQUMvQixjQUE2QixFQUM3QixZQUF5QixFQUN6QixtQkFBdUMsRUFDdkMsTUFBYSxFQUNiLE9BQWUsRUFDZixNQUFzQjtRQVB0QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBMkIvQiw2Q0FBNkM7UUFFN0Msa0JBQWtCO1FBQ1YsV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFrQixFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFakMsc0JBQWlCLEdBQVcsb0ZBQW9G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LE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBRWhHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUVGLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUVGLENBQUM7SUFFRCx1QkFBdUI7SUFDaEIsUUFBUTtRQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0EvTlcsa0JBQWtCO21HQUFsQixrQkFBa0Isc0RDaEIvQixzekdBc0RDOzs0RkR0Q1ksa0JBQWtCO2tCQU45QixTQUFTOytCQUNDLGdCQUFnQix1QkFHTCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBGb3JtVXRpbHMsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwLWluZnJhJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmVyL3NlcnZlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1ub3ZhLXNlbmhhJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbm92YS1zZW5oYS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbm92YS1zZW5oYS5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByZXNlcnZlV2hpdGVzcGFjZXM6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3ZhU2VuaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuXHRcdHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3NlcnZlclNlcnZpY2U6IFNlcnZlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9hdXRoU3RvcmFnZVNlcnZpY2U6IEF1dGhTdG9yYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RpdGxlOiBUaXRsZSxcclxuXHRcdHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcblx0KSB7IH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG5cdFx0dGhpcy5fdGl0bGUuc2V0VGl0bGUoXCJOb3ZhIFNlbmhhXCIpO1xyXG5cclxuXHRcdHRoaXMuY3JlYXRlRm9ybSgpO1xyXG5cclxuXHRcdHRoaXMuZ2V0UGFybXNGcm9tUm91dGUoKTtcclxuXHJcblx0XHR0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpPy5kaXNhYmxlKCk7XHJcblx0XHR0aGlzLmZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uZGlzYWJsZSgpO1xyXG5cclxuXHRcdHRoaXMuZm9ybS5nZXQoJ2NvZGUnKT8uc2V0VmFsdWUoJycpO1xyXG5cclxuXHRcdHRoaXMuZm9ybS5nZXQoJ2NvZGUnKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcblx0XHRcdGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPT09IDYpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpPy5lbmFibGUoKTtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uZW5hYmxlKCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKT8uZGlzYWJsZSgpO1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5kaXNhYmxlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG5cdC8vICNyZWdpb24gUFJJVkFURVxyXG5cdHByaXZhdGUgZG9tYWluOiBzdHJpbmcgfCBudWxsID0gXCJcIjtcclxuXHRwcml2YXRlIHVzZXI6IHN0cmluZyB8IG51bGwgPSBcIlwiO1xyXG5cdHByaXZhdGUgY3JlYXRlUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0cHVibGljIGVzcXVlY2V1U2VuaGFUZXh0OiBzdHJpbmcgPSBcIkVudmlhbW9zIHVtIGPDs2RpZ28gcGFyYSBvIHNldSBlLW1haWwuPGJyPkluc2lyYS1vIGFiYWl4byBwYXJhIHJlZGVmaW5pciBzdWEgc2VuaGEuXCJcclxuXHRwdWJsaWMgcHJpbWVpcm9BY2Vzc29UZXh0OiBzdHJpbmcgPSBcIkVzdGUgw6kgbyBzZXUgcHJpbWVpcm8gYWNlc3NvLiBQb3IgZmF2b3IsPGJyPkluc2lyYSBhYmFpeG8gbyBjw7NkaWdvIGVudmlhZG8gcGFyZSBzZXU8YnI+ZS1tYWlsIHBhcmEgZGVmaW5pciBzdWEgc2VuaGEuXCJcclxuXHRwdWJsaWMgc2VuaGFFeHBpcmFkYVRleHQ6IHN0cmluZyA9IFwiU3VhIHNlbmhhIGV4cGlyb3UgZSBwcmVjaXNhIHNlciBhdHVhbGl6YWRhLjxicj5FbnZpYW1vcyB1bSBjw7NkaWdvIHBhcmEgbyBzZXUgZS1tYWlsLjxicj5JbnNpcmEtbyBhYmFpeG8gcGFyYSBkZWZpbmlyIHN1YSBzZW5oYS5cIlxyXG5cclxuXHRwdWJsaWMgY2FkZWFkb0ltZyA9ICdhc3NldHMvaW1ncy9Qcm9wZXJ0eTEtY2FkZWFkby5wbmcnO1xyXG5cdHB1YmxpYyBtYW9JbWcgPSAnYXNzZXRzL2ltZ3MvUHJvcGVydHkxLW1hby5wbmcnO1xyXG5cdHB1YmxpYyBjYWxlbmRhcmlvSW1nID0gJ2Fzc2V0cy9pbWdzL1Byb3BlcnR5MS1jYWxlbmRhcmlvZmluby5wbmcnO1xyXG5cclxuXHQvLyAjcmVnaW9uIFBSSVZBVEVcclxuXHJcblx0Ly8gI3JlZ2lvbiBQVUJMSUNcclxuXHJcblx0Ly8gI3JlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cclxuXHRwdWJsaWMgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG5cdC8vICBQcm9wcmllZGFkZSBuZWNlc3PDoXJpbyBwYXJhIHF1ZSBhIGNsYXNzZSBzdGF0aWMgRm9ybVV0aWxzIHBvc3NhIHNlciB1dGlsaXphZGEgbm8gSHRtbFxyXG5cdHB1YmxpYyBnZXQgRm9ybVV0aWxzKCk6IHR5cGVvZiBGb3JtVXRpbHMge1xyXG5cdFx0cmV0dXJuIEZvcm1VdGlscztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBwYXNzd29yZExhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuXHRwdWJsaWMgc3RhdHVzU2VuaGE6IG51bWJlciA9IDA7XHJcblxyXG5cdC8vICNyZWdpb24gRk9STSBEQVRBXHJcblxyXG5cdC8vICBWYXJpw6F2ZWlzIGVzcGVjw61maWNhcyBwYXJhIGZ1bmNpb25hbGlkYWRlcyBwYWRyw7VlcyBkb3MgZm9ybXVsw6FyaW9zXHJcblx0cHVibGljIGdldCBjb2RlKCk6IHN0cmluZyB8IG51bGwge1xyXG5cdFx0cmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvZGUnKT8udmFsdWU7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHBhc3N3b3JkKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKT8udmFsdWU7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IGNvbmZpcm1QYXNzd29yZCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy52YWx1ZTtcclxuXHR9XHJcblxyXG5cdC8vICNlbmRyZWdpb24gRk9STSBEQVRBXHJcblxyXG5cdC8vICNyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcblxyXG5cdC8vICNyZWdpb24gUFVCTElDXHJcblxyXG5cdC8vICBNw6l0b2RvIHBhcmEgY29uZmlndXJhw6fDo28gZG9zIGNhbXBvcyBkZSBlZGnDp8OjbyBkbyBmb3JtdWzDoXJpb1xyXG5cdHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcclxuXHJcblx0XHR0aGlzLmZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cCh7XHJcblx0XHRcdGNvZGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDYpXV0sXHJcblx0XHRcdHBhc3N3b3JkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApXV0sXHJcblx0XHRcdGNvbmZpcm1QYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV1dXHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmZvcm0uZ2V0KCdjb2RlJyk/LnNldFZhbHVlKCcnKTtcclxuXHRcdHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LnNldFZhbHVlKCcnKTtcclxuXHRcdHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5zZXRWYWx1ZSgnJyk7XHJcblx0fVxyXG5cclxuXHQvLyAjZW5kcmVnaW9uIEZPUk0gVkFMSURBVE9SU1xyXG5cclxuXHQvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxyXG5cclxuXHQvLyAjcmVnaW9uID09PT09PT09PT0+IFNFUlZJQ0UgTUVUSE9EUyA8PT09PT09PT09PVxyXG5cclxuXHJcblx0Ly8gI3JlZ2lvbiBHRVRcclxuXHJcblx0LyoqXHJcblx0ICogUHV4YSBvIG5vbWUgZG8gc2Vydmlkb3Igc2Fsdm8gbmEgY29uZmlndXJhw6fDo28gZGEgbcOhcXVpbmFcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U2VydmVyKCk6IHZvaWQge1xyXG5cclxuXHRcdGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuXHRcdFx0dGhpcy5fc2VydmVyU2VydmljZS5nZXRTZXJ2ZXIoKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IHJlc3BvbnNlID0+IHtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdC8vdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdFx0dGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcclxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihlcnJvcilcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Rm9ybVV0aWxzLnZhbGlkYXRlRmllbGRzKHRoaXMuZm9ybSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8vICNlbmRyZWdpb24gR0VUXHJcblxyXG5cdC8vICNyZWdpb24gUE9TVFxyXG5cclxuXHQvLyBFbnZpYSByZXF1aXNpw6fDo28gcGFyYSByZWN1cGVyYXIgZGUgc2VuaGFcclxuXHRwdWJsaWMgc2VuZFBhc3N3b3JkKCk6IHZvaWQge1xyXG5cclxuXHRcdGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuXHRcdFx0dGhpcy5fc2VydmVyU2VydmljZS5nZXRTZXJ2ZXIoKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IHJlc3BvbnNlID0+IHtcclxuXHRcdFx0XHRcdHRoaXMudXBkYXRlUGFzc3dvcmQoKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdC8vdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH0pXHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Rm9ybVV0aWxzLnZhbGlkYXRlRmllbGRzKHRoaXMuZm9ybSk7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0Ly8gUmVjdXBlcmFyIHNlbmhhXHJcblx0cHVibGljIHVwZGF0ZVBhc3N3b3JkKCk6IHZvaWQge1xyXG5cclxuXHRcdGlmICh0aGlzLmNyZWF0ZVBhc3N3b3JkKSB7XHJcblx0XHRcdHRoaXMuX2F1dGhTZXJ2aWNlLmNyZWF0ZVBhc3N3b3JkKHRoaXMuZG9tYWluISwgdGhpcy51c2VyISwgdGhpcy5mb3JtLnZhbHVlKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0U3VjY2VzcygnVm9jw6ogZGVmaW5pdSBzdWEgc2VuaGEgY29tIHN1Y2Vzc28uIFByZWVuY2hhIHN1YXMgbm92YXMgY3JlZGVuY2lhaXMgcGFyYSBhY2Vzc2FyIG8gc2lzdGVtYS4nKTtcclxuXHJcblx0XHRcdFx0XHR0aGlzLmNhbmNlbGFyKCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHQvL3RoaXMuX3Byb2plY3RVdGlsc2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKTtcclxuXHRcdFx0XHRcdHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydERhbmdlcihlcnJvcik7XHJcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoZXJyb3IpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fYXV0aFNlcnZpY2UucmVjb3ZlclBhc3N3b3JkKHRoaXMuZG9tYWluISwgdGhpcy51c2VyISwgdGhpcy5mb3JtLnZhbHVlKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0U3VjY2VzcygnVm9jw6ogcmVkZWZpbml1IHN1YSBzZW5oYSBjb20gc3VjZXNzby4gUHJlZW5jaGEgc3VhcyBub3ZhcyBjcmVkZW5jaWFpcyBwYXJhIGFjZXNzYXIgbyBzaXN0ZW1hLicpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuY2FuY2VsYXIoKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdC8vdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdFx0dGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcclxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihlcnJvcilcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQvLyAjZW5kcmVnaW9uIFBPU1RcclxuXHJcblx0Ly8gI3JlZ2lvbiBVVElMSURBREVTXHJcblx0cHJpdmF0ZSBnZXRQYXJtc0Zyb21Sb3V0ZSgpOiB2b2lkIHtcclxuXHJcblx0XHRpZiAodGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdwYXJhbScpICE9IG51bGwpIHtcclxuXHRcdFx0bGV0IHBhcmFtOiBzdHJpbmcgPSBhdG9iKHRoaXMuX3JvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgncGFyYW0nKSEpO1xyXG5cclxuXHRcdFx0dmFyIHBhcmFtcyA9IHBhcmFtLnNwbGl0KCckJyk7XHJcblxyXG5cdFx0XHRsZXQgbnVtZXJvOiBudW1iZXIgPSArcGFyYW1zW3BhcmFtcy5sZW5ndGggLSAxXS5zbGljZSgtMSlcclxuXHRcdFx0dGhpcy5zdGF0dXNTZW5oYSA9IG51bWVybztcclxuXHJcblx0XHRcdHRoaXMuY3JlYXRlUGFzc3dvcmQgPSAocGFyYW1zWzBdID09ICd0cnVlJyA/IHRydWUgOiBmYWxzZSk7XHJcblx0XHRcdHRoaXMuZG9tYWluID0gcGFyYW1zWzFdO1xyXG5cdFx0XHR0aGlzLnVzZXIgPSBwYXJhbXNbMl07XHJcblx0XHRcdHRoaXMucGFzc3dvcmRMYWJlbCA9ICh0aGlzLmNyZWF0ZVBhc3N3b3JkID8gXCJFc2NvbGhhIHN1YSBub3ZhIHNlbmhhXCIgOiBcIkRpZ2l0ZSB1bWEgbm92YSBTZW5oYVwiKTtcclxuXHJcblx0XHRcdGlmIChwYXJhbXNbM10gIT0gbnVsbCkge1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5nZXQoJ2NvZGUnKT8uc2V0VmFsdWUocGFyYW1zWzNdKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuY3JlYXRlUGFzc3dvcmQgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5kb21haW4gPSBcIlwiO1xyXG5cdFx0XHR0aGlzLnVzZXIgPSBcIlwiO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdC8vIFJldG9ybm8gcGFyYSBvIGxvZ2luXHJcblx0cHVibGljIGNhbmNlbGFyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmxvZ291dCgpO1xyXG5cclxuXHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXCIvYXV0aC9sb2dpblwiXSk7XHJcblx0fVxyXG5cclxuXHQvLyAjZW5kcmVnaW9uIFVUSUxJREFERVNcclxuXHJcblx0Ly8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cclxuXHJcblx0Ly8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuXHJcbn1cclxuIiwiPGJvZHk+XHJcblx0PGRpdiBpZD1cIm1haW4tY29udGFpbmVyXCI+XHJcblx0XHQ8IS0tICNyZWdpb24gTUFJTiBDT05URU5UIC0tPlxyXG5cdFx0PGRpdiBjbGFzcz1cImdsYi1tYWluLWNvbnRhaW5lciBwYXNzd29yZC1jb250YWluZXJcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInBhc3N3b3JkLWluZm8tY29udGFpbmVyXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImltZyBtYi0zXCI+XHJcblx0XHRcdFx0XHQ8aW1nIFtzcmNdPVwic3RhdHVzU2VuaGEgPT0gMiA/IGNhbGVuZGFyaW9JbWcgOiBzdGF0dXNTZW5oYSA9PSAxID8gbWFvSW1nIDogc3RhdHVzU2VuaGEgPT0gMyA/IGNhZGVhZG9JbWcgOiAnJyBcIiB3aWR0aD1cIjEyNS42OVwiIGhlaWdodD1cIjEyMlwiPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XHJcblx0XHRcdFx0XHQ8aDQ+e3tzdGF0dXNTZW5oYSA9PSAyID8gJ1NlbmhhIGV4cGlyYWRhJyA6IHN0YXR1c1NlbmhhID09IDEgPyAnUHJpbWVpcm8gYWNlc3NvJyA6IHN0YXR1c1NlbmhhID09IDMgPyAnRXNxdWVjZXUgc3VhIHNlbmhhPycgOiAnJ319PC9oND5cclxuXHRcdFx0XHRcdDxwIFtpbm5lckhUTUxdPVwic3RhdHVzU2VuaGEgPT0gMiA/IHNlbmhhRXhwaXJhZGFUZXh0IDogc3RhdHVzU2VuaGEgPT0gMSA/IHByaW1laXJvQWNlc3NvVGV4dCA6IHN0YXR1c1NlbmhhID09IDMgPyBlc3F1ZWNldVNlbmhhVGV4dCA6ICcnIFwiPjwvcD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItM1wiPlxyXG5cdFx0XHRcdFx0XHQ8bGFiZWwgZm9yPVwiaW5wdXRDb2RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+IEPDs2RpZ28gZGUgdmFsaWRhw6fDo28gPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJJbnNpcmEgc2V1IGPDs2RpZ28gYXF1aS4uLlwiIGlkPVwiaW5wdXRDb2RlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJjb2RlXCJcclxuXHRcdFx0XHRcdFx0XHRbY2xhc3MuaXMtaW52YWxpZF09XCJGb3JtVXRpbHMuaXNJbnZhbGlkRmllbGQoZm9ybS5nZXQoJ2NvZGUnKSlcIj5cclxuXHRcdFx0XHRcdFx0PGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdjb2RlJylcIiBsYWJlbD1cIkPDs2RpZ28gZGUgdmFsaWRhw6fDo29cIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlx0XHRcdFx0XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTNcIj5cclxuXHRcdFx0XHRcdFx0PGxhYmVsIGZvcj1cImlucHV0UGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj4gRGlnaXRlIHVtYSBub3ZhIFNlbmhhIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSBzdWEgbm92YSBzZW5oYS4uLlwiIGlkPVwiaW5wdXRQYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5pcy1pbnZhbGlkXT1cIkZvcm1VdGlscy5pc0ludmFsaWRGaWVsZChmb3JtLmdldCgncGFzc3dvcmQnKSlcIj5cclxuXHRcdFx0XHRcdFx0PGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwYXNzd29yZCcpXCIgbGFiZWw9XCJ7eyBwYXNzd29yZExhYmVsIH19XCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cdFx0XHRcdFxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMiBtYi0zXCI+XHJcblx0XHRcdFx0XHRcdDxsYWJlbCBmb3I9XCJpbnB1dENvbmZpcm1QYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPiBDb25maXJtZSBzdWEgbm92YSBTZW5oYSA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgcGxhY2Vob2xkZXI9XCJEaWdpdGUgYSBzZW5oYSBub3ZhbWVudGUuLi5cIiBpZD1cImlucHV0Q29uZmlybVBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5pcy1pbnZhbGlkXT1cIkZvcm1VdGlscy5pc0ludmFsaWRGaWVsZChmb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJykpXCI+XHJcblx0XHRcdFx0XHRcdDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJylcIiBsYWJlbD1cIkNvbmZpcm1lIHN1YSBTZW5oYVwiPjwvYXBwLWZpZWxkLWVycm9yLW1lc3NhZ2U+XHRcdFx0XHRcclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bnNcIj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbW9kYWwtYnV0dG9uXCIgKGNsaWNrKT1cInNlbmRQYXNzd29yZCgpXCI+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4+IFJlZGVmaW5pciBzZW5oYSA8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBtb2RhbC1idXR0b24gY2FuY2VsYXItYnRuXCIgKGNsaWNrKT1cImNhbmNlbGFyKClcIj5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPjxzcGFuIGNsYXNzPVwiaWNvblwiPjxsaWItaWNvbiBpY29uTmFtZT1cInAtc2V0YS1lc3F1ZXJkYVwiIFtpY29uU2l6ZV09XCIyMFwiLz48L3NwYW4+Vm9sdGFyIHBhcmEgYSB0ZWxhIGRlIGxvZ2luPC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Zvcm0+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDwhLS0gI2VuZHJlZ2lvbiBNQUlOIENPTlRFTlQgLS0+XHJcblx0PC9kaXY+XHJcblx0PC9ib2R5PlxyXG5cdCJdfQ==
@@ -1,52 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class LibCustomLoginService {
4
- constructor() { }
5
- // #endregion Propriedade Customizadas para o Componente login.component.ts
6
- // #region Métodos Customizadas para o Componente auth.service.ts
7
- /**
8
- * Método executado no auth.service.ts - método: login ()
9
- * Utilizado para inicializações diversas
10
- */
11
- authLogin() {
12
- this.storedAuthLogin();
13
- }
14
- /**
15
- * Método executado no auth.service.ts - método: logout ()
16
- * Utilizado para inicializações diversas
17
- */
18
- authLogout() {
19
- this.storedAuthLogout();
20
- }
21
- /**
22
- * Método executado no auth.service.ts - método: login ()
23
- * Utilizado para informar o redirecionamento para a tela inicial após o login ok
24
- *
25
- * @param router Objeto de Router que será utilizado
26
- */
27
- authNavigateToPage(router) {
28
- router.navigate(["/home"]);
29
- }
30
- ConfigurarCustomLogin(customLoginService) {
31
- //passando propriedades do projeto para a lib
32
- this.loginTitle = customLoginService.loginTitle;
33
- this.loginSubtitle = customLoginService.loginSubtitle;
34
- this.loginBackground = customLoginService.loginBackground;
35
- this.loginLogotipo = customLoginService.loginLogotipo;
36
- this.loginAltLogotipo = customLoginService.loginAltLogotipo;
37
- this.loginPageTitle = customLoginService.loginPageTitle;
38
- this.loginDesenvDomain = customLoginService.loginDesenvDomain;
39
- this.loginDesenvUser = customLoginService.loginDesenvUser;
40
- this.loginDesenvPassword = customLoginService.loginDesenvPassword;
41
- //passando implementação dos métodos do projeto para a lib
42
- this.storedAuthLogin = customLoginService.authLogin;
43
- this.storedAuthLogout = customLoginService.authLogout;
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibCustomLoginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibCustomLoginService, providedIn: 'root' }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibCustomLoginService, decorators: [{
49
- type: Injectable,
50
- args: [{ providedIn: 'root' }]
51
- }], ctorParameters: () => [] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWxvZ2luLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2N1c3RvbS9jdXN0b20tbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLGdCQUFnQixDQUFDO0lBWWpCLDJFQUEyRTtJQUUzRSxpRUFBaUU7SUFFakU7OztPQUdHO0lBQ0ksU0FBUztRQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGtCQUFrQixDQUFDLE1BQWM7UUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQVNNLHFCQUFxQixDQUFDLGtCQUF1QztRQUVoRSw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUE7UUFFL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUE7UUFFckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUE7UUFFekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUE7UUFFckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFBO1FBRTNELElBQUksQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFBO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQTtRQUU3RCxJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQTtRQUV6RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUE7UUFFakUsMERBQTBEO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQzsrR0ExRVEscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGaEIsTUFBTTs7NEZBRVgscUJBQXFCO2tCQUhqQyxVQUFVO21CQUNQLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUN1c3RvbUxvZ2luU2VydmljZSB9IGZyb20gJy4vbW9kZWxzL2ljdXN0b20tbG9naW4tc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZShcclxuICAgIHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgTGliQ3VzdG9tTG9naW5TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBDdXN0b21pemFkYXMgcGFyYSBvIENvbXBvbmVudGUgbG9naW4uY29tcG9uZW50LnRzXHJcbiAgICBsb2dpblRpdGxlITogc3RyaW5nO1xyXG4gICAgbG9naW5TdWJ0aXRsZSE6IHN0cmluZztcclxuICAgIGxvZ2luQmFja2dyb3VuZCE6IHN0cmluZztcclxuICAgIGxvZ2luTG9nb3RpcG8hOiBzdHJpbmc7XHJcbiAgICBsb2dpbkFsdExvZ290aXBvITogc3RyaW5nO1xyXG4gICAgbG9naW5QYWdlVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBsb2dpbkRlc2VudkRvbWFpbiE6IHN0cmluZztcclxuICAgIGxvZ2luRGVzZW52VXNlciE6IHN0cmluZztcclxuICAgIGxvZ2luRGVzZW52UGFzc3dvcmQhOiBzdHJpbmc7XHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3ByaWVkYWRlIEN1c3RvbWl6YWRhcyBwYXJhIG8gQ29tcG9uZW50ZSBsb2dpbi5jb21wb25lbnQudHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIE3DqXRvZG9zIEN1c3RvbWl6YWRhcyBwYXJhIG8gQ29tcG9uZW50ZSBhdXRoLnNlcnZpY2UudHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ2luICgpXHJcbiAgICAgKiBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRoTG9naW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdG9yZWRBdXRoTG9naW4oKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ291dCAoKVxyXG4gICAgICogVXRpbGl6YWRvIHBhcmEgaW5pY2lhbGl6YcOnw7VlcyBkaXZlcnNhc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0aExvZ291dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0b3JlZEF1dGhMb2dvdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ2luICgpXHJcbiAgICAgKiBVdGlsaXphZG8gcGFyYSBpbmZvcm1hciBvIHJlZGlyZWNpb25hbWVudG8gcGFyYSBhIHRlbGEgaW5pY2lhbCBhcMOzcyBvIGxvZ2luIG9rXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSByb3V0ZXIgT2JqZXRvIGRlIFJvdXRlciBxdWUgc2Vyw6EgdXRpbGl6YWRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRoTmF2aWdhdGVUb1BhZ2Uocm91dGVyOiBSb3V0ZXIpOiB2b2lkIHtcclxuICAgICAgICByb3V0ZXIubmF2aWdhdGUoW1wiL2hvbWVcIl0pO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvbiBNw6l0b2RvcyBDdXN0b21pemFkYXMgcGFyYSBvIENvbXBvbmVudGUgYXV0aC5zZXJ2aWNlLnRzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBVVElMU1xyXG5cclxuICAgIHB1YmxpYyBzdG9yZWRBdXRoTG9naW4hOiAoKSA9PiB2b2lkO1xyXG4gICAgcHVibGljIHN0b3JlZEF1dGhMb2dvdXQhOiAoKSA9PiB2b2lkO1xyXG4gICAgcHVibGljIHN0b3JlZEF1dGhOYXZpZ2F0ZVRvUGFnZSE6IChyb3V0ZXI6IFJvdXRlcikgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgQ29uZmlndXJhckN1c3RvbUxvZ2luKGN1c3RvbUxvZ2luU2VydmljZTogSUN1c3RvbUxvZ2luU2VydmljZSk6IHZvaWQge1xyXG5cclxuICAgICAgICAvL3Bhc3NhbmRvIHByb3ByaWVkYWRlcyBkbyBwcm9qZXRvIHBhcmEgYSBsaWJcclxuICAgICAgICB0aGlzLmxvZ2luVGl0bGUgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5UaXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luU3VidGl0bGUgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5TdWJ0aXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luQmFja2dyb3VuZCA9IGN1c3RvbUxvZ2luU2VydmljZS5sb2dpbkJhY2tncm91bmRcclxuXHJcbiAgICAgICAgdGhpcy5sb2dpbkxvZ290aXBvID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luTG9nb3RpcG9cclxuXHJcbiAgICAgICAgdGhpcy5sb2dpbkFsdExvZ290aXBvID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luQWx0TG9nb3RpcG9cclxuXHJcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VUaXRsZSA9IGN1c3RvbUxvZ2luU2VydmljZS5sb2dpblBhZ2VUaXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luRGVzZW52RG9tYWluID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luRGVzZW52RG9tYWluXHJcblxyXG4gICAgICAgIHRoaXMubG9naW5EZXNlbnZVc2VyID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luRGVzZW52VXNlclxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luRGVzZW52UGFzc3dvcmQgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5EZXNlbnZQYXNzd29yZFxyXG5cclxuICAgICAgICAvL3Bhc3NhbmRvIGltcGxlbWVudGHDp8OjbyBkb3MgbcOpdG9kb3MgZG8gcHJvamV0byBwYXJhIGEgbGliXHJcbiAgICAgICAgdGhpcy5zdG9yZWRBdXRoTG9naW4gPSBjdXN0b21Mb2dpblNlcnZpY2UuYXV0aExvZ2luO1xyXG4gICAgICAgIHRoaXMuc3RvcmVkQXV0aExvZ291dCA9IGN1c3RvbUxvZ2luU2VydmljZS5hdXRoTG9nb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gVVRJTFNcclxufVxyXG4iXX0=