ngx-vector-components 2.14.0 → 3.0.2

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 (97) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/assets/styles/_mixins.scss +7 -0
  3. package/assets/styles/_primeng-custom-theme.scss +251 -9
  4. package/assets/styles/_spinner.scss +0 -2
  5. package/assets/styles/_styles.scss +5 -0
  6. package/assets/styles/_variables.scss +1 -11
  7. package/esm2020/lib/components/badge/badge.component.mjs +34 -0
  8. package/esm2020/lib/components/badge/badge.module.mjs +18 -0
  9. package/esm2020/lib/components/badge/index.mjs +3 -0
  10. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +8 -5
  11. package/esm2020/lib/components/crud-base/crud-base.component.mjs +7 -1
  12. package/esm2020/lib/components/crud-footer/crud-footer.component.mjs +1 -1
  13. package/esm2020/lib/components/crud-header/crud-header.component.mjs +30 -0
  14. package/esm2020/lib/components/crud-header/crud-header.module.mjs +19 -0
  15. package/esm2020/lib/components/crud-header/index.mjs +3 -0
  16. package/esm2020/lib/components/crud-history/crud-history.component.mjs +51 -0
  17. package/esm2020/lib/components/crud-history/crud-history.module.mjs +20 -0
  18. package/esm2020/lib/components/crud-history/index.mjs +3 -0
  19. package/esm2020/lib/components/fields/button/button.component.mjs +10 -5
  20. package/esm2020/lib/components/fields/calendar-field/calendar-field.component.mjs +2 -2
  21. package/esm2020/lib/components/fields/currency-field/currency-field.component.mjs +2 -2
  22. package/esm2020/lib/components/fields/data-table/data-table.component.mjs +12 -3
  23. package/esm2020/lib/components/fields/dropdown-field/dropdown-field.component.mjs +11 -7
  24. package/esm2020/lib/components/fields/field-error-message/field-error-message.component.mjs +2 -2
  25. package/esm2020/lib/components/fields/fields.module.mjs +13 -4
  26. package/esm2020/lib/components/fields/filters/filters.component.mjs +18 -6
  27. package/esm2020/lib/components/fields/index.mjs +2 -1
  28. package/esm2020/lib/components/fields/multiselect-field/multiselect-field.component.mjs +2 -2
  29. package/esm2020/lib/components/fields/percentage-field/percentage-field.component.mjs +2 -2
  30. package/esm2020/lib/components/fields/range-value/range-value.component.mjs +2 -2
  31. package/esm2020/lib/components/fields/select-button-field/index.mjs +2 -0
  32. package/esm2020/lib/components/fields/select-button-field/select-button-field.component.mjs +20 -0
  33. package/esm2020/lib/components/fields/text-field/text-field.component.mjs +2 -2
  34. package/esm2020/lib/components/fields/textarea-field/textarea-field.component.mjs +2 -2
  35. package/esm2020/lib/components/generic-error-modal/generic-error-modal.component.mjs +2 -2
  36. package/esm2020/lib/components/generic-modal/generic-modal.component.mjs +3 -3
  37. package/esm2020/lib/components/index.mjs +4 -1
  38. package/esm2020/lib/components/menu/menu.component.mjs +27 -31
  39. package/esm2020/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +3 -3
  40. package/esm2020/lib/components/top-bar/top-bar.component.mjs +2 -2
  41. package/esm2020/lib/guards/crud-list-has-items.guard.mjs +22 -0
  42. package/esm2020/lib/guards/index.mjs +2 -1
  43. package/esm2020/lib/models/crud-history.model.mjs +9 -0
  44. package/esm2020/lib/models/index.mjs +2 -1
  45. package/esm2020/lib/models/ip-info.enum.mjs +2 -0
  46. package/esm2020/lib/models/view.enum.mjs +2 -1
  47. package/esm2020/lib/pipes/format-document.pipe.mjs +17 -0
  48. package/esm2020/lib/pipes/index.mjs +2 -1
  49. package/esm2020/lib/pipes/pipes.module.mjs +5 -4
  50. package/esm2020/lib/resolvers/get-entity-history.resolver.mjs +22 -0
  51. package/esm2020/lib/resolvers/get-selected-crud-item.resolver.mjs +28 -0
  52. package/esm2020/lib/resolvers/index.mjs +3 -0
  53. package/esm2020/lib/services/crud-base.service.mjs +2 -1
  54. package/esm2020/lib/services/geolocation.service.mjs +3 -3
  55. package/esm2020/lib/services/menu.service.mjs +4 -2
  56. package/esm2020/public-api.mjs +2 -1
  57. package/fesm2015/ngx-vector-components.mjs +1526 -1227
  58. package/fesm2015/ngx-vector-components.mjs.map +1 -1
  59. package/fesm2020/ngx-vector-components.mjs +1499 -1203
  60. package/fesm2020/ngx-vector-components.mjs.map +1 -1
  61. package/lib/components/badge/badge.component.d.ts +14 -0
  62. package/lib/components/badge/badge.module.d.ts +8 -0
  63. package/lib/components/badge/index.d.ts +2 -0
  64. package/lib/components/breadcrumb/breadcrumb.component.d.ts +2 -1
  65. package/lib/components/crud-base/crud-base.component.d.ts +2 -0
  66. package/lib/components/crud-header/crud-header.component.d.ts +11 -0
  67. package/lib/components/crud-header/crud-header.module.d.ts +9 -0
  68. package/lib/components/crud-header/index.d.ts +2 -0
  69. package/lib/components/crud-history/crud-history.component.d.ts +10 -0
  70. package/lib/components/crud-history/crud-history.module.d.ts +10 -0
  71. package/lib/components/crud-history/index.d.ts +2 -0
  72. package/lib/components/fields/button/button.component.d.ts +4 -5
  73. package/lib/components/fields/data-table/data-table.component.d.ts +4 -1
  74. package/lib/components/fields/dropdown-field/dropdown-field.component.d.ts +3 -1
  75. package/lib/components/fields/fields.module.d.ts +24 -22
  76. package/lib/components/fields/filters/filters.component.d.ts +7 -3
  77. package/lib/components/fields/index.d.ts +1 -0
  78. package/lib/components/fields/select-button-field/index.d.ts +1 -0
  79. package/lib/components/fields/select-button-field/select-button-field.component.d.ts +9 -0
  80. package/lib/components/index.d.ts +3 -0
  81. package/lib/guards/crud-list-has-items.guard.d.ts +10 -0
  82. package/lib/guards/index.d.ts +1 -0
  83. package/lib/models/crud-history.model.d.ts +11 -0
  84. package/lib/models/index.d.ts +1 -0
  85. package/lib/models/{ipInfo.d.ts → ip-info.enum.d.ts} +1 -1
  86. package/lib/models/view.enum.d.ts +2 -1
  87. package/lib/pipes/format-document.pipe.d.ts +7 -0
  88. package/lib/pipes/index.d.ts +1 -0
  89. package/lib/pipes/pipes.module.d.ts +2 -1
  90. package/lib/resolvers/get-entity-history.resolver.d.ts +11 -0
  91. package/lib/resolvers/get-selected-crud-item.resolver.d.ts +10 -0
  92. package/lib/resolvers/index.d.ts +2 -0
  93. package/lib/services/crud-base.service.d.ts +1 -0
  94. package/lib/services/geolocation.service.d.ts +2 -2
  95. package/package.json +1 -1
  96. package/public-api.d.ts +1 -0
  97. package/esm2020/lib/models/ipInfo.mjs +0 -2
@@ -1,47 +1,51 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, Component, Inject, NgModule, EventEmitter, Input, Output, Injectable, ViewChild, HostListener } from '@angular/core';
3
- import * as i2 from '@angular/router';
4
- import { NavigationEnd } from '@angular/router';
5
- import { Subscription, BehaviorSubject, Subject, throwError } from 'rxjs';
6
- import * as i2$1 from '@angular/common';
2
+ import { Component, Input, Pipe, NgModule, Inject, EventEmitter, Output, Injectable, ViewChild, HostListener } from '@angular/core';
3
+ import * as i2 from '@angular/common';
7
4
  import { CommonModule } from '@angular/common';
8
- import * as i2$7 from 'primeng/tooltip';
5
+ import * as i2$9 from 'primeng/tooltip';
9
6
  import { TooltipModule } from 'primeng/tooltip';
10
- import * as i4 from '@angular/forms';
7
+ import { saveAs } from 'file-saver';
8
+ import * as i2$1 from '@angular/router';
9
+ import { NavigationEnd } from '@angular/router';
10
+ import { Subscription, BehaviorSubject, Subject, throwError } from 'rxjs';
11
+ import * as i2$4 from '@angular/forms';
11
12
  import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
12
13
  import * as i1 from 'primeng/button';
13
14
  import { ButtonModule } from 'primeng/button';
14
- import * as i1$6 from 'primeng/autocomplete';
15
+ import * as i2$6 from 'primeng/autocomplete';
15
16
  import { AutoCompleteModule } from 'primeng/autocomplete';
16
17
  import * as i2$3 from 'primeng/calendar';
17
18
  import { CalendarModule } from 'primeng/calendar';
18
19
  import * as i1$4 from 'primeng/checkbox';
19
20
  import { CheckboxModule } from 'primeng/checkbox';
20
- import * as i2$6 from 'primeng/dialog';
21
+ import * as i2$8 from 'primeng/dialog';
21
22
  import { DialogModule } from 'primeng/dialog';
23
+ import * as i1$6 from 'primeng/dropdown';
22
24
  import { DropdownModule } from 'primeng/dropdown';
23
25
  import { FileUploadModule } from 'primeng/fileupload';
24
- import * as i2$4 from 'primeng/inputmask';
26
+ import * as i2$5 from 'primeng/inputmask';
25
27
  import { InputMaskModule } from 'primeng/inputmask';
26
28
  import * as i1$5 from 'primeng/inputnumber';
27
29
  import { InputNumberModule } from 'primeng/inputnumber';
28
30
  import * as i6 from 'primeng/inputtext';
29
31
  import { InputTextModule } from 'primeng/inputtext';
30
- import * as i2$5 from 'primeng/inputtextarea';
32
+ import * as i2$7 from 'primeng/inputtextarea';
31
33
  import { InputTextareaModule } from 'primeng/inputtextarea';
32
34
  import * as i7 from 'primeng/keyfilter';
33
35
  import { KeyFilterModule } from 'primeng/keyfilter';
34
36
  import * as i6$1 from 'primeng/menu';
35
37
  import { MenuModule as MenuModule$1 } from 'primeng/menu';
36
- import * as i1$7 from 'primeng/multiselect';
38
+ import * as i1$8 from 'primeng/multiselect';
37
39
  import { MultiSelectModule } from 'primeng/multiselect';
38
- import * as i1$8 from 'primeng/radiobutton';
40
+ import * as i1$9 from 'primeng/radiobutton';
39
41
  import { RadioButtonModule } from 'primeng/radiobutton';
40
- import * as i1$9 from 'primeng/slider';
42
+ import * as i1$7 from 'primeng/selectbutton';
43
+ import { SelectButtonModule } from 'primeng/selectbutton';
44
+ import * as i1$a from 'primeng/slider';
41
45
  import { SliderModule } from 'primeng/slider';
42
46
  import * as i5 from 'primeng/table';
43
47
  import { TableModule } from 'primeng/table';
44
- import * as i4$1 from 'primeng/tabview';
48
+ import * as i4 from 'primeng/tabview';
45
49
  import { TabViewModule } from 'primeng/tabview';
46
50
  import * as i1$1 from 'primeng/panel';
47
51
  import { PanelModule as PanelModule$1 } from 'primeng/panel';
@@ -51,164 +55,35 @@ import * as i1$2 from '@angular/common/http';
51
55
  import { HttpHeaders, HttpClient, HttpResponse } from '@angular/common/http';
52
56
  import { tap, map, debounceTime, catchError, switchMap, filter, take } from 'rxjs/operators';
53
57
  import * as i1$3 from '@ngx-translate/core';
54
- import { saveAs } from 'file-saver';
58
+ import * as i1$b from 'primeng/accordion';
59
+ import { AccordionModule } from 'primeng/accordion';
55
60
  import { trigger, state, style, transition, animate } from '@angular/animations';
56
- import * as i4$2 from 'primeng/overlaypanel';
61
+ import * as i4$1 from 'primeng/overlaypanel';
57
62
  import { OverlayPanelModule } from 'primeng/overlaypanel';
58
63
 
59
- class RemoveLastChildPipe {
60
- transform(value) {
61
- const newArray = [...value];
62
- newArray.pop();
63
- return newArray;
64
- }
65
- }
66
- RemoveLastChildPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
67
- RemoveLastChildPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, name: "removeLastChild" });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, decorators: [{
69
- type: Pipe,
70
- args: [{
71
- name: 'removeLastChild',
72
- }]
73
- }] });
74
-
75
- class BreadcrumbComponent {
76
- constructor(router, environment, menuOptions) {
77
- this.router = router;
78
- this.environment = environment;
79
- this.menuOptions = menuOptions;
80
- this.appName = this.environment.appName;
81
- this.routeFragments = [];
82
- this.subscription = new Subscription();
83
- }
84
- ngOnInit() {
85
- this.subscription.add(this.router.events.subscribe((event) => {
86
- if (event instanceof NavigationEnd) {
87
- this.routeFragments = [];
88
- let url = event.urlAfterRedirects.replace('/', '');
89
- if (url.includes('?')) {
90
- url = url.substring(0, url.indexOf('?'));
91
- }
92
- this.extractRouteFragmentsFromMenu(url, this.menuOptions);
93
- }
94
- }));
95
- }
96
- ngOnDestroy() {
97
- this.subscription.unsubscribe();
98
- }
99
- extractRouteFragmentsFromMenu(url, currentChildren) {
100
- let foundItem = false;
101
- for (let i = 0; i < currentChildren.length; i++) {
102
- if (currentChildren[i].route) {
103
- if (currentChildren[i].route && url.startsWith(currentChildren[i].route || '')) {
104
- this.routeFragments = [currentChildren[i].label];
105
- foundItem = true;
106
- }
107
- }
108
- if (currentChildren[i].children && this.extractRouteFragmentsFromMenu(url, currentChildren[i].children || [])) {
109
- this.routeFragments = [currentChildren[i].label].concat(this.routeFragments);
110
- foundItem = true;
111
- break;
112
- }
113
- }
114
- return foundItem;
115
- }
116
- }
117
- BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i2.Router }, { token: 'environment' }, { token: 'menuOptions' }], target: i0.ɵɵFactoryTarget.Component });
118
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: BreadcrumbComponent, selector: "vector-breadcrumb", ngImport: i0, template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;flex-wrap:wrap;color:var(--gray-dark)}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:700;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center;margin:2.5px}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:var(--success-color)}\n"], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "removeLastChild": RemoveLastChildPipe } });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, decorators: [{
120
- type: Component,
121
- args: [{ selector: 'vector-breadcrumb', template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;flex-wrap:wrap;color:var(--gray-dark)}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:700;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center;margin:2.5px}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:var(--success-color)}\n"] }]
122
- }], ctorParameters: function () { return [{ type: i2.Router }, { type: undefined, decorators: [{
123
- type: Inject,
124
- args: ['environment']
125
- }] }, { type: undefined, decorators: [{
126
- type: Inject,
127
- args: ['menuOptions']
128
- }] }]; } });
129
-
130
- class CurrencyBrlPipe {
131
- transform(value = 0) {
132
- if (!value)
133
- value = 0;
134
- return `${value.toLocaleString('pt-BR', { currency: 'BRL', minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
135
- }
136
- }
137
- CurrencyBrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
138
- CurrencyBrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, name: "currencyBrl" });
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, decorators: [{
140
- type: Pipe,
141
- args: [{
142
- name: 'currencyBrl',
143
- }]
144
- }] });
145
-
146
- class NotHiddenPipe {
147
- transform(value) {
148
- return value?.filter((item) => !item.hidden) || [];
149
- }
150
- }
151
- NotHiddenPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
152
- NotHiddenPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, name: "notHidden" });
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, decorators: [{
154
- type: Pipe,
155
- args: [{
156
- name: 'notHidden',
157
- }]
158
- }] });
159
-
160
- class OnlyActivePipe {
161
- transform(value) {
162
- return value?.filter((item) => item.active) || [];
163
- }
164
- }
165
- OnlyActivePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
166
- OnlyActivePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, name: "onlyActive" });
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, decorators: [{
168
- type: Pipe,
169
- args: [{
170
- name: 'onlyActive',
171
- }]
172
- }] });
173
-
174
- class PipesModule {
175
- }
176
- PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
177
- PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, declarations: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe], exports: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe] });
178
- PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule });
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, decorators: [{
180
- type: NgModule,
181
- args: [{
182
- declarations: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe],
183
- exports: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe],
184
- }]
185
- }] });
64
+ var AppName;
65
+ (function (AppName) {
66
+ AppName["PORTAL"] = "PORTAL";
67
+ AppName["FINTECH"] = "FINTECH";
68
+ AppName["MARKETPLACE"] = "MARKETPLACE";
69
+ AppName["LOGTECH"] = "LOGTECH";
70
+ AppName["SURVEY"] = "SURVEY";
71
+ })(AppName || (AppName = {}));
186
72
 
187
- class SharedModule {
188
- }
189
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
190
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, exports: [CommonModule, TooltipModule, PipesModule] });
191
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, imports: [CommonModule, TooltipModule, PipesModule] });
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, decorators: [{
193
- type: NgModule,
194
- args: [{
195
- exports: [CommonModule, TooltipModule, PipesModule],
196
- }]
197
- }] });
73
+ var BooleanType;
74
+ (function (BooleanType) {
75
+ BooleanType["YES"] = "YES";
76
+ BooleanType["NO"] = "NO";
77
+ })(BooleanType || (BooleanType = {}));
198
78
 
199
- class BreadcrumbModule {
79
+ class CrudHistory {
200
80
  }
201
- BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
202
- BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent], imports: [SharedModule], exports: [BreadcrumbComponent] });
203
- BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, imports: [[SharedModule]] });
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, decorators: [{
205
- type: NgModule,
206
- args: [{
207
- declarations: [BreadcrumbComponent],
208
- exports: [BreadcrumbComponent],
209
- imports: [SharedModule],
210
- }]
211
- }] });
81
+ var CrudHistoryEventType;
82
+ (function (CrudHistoryEventType) {
83
+ CrudHistoryEventType[CrudHistoryEventType["CREATE"] = 0] = "CREATE";
84
+ CrudHistoryEventType[CrudHistoryEventType["UPDATE"] = 1] = "UPDATE";
85
+ CrudHistoryEventType[CrudHistoryEventType["DELETE"] = 2] = "DELETE";
86
+ })(CrudHistoryEventType || (CrudHistoryEventType = {}));
212
87
 
213
88
  var CrudMode;
214
89
  (function (CrudMode) {
@@ -217,312 +92,21 @@ var CrudMode;
217
92
  CrudMode[CrudMode["VIEW"] = 2] = "VIEW";
218
93
  })(CrudMode || (CrudMode = {}));
219
94
 
220
- class CrudBaseComponent {
221
- constructor(activatedRoute) {
222
- this.activatedRoute = activatedRoute;
223
- this.crudMode = CrudMode.NEW;
224
- this.isReadonly = false;
225
- this.form = new FormGroup({});
226
- this.subscription = new Subscription();
227
- this.crudMode = this.getCrudModeByRoute(this.activatedRoute.snapshot.url[0].path);
228
- this.isReadonly = this.crudMode === CrudMode.VIEW;
229
- }
230
- ngOnDestroy() {
231
- this.subscription.unsubscribe();
232
- }
233
- getCrudModeByRoute(route) {
234
- switch (route) {
235
- case 'new':
236
- return CrudMode.NEW;
237
- case 'edit':
238
- return CrudMode.EDIT;
239
- case 'view':
240
- return CrudMode.VIEW;
241
- default:
242
- return CrudMode.NEW;
243
- }
244
- }
245
- }
246
- CrudBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudBaseComponent, deps: [{ token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
247
- CrudBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudBaseComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudBaseComponent, decorators: [{
249
- type: Component,
250
- args: [{
251
- template: '',
252
- }]
253
- }], ctorParameters: function () { return [{ type: i2.ActivatedRoute }]; } });
95
+ var TableColumnType;
96
+ (function (TableColumnType) {
97
+ TableColumnType["TEXT"] = "TEXT";
98
+ TableColumnType["BOOLEAN"] = "BOOLEAN";
99
+ TableColumnType["DATETIME"] = "DATETIME";
100
+ TableColumnType["ENUM"] = "ENUM";
101
+ TableColumnType["STATUS_BADGE"] = "STATUS_BADGE";
102
+ TableColumnType["ACTIVE_BOOLEAN_BADGE"] = "ACTIVE_BOOLEAN_BADGE";
103
+ })(TableColumnType || (TableColumnType = {}));
254
104
 
255
- class ButtonComponent {
256
- constructor() {
257
- this.disabled = false;
258
- this.label = '';
259
- this.type = 'default';
260
- this.leftIcon = '';
261
- this.noShadow = false;
262
- this.onClick = new EventEmitter();
263
- }
264
- get styleClass() {
265
- return { [this.type]: true, 'no-shadow': this.noShadow };
266
- }
267
- }
268
- ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ButtonComponent, selector: "vector-button", inputs: { disabled: "disabled", label: "label", type: "type", leftIcon: "leftIcon", noShadow: "noShadow" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.button{width:100%;border-width:2px;border-radius:var(--border-radius);background-color:var(--theme-dark);border-color:var(--theme-dark);color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:var(--theme-dark);color:var(--theme-dark)}.default:hover:not(:disabled){background-color:var(--theme-dark);border-color:var(--theme-dark);color:#fff}.default-filled{background-color:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.default-filled:hover:not(:disabled){background-color:var(--theme-dark);border-color:var(--theme-dark)}.cancel{background-color:#fff;border-color:var(--error-color);color:var(--error-color)}.cancel:hover:not(:disabled){background-color:var(--error-color-dark);border-color:var(--error-color-dark);color:#fff}.cancel-filled{background-color:var(--error-color);border-color:var(--error-color);color:#fff}.cancel-filled:hover:not(:disabled){background-color:var(--error-color-dark);border-color:var(--error-color-dark)}.success{background-color:var(--success-color);border-color:var(--success-color)}.success:hover:not(:disabled){background-color:var(--success-color-dark);border-color:var(--success-color-dark)}.success-outlined{background-color:#fff;border-color:var(--success-color);color:var(--success-color)}.success-outlined:hover:not(:disabled){background-color:var(--success-color-dark);border-color:var(--success-color-dark)}\n"], directives: [{ type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, decorators: [{
271
- type: Component,
272
- args: [{ selector: 'vector-button', template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.button{width:100%;border-width:2px;border-radius:var(--border-radius);background-color:var(--theme-dark);border-color:var(--theme-dark);color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:var(--theme-dark);color:var(--theme-dark)}.default:hover:not(:disabled){background-color:var(--theme-dark);border-color:var(--theme-dark);color:#fff}.default-filled{background-color:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.default-filled:hover:not(:disabled){background-color:var(--theme-dark);border-color:var(--theme-dark)}.cancel{background-color:#fff;border-color:var(--error-color);color:var(--error-color)}.cancel:hover:not(:disabled){background-color:var(--error-color-dark);border-color:var(--error-color-dark);color:#fff}.cancel-filled{background-color:var(--error-color);border-color:var(--error-color);color:#fff}.cancel-filled:hover:not(:disabled){background-color:var(--error-color-dark);border-color:var(--error-color-dark)}.success{background-color:var(--success-color);border-color:var(--success-color)}.success:hover:not(:disabled){background-color:var(--success-color-dark);border-color:var(--success-color-dark)}.success-outlined{background-color:#fff;border-color:var(--success-color);color:var(--success-color)}.success-outlined:hover:not(:disabled){background-color:var(--success-color-dark);border-color:var(--success-color-dark)}\n"] }]
273
- }], propDecorators: { disabled: [{
274
- type: Input
275
- }], label: [{
276
- type: Input
277
- }], type: [{
278
- type: Input
279
- }], leftIcon: [{
280
- type: Input
281
- }], noShadow: [{
282
- type: Input
283
- }], onClick: [{
284
- type: Output
285
- }] } });
286
-
287
- class CrudFooterComponent {
288
- constructor() {
289
- this.submitDisabled = false;
290
- this.submitHidden = false;
291
- this.onGoBack = new EventEmitter();
292
- this.onSubmit = new EventEmitter();
293
- }
294
- ngOnInit() { }
295
- }
296
- CrudFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
297
- CrudFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudFooterComponent, selector: "vector-crud-footer", inputs: { submitDisabled: "submitDisabled", submitHidden: "submitHidden" }, outputs: { onGoBack: "onGoBack", onSubmit: "onSubmit" }, ngImport: i0, template: "<div class=\"footer-container shadow-3\">\r\n <div class=\"button\">\r\n <vector-button label=\"Voltar\" (onClick)=\"onGoBack.emit()\"></vector-button>\r\n </div>\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n label=\"Salvar\"\r\n type=\"success\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".footer-container{position:fixed;bottom:0px;left:0px;background-color:#f5f5f5;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;width:100%;height:60px}.footer-container .button{margin-right:10px}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudFooterComponent, decorators: [{
299
- type: Component,
300
- args: [{ selector: 'vector-crud-footer', template: "<div class=\"footer-container shadow-3\">\r\n <div class=\"button\">\r\n <vector-button label=\"Voltar\" (onClick)=\"onGoBack.emit()\"></vector-button>\r\n </div>\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n label=\"Salvar\"\r\n type=\"success\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".footer-container{position:fixed;bottom:0px;left:0px;background-color:#f5f5f5;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;width:100%;height:60px}.footer-container .button{margin-right:10px}\n"] }]
301
- }], ctorParameters: function () { return []; }, propDecorators: { submitDisabled: [{
302
- type: Input
303
- }], submitHidden: [{
304
- type: Input
305
- }], onGoBack: [{
306
- type: Output
307
- }], onSubmit: [{
308
- type: Output
309
- }] } });
310
-
311
- class PanelComponent {
312
- constructor() { }
313
- ngOnInit() { }
314
- }
315
- PanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
316
- PanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: PanelComponent, selector: "vector-panel", ngImport: i0, template: "<p-panel [showHeader]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\r\n></p-panel>\r\n", styles: [""], components: [{ type: i1$1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }], directives: [{ type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelComponent, decorators: [{
318
- type: Component,
319
- args: [{ selector: 'vector-panel', template: "<p-panel [showHeader]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\r\n></p-panel>\r\n", styles: [""] }]
320
- }], ctorParameters: function () { return []; } });
321
-
322
- class PanelModule {
323
- }
324
- PanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
325
- PanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, declarations: [PanelComponent], imports: [SharedModule, PanelModule$1], exports: [PanelComponent] });
326
- PanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, imports: [[SharedModule, PanelModule$1]] });
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, decorators: [{
328
- type: NgModule,
329
- args: [{
330
- declarations: [PanelComponent],
331
- exports: [PanelComponent],
332
- imports: [SharedModule, PanelModule$1],
333
- }]
334
- }] });
335
-
336
- class AuthService {
337
- constructor(http, storageService, profileService, activatedRoute, environment) {
338
- this.http = http;
339
- this.storageService = storageService;
340
- this.profileService = profileService;
341
- this.activatedRoute = activatedRoute;
342
- this.environment = environment;
343
- this.role$ = new BehaviorSubject(this.storageService.getRole());
344
- this.parentWindowUrl = '';
345
- this.subscription = new Subscription();
346
- this.baseUrl = this.environment.API_URL.endsWith('/api') ? 'Auth' : 'api/Auth';
347
- this.subscription.add(this.activatedRoute.queryParams.subscribe((params) => {
348
- if (params['parent']) {
349
- this.parentWindowUrl = decodeURIComponent(params['parent']);
350
- }
351
- }));
352
- }
353
- getTokenByGuid(tokenGuid) {
354
- return this.http.get(`${this.baseUrl}/TemporaryAccessToken/${tokenGuid}`).pipe(tap((response) => {
355
- this.storageService.setToken(response.accessToken);
356
- this.storageService.setUsername(response.userName);
357
- this.storageService.setRefreshToken(response.refreshToken);
358
- this.profileService.getUserProfile();
359
- }));
360
- }
361
- getTokenByRefreshToken(refreshToken) {
362
- const headers = new HttpHeaders()
363
- .set('Content-Type', 'application/x-www-form-urlencoded')
364
- .set('no-spinner', 'true');
365
- return this.http
366
- .post(`connect/token`, `username=${this.storageService.getUsername()}&grant_type=refresh_token&refresh_token=${refreshToken}`, { headers })
367
- .pipe(tap((response) => {
368
- if (response?.access_token && response?.refresh_token) {
369
- this.storageService.setToken(`Bearer ${response.access_token}`);
370
- this.storageService.setRefreshToken(response.refresh_token);
371
- }
372
- }));
373
- }
374
- generateTokenGuid() {
375
- return this.http
376
- .post(`${this.baseUrl}/TemporaryAccessToken/generate`, {
377
- RefreshToken: this.storageService.getRefreshToken(),
378
- })
379
- .pipe(map((response) => response?.accessToken || ''));
380
- }
381
- logout() {
382
- this.storageService.clear();
383
- if (window.parent == window) {
384
- window.location.href = this.environment.PORTAL_URL;
385
- }
386
- else {
387
- window.parent.postMessage({ logout: true }, this.parentWindowUrl);
388
- }
389
- }
390
- }
391
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, deps: [{ token: i1$2.HttpClient }, { token: StorageService }, { token: ProfileService }, { token: i2.ActivatedRoute }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
392
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, providedIn: 'root' });
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, decorators: [{
394
- type: Injectable,
395
- args: [{ providedIn: 'root' }]
396
- }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: StorageService }, { type: ProfileService }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
397
- type: Inject,
398
- args: ['environment']
399
- }] }]; } });
400
-
401
- class CrudBaseService {
402
- constructor() {
403
- this.dataset$ = new BehaviorSubject({
404
- data: [],
405
- draw: 0,
406
- recordsFiltered: 0,
407
- recordsTotal: 0,
408
- });
409
- this.flatUnpagedDataset$ = new BehaviorSubject([]);
410
- }
411
- }
412
-
413
- class EnumService {
414
- constructor(translateService) {
415
- this.translateService = translateService;
416
- }
417
- getTranslatedListItemsFromEnum(enumType, enumName) {
418
- return this.getEnumTranslations(enumName).pipe(map((enumTranslations) => {
419
- return Object.keys(enumType)
420
- .filter((item) => isNaN(+item))
421
- .map((item) => {
422
- return {
423
- name: enumTranslations[item],
424
- code: enumType[item],
425
- };
426
- });
427
- }));
428
- }
429
- getEnumTranslations(enumName) {
430
- return this.translateService.get('enums').pipe(map((translations) => {
431
- return translations[enumName];
432
- }));
433
- }
434
- getListItemsFromEnum(enumType) {
435
- return Object.keys(enumType)
436
- .filter((item) => isNaN(+item))
437
- .map((item) => {
438
- return {
439
- name: enumType[item],
440
- code: enumType[item],
441
- };
442
- });
443
- }
444
- }
445
- EnumService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, deps: [{ token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
446
- EnumService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, providedIn: 'root' });
447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, decorators: [{
448
- type: Injectable,
449
- args: [{ providedIn: 'root' }]
450
- }], ctorParameters: function () { return [{ type: i1$3.TranslateService }]; } });
451
-
452
- class ErrorMessageService {
453
- constructor() {
454
- this.hasToken$ = new Subject();
455
- this.genericModalErrorMessage$ = new Subject();
456
- }
457
- }
458
- ErrorMessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
459
- ErrorMessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, providedIn: 'root' });
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, decorators: [{
461
- type: Injectable,
462
- args: [{ providedIn: 'root' }]
463
- }] });
464
-
465
- class GeolocationService {
466
- constructor(http, backend) {
467
- this.http = http;
468
- this.backend = backend;
469
- this.customHttpClient = new HttpClient(backend);
470
- }
471
- getGeoLoc() {
472
- return this.customHttpClient.get("http://api.ipify.org/?format=json");
473
- }
474
- createUserLoginInfo(userInfo) {
475
- return this.http.post(`Telemetry/CreateUserLogInfo`, userInfo);
476
- }
477
- }
478
- GeolocationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, deps: [{ token: i1$2.HttpClient }, { token: i1$2.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable });
479
- GeolocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService });
480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, decorators: [{
481
- type: Injectable
482
- }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1$2.HttpBackend }]; } });
483
-
484
- class LoadingService {
485
- constructor() {
486
- this.loading$ = new Subject();
487
- }
488
- }
489
- LoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
490
- LoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, providedIn: 'root' });
491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, decorators: [{
492
- type: Injectable,
493
- args: [{ providedIn: 'root' }]
494
- }] });
495
-
496
- var AppName;
497
- (function (AppName) {
498
- AppName["PORTAL"] = "PORTAL";
499
- AppName["FINTECH"] = "FINTECH";
500
- AppName["MARKETPLACE"] = "MARKETPLACE";
501
- AppName["LOGTECH"] = "LOGTECH";
502
- AppName["SURVEY"] = "SURVEY";
503
- })(AppName || (AppName = {}));
504
-
505
- var BooleanType;
506
- (function (BooleanType) {
507
- BooleanType["YES"] = "YES";
508
- BooleanType["NO"] = "NO";
509
- })(BooleanType || (BooleanType = {}));
510
-
511
- var TableColumnType;
512
- (function (TableColumnType) {
513
- TableColumnType["TEXT"] = "TEXT";
514
- TableColumnType["BOOLEAN"] = "BOOLEAN";
515
- TableColumnType["DATETIME"] = "DATETIME";
516
- TableColumnType["ENUM"] = "ENUM";
517
- TableColumnType["STATUS_BADGE"] = "STATUS_BADGE";
518
- TableColumnType["ACTIVE_BOOLEAN_BADGE"] = "ACTIVE_BOOLEAN_BADGE";
519
- })(TableColumnType || (TableColumnType = {}));
520
-
521
- var DocumentType;
522
- (function (DocumentType) {
523
- DocumentType[DocumentType["CPF"] = 0] = "CPF";
524
- DocumentType[DocumentType["CNPJ"] = 1] = "CNPJ";
525
- })(DocumentType || (DocumentType = {}));
105
+ var DocumentType;
106
+ (function (DocumentType) {
107
+ DocumentType[DocumentType["CPF"] = 0] = "CPF";
108
+ DocumentType[DocumentType["CNPJ"] = 1] = "CNPJ";
109
+ })(DocumentType || (DocumentType = {}));
526
110
 
527
111
  var MessageStatus;
528
112
  (function (MessageStatus) {
@@ -669,797 +253,1304 @@ var View;
669
253
  (function (View) {
670
254
  View[View["HOME"] = 0] = "HOME";
671
255
  View[View["ADMIN"] = 1] = "ADMIN";
256
+ View[View["DIGITAL_CARRIER"] = 2] = "DIGITAL_CARRIER";
672
257
  })(View || (View = {}));
673
258
 
674
- class MenuService {
675
- constructor(authService, router, storageService, profileService, environment, menuOptions, appName) {
676
- this.authService = authService;
677
- this.router = router;
678
- this.storageService = storageService;
679
- this.profileService = profileService;
680
- this.environment = environment;
681
- this.menuOptions = menuOptions;
682
- this.appName = appName;
683
- this.toggleMenu$ = new Subject();
684
- this.menuOpened$ = new Subject();
685
- this.frameUrl$ = new Subject();
686
- this.menuNotifications = {};
259
+ class BadgeComponent {
260
+ constructor() { }
261
+ ngOnInit() { }
262
+ getStatusColor() {
263
+ switch (this.type) {
264
+ case Status.PENDING:
265
+ return 'badge-warning';
266
+ case Status.APPROVED:
267
+ return 'badge-success';
268
+ case Status.REJECTED:
269
+ return 'badge-error';
270
+ }
271
+ return '';
687
272
  }
688
- getSideMainMenuOptions() {
689
- return this.menuOptions
690
- .filter((menu) => !menu.view && !menu.hidden && this.profileService.userHasPermission(menu.permission))
691
- .map((menu) => this.removeHiddenChildren(menu))
692
- .filter((menu) => !menu.hidden)
693
- .map((menu, index) => this.generateId(menu, index));
273
+ }
274
+ BadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
275
+ BadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: BadgeComponent, selector: "vector-badge", inputs: { type: "type", label: "label", customColor: "customColor", customBackgroundColor: "customBackgroundColor" }, ngImport: i0, template: "<div\r\n class=\"badge\"\r\n [class]=\"getStatusColor()\"\r\n [ngStyle]=\"{ 'background-color': customBackgroundColor, color: customColor }\"\r\n>\r\n {{ label }}\r\n</div>\r\n", styles: [".badge{padding:4px 12px;border-radius:8px;color:#fff}.badge-success{background-color:var(--success-color)}.badge-error{background-color:var(--error-color)}.badge-warning{background-color:var(--warning-color)}\n"], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeComponent, decorators: [{
277
+ type: Component,
278
+ args: [{ selector: 'vector-badge', template: "<div\r\n class=\"badge\"\r\n [class]=\"getStatusColor()\"\r\n [ngStyle]=\"{ 'background-color': customBackgroundColor, color: customColor }\"\r\n>\r\n {{ label }}\r\n</div>\r\n", styles: [".badge{padding:4px 12px;border-radius:8px;color:#fff}.badge-success{background-color:var(--success-color)}.badge-error{background-color:var(--error-color)}.badge-warning{background-color:var(--warning-color)}\n"] }]
279
+ }], ctorParameters: function () { return []; }, propDecorators: { type: [{
280
+ type: Input
281
+ }], label: [{
282
+ type: Input
283
+ }], customColor: [{
284
+ type: Input
285
+ }], customBackgroundColor: [{
286
+ type: Input
287
+ }] } });
288
+
289
+ class CurrencyBrlPipe {
290
+ transform(value = 0) {
291
+ if (!value)
292
+ value = 0;
293
+ return `${value.toLocaleString('pt-BR', { currency: 'BRL', minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
694
294
  }
695
- getSideAdminMenuOptions() {
696
- return this.menuOptions
697
- .filter((menu) => menu.view === View.ADMIN && !menu.hidden && this.profileService.userHasPermission(menu.permission))
698
- .map((menu) => this.removeHiddenChildren(menu))
699
- .filter((menu) => !menu.hidden)
700
- .map((menu, index) => this.generateId(menu, index));
701
- }
702
- navigateToPortal(params) {
703
- this.authService.generateTokenGuid().subscribe((tokenGuid) => {
704
- const userId = this.storageService.getUserId();
705
- switch (this.appName) {
706
- case AppName.FINTECH:
707
- this.handleFintechRedirects(params, tokenGuid, userId);
708
- break;
709
- case AppName.MARKETPLACE:
710
- this.handleMarketplaceRedirects(params, tokenGuid, userId);
711
- break;
712
- case AppName.LOGTECH:
713
- this.handleLogtechRedirects(params, tokenGuid, userId);
714
- break;
715
- }
716
- this.storageService.clear();
717
- });
718
- }
719
- addMenuNotification(menuId) {
720
- this.updateMenuNotifications(menuId, (this.menuNotifications[menuId] || 0) + 1);
721
- }
722
- subtractMenuNotification(menuId) {
723
- this.updateMenuNotifications(menuId, this.menuNotifications[menuId] ? this.menuNotifications[menuId] - 1 : 0);
724
- }
725
- updateMenuNotifications(menuId, notificationsCount) {
726
- this.menuNotifications[menuId] = notificationsCount;
727
- }
728
- removeHiddenChildren(menu) {
729
- const newMenu = { ...menu };
730
- const hadChildren = !!newMenu.children?.length;
731
- newMenu.children = newMenu.children
732
- ?.filter((child) => !child.hidden && this.profileService.userHasPermission(child.permission))
733
- .map((menu) => this.removeHiddenChildren(menu))
734
- .filter((child) => !child.hidden);
735
- if (hadChildren &&
736
- !newMenu.children?.length &&
737
- !newMenu.route &&
738
- !newMenu.frameUrl &&
739
- !newMenu.externalUrl &&
740
- !newMenu.command) {
741
- newMenu.hidden = true;
295
+ }
296
+ CurrencyBrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
297
+ CurrencyBrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, name: "currencyBrl" });
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyBrlPipe, decorators: [{
299
+ type: Pipe,
300
+ args: [{
301
+ name: 'currencyBrl',
302
+ }]
303
+ }] });
304
+
305
+ class FileUtil {
306
+ static getBlob(base64StringData, mimeType) {
307
+ const decodedData = atob(base64StringData);
308
+ const byteNumbers = new Array(decodedData.length);
309
+ for (let i = 0; i < decodedData.length; i++) {
310
+ byteNumbers[i] = decodedData.charCodeAt(i);
742
311
  }
743
- return newMenu;
312
+ return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });
744
313
  }
745
- generateId(menu, index, parentId = '') {
746
- menu.id = `${parentId}${index}`;
747
- menu.children = menu.children?.map((child, childIndex) => this.generateId(child, childIndex, menu.id));
748
- return menu;
314
+ static downloadFile(mimeType, base64StringData, fileName) {
315
+ saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);
749
316
  }
750
- handleFintechRedirects(params, tokenGuid, userId) {
751
- if (params.portal === 'fintech') {
752
- this.router.navigate([''], {
753
- queryParams: { Token: tokenGuid, role: params.admin ? btoa('ADMIN') : '', userId },
754
- });
755
- }
756
- else {
757
- let url = params.portal === 'marketplace' ? this.environment.MARKETPLACE_URL : this.environment.LOGITECH_URL;
758
- url += `?Token=${tokenGuid}&userId=${userId}`;
759
- if (params.admin) {
760
- url += `&role=${btoa('ADMIN')}`;
761
- }
762
- window.location.href = url;
317
+ }
318
+
319
+ const CPF_PATTERN = '###.###.###-##';
320
+ const CNPJ_PATTERN = '##.###.###/####-##';
321
+ const BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ##############';
322
+ const POSTALCODE_PATTERN = '#####-###';
323
+ const CELLPHONE_PATTERN = '(##) #####-####';
324
+ const PHONE_PATTERN = '(##) ####-####';
325
+ class MaskUtil {
326
+ static formatDocument(stringValue) {
327
+ if (!stringValue) {
328
+ return '';
763
329
  }
764
- }
765
- handleMarketplaceRedirects(params, tokenGuid, userId) {
766
- if (params.portal === 'marketplace') {
767
- this.router.navigate([''], {
768
- queryParams: { Token: tokenGuid, role: params.admin ? btoa('ADMIN') : '', userId: btoa(`${userId}`) },
769
- });
330
+ if (stringValue.length === 11) {
331
+ return this.doMaskString(stringValue, CPF_PATTERN);
770
332
  }
771
- else {
772
- let url = params.portal === 'fintech' ? this.environment.FINTECH_URL : this.environment.LOGITECH_URL;
773
- url += `?Token=${tokenGuid}&userId=${userId}`;
774
- if (params.admin) {
775
- url += `&role=${btoa('ADMIN')}`;
776
- }
777
- window.location.href = url;
333
+ if (stringValue.length === 14) {
334
+ return this.doMaskString(stringValue, CNPJ_PATTERN);
778
335
  }
336
+ return stringValue;
779
337
  }
780
- handleLogtechRedirects(params, tokenGuid, userId) {
781
- if (params.portal === 'logtech') {
782
- this.router.navigate([''], {
783
- queryParams: { Token: tokenGuid, userId: btoa(`${userId}`) },
784
- });
338
+ static formatPostalCode(stringValue) {
339
+ return this.doMaskString(stringValue, POSTALCODE_PATTERN);
340
+ }
341
+ static formatBoleto(stringValue) {
342
+ return this.doMaskString(stringValue, BOLETO_PATTERN);
343
+ }
344
+ static formatPhone(stringValue) {
345
+ if (!stringValue) {
346
+ return '';
785
347
  }
786
- else {
787
- let url = params.portal === 'fintech' ? this.environment.FINTECH_URL : this.environment.MARKETPLACE_URL;
788
- url += `?Token=${tokenGuid}&userId=${userId}`;
789
- if (params.admin) {
790
- url += `&role=${btoa('ADMIN')}`;
791
- }
792
- window.location.href = url;
348
+ if (stringValue.length === 11) {
349
+ return this.doMaskString(stringValue, CELLPHONE_PATTERN);
350
+ }
351
+ else if (stringValue.length === 10) {
352
+ return this.doMaskString(stringValue, PHONE_PATTERN);
793
353
  }
354
+ return stringValue;
794
355
  }
795
- }
796
- MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, deps: [{ token: AuthService }, { token: i2.Router }, { token: StorageService }, { token: ProfileService }, { token: 'environment' }, { token: 'menuOptions' }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
797
- MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, providedIn: 'root' });
798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, decorators: [{
799
- type: Injectable,
800
- args: [{ providedIn: 'root' }]
801
- }], ctorParameters: function () { return [{ type: AuthService }, { type: i2.Router }, { type: StorageService }, { type: ProfileService }, { type: undefined, decorators: [{
802
- type: Inject,
803
- args: ['environment']
804
- }] }, { type: undefined, decorators: [{
805
- type: Inject,
806
- args: ['menuOptions']
807
- }] }, { type: AppName, decorators: [{
808
- type: Inject,
809
- args: ['appName']
810
- }] }]; } });
811
-
812
- class ModalService {
813
- constructor() {
814
- this.showModalBackground$ = new Subject();
356
+ static doMaskString(str, pattern) {
357
+ let i = 0;
358
+ return pattern.replace(/#/g, () => str[i++]);
815
359
  }
816
360
  }
817
- ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
818
- ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, providedIn: 'root' });
819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, decorators: [{
820
- type: Injectable,
821
- args: [{ providedIn: 'root' }]
822
- }] });
361
+ MaskUtil.CPF_TEXT_FIELD_PATTERN = '999.999.999-99';
362
+ MaskUtil.CNPJ_TEXT_FIELD_PATTERN = '99.999.999/9999-99';
363
+ MaskUtil.BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999';
364
+ MaskUtil.CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';
365
+ MaskUtil.PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';
366
+ MaskUtil.POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';
823
367
 
824
- class StorageService {
825
- constructor() { }
826
- clear() {
827
- sessionStorage.clear();
828
- localStorage.clear();
368
+ class ObjectUtil {
369
+ static getObjectKeys(obj) {
370
+ if (!obj) {
371
+ return [];
372
+ }
373
+ return Object.keys(obj).map((key) => key);
829
374
  }
830
- clearSession() {
831
- sessionStorage.clear();
375
+ static isValid(obj) {
376
+ return obj !== null && obj !== undefined;
832
377
  }
833
- get(key) {
834
- const storageItem = localStorage.getItem(key);
835
- try {
836
- return storageItem ? JSON.parse(storageItem) : '';
837
- }
838
- catch (e) {
839
- return storageItem;
378
+ }
379
+
380
+ class StringUtil {
381
+ static getInitials(nameString) {
382
+ if (!nameString) {
383
+ return '';
840
384
  }
385
+ const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));
386
+ return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';
841
387
  }
842
- set(key, value) {
843
- localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));
844
- }
845
- remove(key) {
846
- localStorage.removeItem(key);
388
+ static revertString(str) {
389
+ if (!str) {
390
+ return '';
391
+ }
392
+ return str.split('').reverse().join('');
847
393
  }
848
- getSession(key) {
849
- const storageItem = sessionStorage.getItem(key);
850
- try {
851
- return storageItem ? JSON.parse(storageItem) : '';
394
+ }
395
+
396
+ class ValidationUtil {
397
+ static email(control) {
398
+ const email = control.value;
399
+ if (!email || email === '') {
400
+ return null;
852
401
  }
853
- catch (e) {
854
- return storageItem;
402
+ if (!email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) ||
403
+ email.match(/['`~!#%^&*()|+¨=?;:'´",<>\{\}\[\]\\\/]/gi)) {
404
+ return {
405
+ email: true,
406
+ };
855
407
  }
408
+ return null;
856
409
  }
857
- setSession(key, value) {
858
- sessionStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));
410
+ static fullName(control) {
411
+ const name = control.value;
412
+ if (!name) {
413
+ return null;
414
+ }
415
+ const splittedName = name
416
+ .trim()
417
+ .split(' ')
418
+ .map((namePart) => namePart.trim());
419
+ if (splittedName.length < 2) {
420
+ return { notFullName: true };
421
+ }
422
+ return null;
859
423
  }
860
- removeSession(key) {
861
- sessionStorage.removeItem(key);
424
+ static noMultipleWhitespace(control) {
425
+ const name = control.value;
426
+ if (name) {
427
+ if (!name.match(/^([a-zA-ZÀ-ú0-9]+\s)*[a-zA-ZÀ-ú0-9]+$/)) {
428
+ return { haveWhiteSpace: true };
429
+ }
430
+ }
431
+ return null;
862
432
  }
863
- getToken() {
864
- return localStorage.getItem('token') || '';
865
- }
866
- setToken(token) {
867
- localStorage.setItem('token', token);
868
- }
869
- removeToken() {
870
- localStorage.removeItem('token');
871
- }
872
- getRefreshToken() {
873
- return sessionStorage.getItem('refreshToken') || '';
433
+ static isValidTaxId(control) {
434
+ if (!control.value) {
435
+ return null;
436
+ }
437
+ if (control.value.length === 11) {
438
+ return ValidationUtil.isValidCpf(control);
439
+ }
440
+ if (control.value.length === 14) {
441
+ return ValidationUtil.isValidCnpj(control);
442
+ }
443
+ return null;
874
444
  }
875
- setRefreshToken(refreshToken) {
876
- sessionStorage.setItem('refreshToken', refreshToken);
445
+ static isValidCpf(control) {
446
+ const cpf = control.value;
447
+ if (cpf) {
448
+ let numbers, digits, sum, i, result, equalDigits;
449
+ equalDigits = 1;
450
+ if (cpf.length < 11) {
451
+ return null;
452
+ }
453
+ for (i = 0; i < cpf.length - 1; i++) {
454
+ if (cpf.charAt(i) !== cpf.charAt(i + 1)) {
455
+ equalDigits = 0;
456
+ break;
457
+ }
458
+ }
459
+ if (!equalDigits) {
460
+ numbers = cpf.substring(0, 9);
461
+ digits = cpf.substring(9);
462
+ sum = 0;
463
+ for (i = 10; i > 1; i--) {
464
+ sum += numbers.charAt(10 - i) * i;
465
+ }
466
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
467
+ if (result !== Number(digits.charAt(0))) {
468
+ return { cpfNotValid: true };
469
+ }
470
+ numbers = cpf.substring(0, 10);
471
+ sum = 0;
472
+ for (i = 11; i > 1; i--) {
473
+ sum += numbers.charAt(11 - i) * i;
474
+ }
475
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
476
+ if (result !== Number(digits.charAt(1))) {
477
+ return { cpfNotValid: true };
478
+ }
479
+ return null;
480
+ }
481
+ else {
482
+ return { cpfNotValid: true };
483
+ }
484
+ }
485
+ return null;
877
486
  }
878
- removeRefreshToken() {
879
- sessionStorage.removeItem('refreshToken');
487
+ static isValidCnpj(control) {
488
+ let cnpj = control.value;
489
+ cnpj = cnpj.replace(/[^\d]+/g, '');
490
+ // verificando se tem a quantidade certa de caracter e se não tem todos caracteres iguais
491
+ if (/^(\d)\1+$/.test(cnpj)) {
492
+ return { cnpjNotValid: true };
493
+ }
494
+ let t = cnpj.length - 2, d = cnpj.substring(t), d1 = parseInt(d.charAt(0)), d2 = parseInt(d.charAt(1)), calc = (x) => {
495
+ let n = cnpj.substring(0, x), y = x - 7, s = 0, r = 0;
496
+ for (let i = x; i >= 1; i--) {
497
+ s += n.charAt(x - i) * y--;
498
+ if (y < 2)
499
+ y = 9;
500
+ }
501
+ r = 11 - (s % 11);
502
+ return r > 9 ? 0 : r;
503
+ };
504
+ if (calc(t) === d1 && calc(t + 1) === d2) {
505
+ return null;
506
+ }
507
+ else {
508
+ return { cnpjNotValid: true };
509
+ }
880
510
  }
881
- getUsername() {
882
- return sessionStorage.getItem('username') || '';
511
+ static majorAge(control) {
512
+ if (!control.value) {
513
+ return null;
514
+ }
515
+ const age = ~~((Date.now() - control.value) / 31557600000);
516
+ if (age < 18) {
517
+ return { isNotMajorAge: true };
518
+ }
519
+ return null;
883
520
  }
884
- setUsername(username) {
885
- sessionStorage.setItem('username', username);
521
+ static matchField(anotherField) {
522
+ const validator = (control) => {
523
+ if (!control.value || !anotherField?.value) {
524
+ return null;
525
+ }
526
+ if (control.value !== anotherField?.value) {
527
+ return { fieldDoesNotMatch: true };
528
+ }
529
+ return null;
530
+ };
531
+ return validator;
886
532
  }
887
- removeUsername() {
888
- sessionStorage.removeItem('username');
533
+ static cellphone(control) {
534
+ if (!control.value || control.value.length < 11) {
535
+ return null;
536
+ }
537
+ const firstNumber = control.value.substring(2, 3);
538
+ if (firstNumber != '9') {
539
+ return { cellphoneInvalid: true };
540
+ }
541
+ return null;
889
542
  }
890
- getUserId() {
891
- const userId = sessionStorage.getItem('userId') || '';
892
- return userId ? +atob(userId) : 0;
543
+ static lowerThanOrEqualTo(greaterControlName) {
544
+ const validator = (control) => {
545
+ const lowerValue = control.value;
546
+ const greaterValue = control.parent?.get(greaterControlName)?.value;
547
+ if (!control.parent?.get(greaterControlName)) {
548
+ console.log(`Control with name ${greaterControlName} not registered`);
549
+ return {};
550
+ }
551
+ if (ObjectUtil.isValid(lowerValue) &&
552
+ ObjectUtil.isValid(greaterValue) &&
553
+ lowerValue !== '' &&
554
+ greaterValue !== '' &&
555
+ +lowerValue > +greaterValue) {
556
+ return {
557
+ invalid: 'Valor mínimo deve ser menor ou igual ao valor máximo',
558
+ };
559
+ }
560
+ return {};
561
+ };
562
+ return validator;
893
563
  }
894
- setUserId(userId) {
895
- sessionStorage.setItem('userId', btoa(`${userId}`));
564
+ static greaterThanOrEqualTo(lowerControlName) {
565
+ const validator = (control) => {
566
+ const greaterValue = control.value;
567
+ const lowerValue = control.parent?.get(lowerControlName)?.value;
568
+ if (!control.parent?.get(lowerControlName)) {
569
+ console.log(`Control with name ${lowerControlName} not registered`);
570
+ return {};
571
+ }
572
+ if (ObjectUtil.isValid(lowerValue) &&
573
+ ObjectUtil.isValid(greaterValue) &&
574
+ lowerValue !== '' &&
575
+ greaterValue !== '' &&
576
+ +lowerValue > +greaterValue) {
577
+ return {
578
+ invalid: 'Valor máximo deve ser maior ou igual ao valor mínimo',
579
+ };
580
+ }
581
+ return {};
582
+ };
583
+ return validator;
896
584
  }
897
- clearUserId() {
898
- sessionStorage.removeItem('userId');
585
+ static notSequentialNumbers(length) {
586
+ const validator = (control) => {
587
+ const controlValue = control.value;
588
+ const sequentialNumbers = '01234567890123456789';
589
+ if (controlValue) {
590
+ if (controlValue.length === length) {
591
+ if (~sequentialNumbers.indexOf(control.value)) {
592
+ return { isSequential: true };
593
+ }
594
+ else if (!!controlValue.match(/^(\d)\1+$/)) {
595
+ return { isSequential: true };
596
+ }
597
+ else {
598
+ return null;
599
+ }
600
+ }
601
+ }
602
+ return null;
603
+ };
604
+ return validator;
899
605
  }
900
- getRole() {
901
- return atob(sessionStorage.getItem('role') || '');
606
+ static firstLetterIsUppercase(control) {
607
+ const controlValue = control.value;
608
+ const regex = /^([A-ZÀ-Ú][a-zà-ú]*)(?:\s+([A-ZÀ-Ú][a-zà-ú]*))*$/;
609
+ if (!!controlValue) {
610
+ if (!controlValue.match(regex)) {
611
+ return { invalidField: true };
612
+ }
613
+ return null;
614
+ }
615
+ return null;
902
616
  }
903
- setRole(role) {
904
- sessionStorage.setItem('role', role || '');
617
+ static containsLettersAndNumbers(control) {
618
+ const controlValue = control.value;
619
+ const regex = /^(?=.*[0-9])(?=.*[a-z])([a-z0-9_-]+)$/;
620
+ if (!!controlValue) {
621
+ if (!!!controlValue.match(regex)) {
622
+ return { isNotAlphaNumeric: true };
623
+ }
624
+ return null;
625
+ }
626
+ return null;
905
627
  }
906
- clearRole() {
907
- sessionStorage.removeItem('role');
628
+ }
629
+
630
+ class WindowUtil {
631
+ static isSmallDevice() {
632
+ return window.innerWidth < 640;
908
633
  }
909
- getProfile() {
910
- const data = sessionStorage.getItem('profile') || '';
911
- return data ? JSON.parse(data) : data;
634
+ static isDesktop() {
635
+ return window.innerWidth >= 1024;
912
636
  }
913
- setProfile(profiles) {
914
- sessionStorage.setItem('profile', JSON.stringify(profiles || ''));
637
+ }
638
+
639
+ class FormatDocumentPipe {
640
+ transform(value = '') {
641
+ return MaskUtil.formatDocument(value);
915
642
  }
916
- removeProfile() {
917
- sessionStorage.removeItem('profile');
643
+ }
644
+ FormatDocumentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatDocumentPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
645
+ FormatDocumentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatDocumentPipe, name: "formatDocument" });
646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatDocumentPipe, decorators: [{
647
+ type: Pipe,
648
+ args: [{
649
+ name: 'formatDocument',
650
+ }]
651
+ }] });
652
+
653
+ class NotHiddenPipe {
654
+ transform(value) {
655
+ return value?.filter((item) => !item.hidden) || [];
918
656
  }
919
657
  }
920
- StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
921
- StorageServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, providedIn: 'root' });
922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, decorators: [{
923
- type: Injectable,
924
- args: [{ providedIn: 'root' }]
925
- }], ctorParameters: function () { return []; } });
658
+ NotHiddenPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
659
+ NotHiddenPipepipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, name: "notHidden" });
660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NotHiddenPipe, decorators: [{
661
+ type: Pipe,
662
+ args: [{
663
+ name: 'notHidden',
664
+ }]
665
+ }] });
926
666
 
927
- class ProfileService {
928
- constructor(http, storageService) {
929
- this.http = http;
930
- this.storageService = storageService;
931
- this.moduleProfile$ = new BehaviorSubject(this.storageService.getProfile().allModules);
932
- this.hasFintechAdminPermission = false;
933
- this.hasMarketplaceAdminPermission = false;
934
- this.hasAnyFintechPermission = false;
935
- this.hasAnyMarketplacePermission = false;
936
- const { fintech, marketplace } = this.storageService.getProfile();
937
- this.hasFintechAdminPermission = !!fintech?.actions.some((act) => [
938
- ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),
939
- ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),
940
- ].includes(act.name));
941
- this.hasMarketplaceAdminPermission = !!marketplace?.actions.some((act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE);
942
- this.hasAnyFintechPermission = !!fintech?.actions?.length;
943
- this.hasAnyMarketplacePermission = !!marketplace?.actions?.length;
944
- }
945
- getUserProfile() {
946
- this.http.get('connect/userinfo').subscribe((response) => {
947
- const completeProfile = response.profile;
948
- const marketplaceProfileModule = completeProfile.modules.find((mod) => mod.name === 'Marketplace');
949
- const fintechProfileModule = completeProfile.modules.find((mod) => mod.name === 'Fintech');
950
- const allModules = completeProfile.modules;
951
- this.hasFintechAdminPermission = !!fintechProfileModule?.actions.some((act) => [
952
- ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),
953
- ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),
954
- ].includes(act.name));
955
- this.hasMarketplaceAdminPermission = !!marketplaceProfileModule?.actions.some((act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE);
956
- this.hasAnyFintechPermission = !!fintechProfileModule?.actions?.length;
957
- this.storageService.setProfile({
958
- marketplace: marketplaceProfileModule,
959
- fintech: fintechProfileModule,
960
- allModules,
961
- });
962
- this.moduleProfile$.next(allModules);
963
- });
667
+ class OnlyActivePipe {
668
+ transform(value) {
669
+ return value?.filter((item) => item.active) || [];
964
670
  }
965
- userHasPermission(action) {
966
- if (!action) {
967
- return true;
968
- }
969
- if (!this.moduleProfile$.value) {
970
- return false;
971
- }
972
- if (Array.isArray(action)) {
973
- return action.some((act) => {
974
- if (Object.values(ProfileModuleActionType).some((val) => val === act)) {
975
- return this.moduleProfile$.value?.some((module) => module.actions.some((moduleAction) => moduleAction.name === act));
976
- }
977
- if (Object.values(ProfileModuleType).some((val) => val === act)) {
978
- return this.moduleProfile$.value?.some((module) => module.name === act);
979
- }
980
- return false;
981
- });
982
- }
983
- else {
984
- if (Object.values(ProfileModuleActionType).some((val) => val === action)) {
985
- return this.moduleProfile$.value.some((module) => module.actions.some((act) => act.name === action));
986
- }
987
- if (Object.values(ProfileModuleType).some((val) => val === action)) {
988
- return this.moduleProfile$.value.some((module) => module.name === action);
989
- }
990
- }
991
- return false;
671
+ }
672
+ OnlyActivePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
673
+ OnlyActivePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, name: "onlyActive" });
674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: OnlyActivePipe, decorators: [{
675
+ type: Pipe,
676
+ args: [{
677
+ name: 'onlyActive',
678
+ }]
679
+ }] });
680
+
681
+ class RemoveLastChildPipe {
682
+ transform(value) {
683
+ const newArray = [...value];
684
+ newArray.pop();
685
+ return newArray;
992
686
  }
993
687
  }
994
- ProfileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, deps: [{ token: i1$2.HttpClient }, { token: StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
995
- ProfileServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, providedIn: 'root' });
996
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, decorators: [{
997
- type: Injectable,
998
- args: [{ providedIn: 'root' }]
999
- }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: StorageService }]; } });
688
+ RemoveLastChildPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
689
+ RemoveLastChildPipepipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, name: "removeLastChild" });
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RemoveLastChildPipe, decorators: [{
691
+ type: Pipe,
692
+ args: [{
693
+ name: 'removeLastChild',
694
+ }]
695
+ }] });
1000
696
 
1001
- class FieldErrorMessageComponent {
1002
- constructor() { }
1003
- ngOnInit() { }
1004
- fieldErrorLabel() {
1005
- if (this.control && this.control.invalid && this.control.touched) {
1006
- if (this.control.hasError('required')) {
1007
- return 'Campo obrigatório';
697
+ class PipesModule {
698
+ }
699
+ PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
700
+ PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, declarations: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe, FormatDocumentPipe], exports: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe, FormatDocumentPipe] });
701
+ PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule });
702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PipesModule, decorators: [{
703
+ type: NgModule,
704
+ args: [{
705
+ declarations: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe, FormatDocumentPipe],
706
+ exports: [RemoveLastChildPipe, CurrencyBrlPipe, NotHiddenPipe, OnlyActivePipe, FormatDocumentPipe],
707
+ }]
708
+ }] });
709
+
710
+ class SharedModule {
711
+ }
712
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
713
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, exports: [CommonModule, TooltipModule, PipesModule] });
714
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, imports: [CommonModule, TooltipModule, PipesModule] });
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SharedModule, decorators: [{
716
+ type: NgModule,
717
+ args: [{
718
+ exports: [CommonModule, TooltipModule, PipesModule],
719
+ }]
720
+ }] });
721
+
722
+ class BadgeModule {
723
+ }
724
+ BadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
725
+ BadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeModule, declarations: [BadgeComponent], imports: [SharedModule], exports: [BadgeComponent] });
726
+ BadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeModule, imports: [[SharedModule]] });
727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BadgeModule, decorators: [{
728
+ type: NgModule,
729
+ args: [{
730
+ declarations: [BadgeComponent],
731
+ imports: [SharedModule],
732
+ exports: [BadgeComponent],
733
+ }]
734
+ }] });
735
+
736
+ class BreadcrumbComponent {
737
+ constructor(router, environment, menuOptions) {
738
+ this.router = router;
739
+ this.environment = environment;
740
+ this.menuOptions = menuOptions;
741
+ this.appName = this.environment.appName;
742
+ this.routeFragments = [];
743
+ this.subscription = new Subscription();
744
+ }
745
+ ngOnInit() {
746
+ this.subscription.add(this.router.events.subscribe((event) => {
747
+ if (event instanceof NavigationEnd) {
748
+ this.routeFragments = [];
749
+ let url = event.urlAfterRedirects.replace('/', '');
750
+ if (url.includes('?')) {
751
+ url = url.substring(0, url.indexOf('?'));
752
+ }
753
+ this.extractRouteFragmentsFromMenu(url, this.menuOptions);
1008
754
  }
1009
- if (this.control.hasError('minlength')) {
1010
- return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;
755
+ }));
756
+ }
757
+ ngOnDestroy() {
758
+ this.subscription.unsubscribe();
759
+ }
760
+ navigateToFragment(fragment) {
761
+ this.router.navigate([fragment.route]);
762
+ }
763
+ extractRouteFragmentsFromMenu(url, currentChildren) {
764
+ let foundItem = false;
765
+ for (let i = 0; i < currentChildren.length; i++) {
766
+ if (currentChildren[i].route) {
767
+ if (currentChildren[i].route && url.startsWith(currentChildren[i].route || '')) {
768
+ this.routeFragments = [currentChildren[i]];
769
+ foundItem = true;
770
+ }
1011
771
  }
1012
- if (this.control.hasError('maxlength')) {
1013
- return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;
772
+ if (currentChildren[i].children && this.extractRouteFragmentsFromMenu(url, currentChildren[i].children || [])) {
773
+ this.routeFragments = [currentChildren[i]].concat(this.routeFragments);
774
+ foundItem = true;
775
+ break;
1014
776
  }
1015
- return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';
1016
777
  }
1017
- return '';
778
+ return foundItem;
1018
779
  }
1019
780
  }
1020
- FieldErrorMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1021
- FieldErrorMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: { control: "control" }, ngImport: i0, template: "<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}\n"] });
1022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldErrorMessageComponent, decorators: [{
781
+ BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i2$1.Router }, { token: 'environment' }, { token: 'menuOptions' }], target: i0.ɵɵFactoryTarget.Component });
782
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: BreadcrumbComponent, selector: "vector-breadcrumb", ngImport: i0, template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span\r\n class=\"route-fragment\"\r\n [ngClass]=\"{ clickable: fragment.route }\"\r\n *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n (click)=\"navigateToFragment(fragment)\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment.label }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1].label }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;color:var(--gray-dark)}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:700;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center;margin:2.5px}.breadcrumb-container .clickable{cursor:pointer}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:var(--success-color)}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "removeLastChild": RemoveLastChildPipe } });
783
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, decorators: [{
1023
784
  type: Component,
1024
- args: [{ selector: 'vector-field-error-message', template: "<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}\n"] }]
1025
- }], ctorParameters: function () { return []; }, propDecorators: { control: [{
1026
- type: Input
1027
- }] } });
785
+ args: [{ selector: 'vector-breadcrumb', template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span\r\n class=\"route-fragment\"\r\n [ngClass]=\"{ clickable: fragment.route }\"\r\n *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n (click)=\"navigateToFragment(fragment)\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment.label }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1].label }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;color:var(--gray-dark)}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:700;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center;margin:2.5px}.breadcrumb-container .clickable{cursor:pointer}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:var(--success-color)}\n"] }]
786
+ }], ctorParameters: function () { return [{ type: i2$1.Router }, { type: undefined, decorators: [{
787
+ type: Inject,
788
+ args: ['environment']
789
+ }] }, { type: undefined, decorators: [{
790
+ type: Inject,
791
+ args: ['menuOptions']
792
+ }] }]; } });
1028
793
 
1029
- class CalendarComponent {
1030
- constructor(modalService) {
1031
- this.modalService = modalService;
1032
- this.isRequired = false;
1033
- this.label = '';
1034
- this.showCalendarOnFocus = true;
1035
- this.min = DateTime.fromFormat('01/01/1900', 'dd/MM/yyyy').toJSDate();
1036
- this.max = DateTime.now().startOf('day').plus({ years: 1 }).toJSDate();
1037
- this.disabledDates = [];
1038
- this.disabled = false;
1039
- this.defaultDate = DateTime.now().toJSDate();
1040
- this.hiddenErrorMessage = false;
1041
- this.keyFilter = '';
794
+ class BreadcrumbModule {
795
+ }
796
+ BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
797
+ BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent], imports: [SharedModule], exports: [BreadcrumbComponent] });
798
+ BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, imports: [[SharedModule]] });
799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbModule, decorators: [{
800
+ type: NgModule,
801
+ args: [{
802
+ declarations: [BreadcrumbComponent],
803
+ exports: [BreadcrumbComponent],
804
+ imports: [SharedModule],
805
+ }]
806
+ }] });
807
+
808
+ class CrudBaseComponent {
809
+ constructor(activatedRoute) {
810
+ this.activatedRoute = activatedRoute;
811
+ this.crudMode = CrudMode.NEW;
812
+ this.isReadonly = false;
813
+ this.form = new FormGroup({});
814
+ this.subscription = new Subscription();
815
+ this.crudMode = this.getCrudModeByRoute(this.activatedRoute.snapshot.url[0].path);
816
+ this.isReadonly = this.crudMode === CrudMode.VIEW;
1042
817
  }
1043
- get placeholder() {
1044
- if (!this.label) {
1045
- return '';
1046
- }
1047
- return `${this.label}${this.isRequired ? '*' : ''}`;
818
+ ngOnDestroy() {
819
+ this.subscription.unsubscribe();
1048
820
  }
1049
- fieldErrorLabel() {
1050
- if (this.control && this.control.invalid && this.control.touched) {
1051
- if (this.control.hasError('required')) {
1052
- return 'Campo obrigatório';
1053
- }
1054
- if (this.control.hasError('maxlength')) {
1055
- return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;
1056
- }
1057
- return 'Campo inválido';
1058
- }
1059
- return '';
821
+ isInsertion() {
822
+ return this.crudMode === CrudMode.NEW;
1060
823
  }
1061
- onShowCalendar() {
1062
- this.modalService.showModalBackground$.next(true);
824
+ isEdition() {
825
+ return this.crudMode === CrudMode.EDIT;
1063
826
  }
1064
- onHideCalendar() {
1065
- this.modalService.showModalBackground$.next(false);
827
+ getCrudModeByRoute(route) {
828
+ switch (route) {
829
+ case 'new':
830
+ return CrudMode.NEW;
831
+ case 'edit':
832
+ return CrudMode.EDIT;
833
+ case 'view':
834
+ return CrudMode.VIEW;
835
+ default:
836
+ return CrudMode.NEW;
837
+ }
1066
838
  }
1067
839
  }
1068
- CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1069
- CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CalendarComponent, selector: "vector-calendar-field", inputs: { isRequired: "isRequired", control: "control", label: "label", showCalendarOnFocus: "showCalendarOnFocus", min: "min", max: "max", disabledDates: "disabledDates", disabled: "disabled", defaultDate: "defaultDate", hiddenErrorMessage: "hiddenErrorMessage" }, ngImport: i0, template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:var(--border-radius);height:40px}.input-container input:disabled{cursor:not-allowed;background-color:var(--disabled-background);opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:var(--placeholder-color);font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:var(--error-color)!important}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"], components: [{ type: i2$3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1070
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, decorators: [{
840
+ CrudBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudBaseComponent, deps: [{ token: i2$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
841
+ CrudBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudBaseComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudBaseComponent, decorators: [{
1071
843
  type: Component,
1072
- args: [{ selector: 'vector-calendar-field', template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:var(--border-radius);height:40px}.input-container input:disabled{cursor:not-allowed;background-color:var(--disabled-background);opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:var(--placeholder-color);font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:var(--error-color)!important}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"] }]
1073
- }], ctorParameters: function () { return [{ type: ModalService }]; }, propDecorators: { isRequired: [{
1074
- type: Input
1075
- }], control: [{
844
+ args: [{
845
+ template: '',
846
+ }]
847
+ }], ctorParameters: function () { return [{ type: i2$1.ActivatedRoute }]; } });
848
+
849
+ class ButtonComponent {
850
+ constructor() {
851
+ this.disabled = false;
852
+ this.label = '';
853
+ this.type = 'default';
854
+ this.leftIcon = '';
855
+ this.rightIcon = '';
856
+ this.noShadow = false;
857
+ this.style = '';
858
+ this.onClick = new EventEmitter();
859
+ }
860
+ get styleClass() {
861
+ return `button shadow-3 ${this.type} ${this.noShadow && 'no-shadow'}`;
862
+ }
863
+ }
864
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
865
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ButtonComponent, selector: "vector-button", inputs: { disabled: "disabled", label: "label", type: "type", leftIcon: "leftIcon", rightIcon: "rightIcon", noShadow: "noShadow", style: "style" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<p-button\r\n [styleClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon || rightIcon\"\r\n [iconPos]=\"rightIcon ? 'right' : 'left'\"\r\n [style]=\"style\"\r\n (onClick)=\"onClick.emit($event)\"\r\n></p-button>\r\n", styles: [""], components: [{ type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }] });
866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, decorators: [{
867
+ type: Component,
868
+ args: [{ selector: 'vector-button', template: "<p-button\r\n [styleClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon || rightIcon\"\r\n [iconPos]=\"rightIcon ? 'right' : 'left'\"\r\n [style]=\"style\"\r\n (onClick)=\"onClick.emit($event)\"\r\n></p-button>\r\n", styles: [""] }]
869
+ }], propDecorators: { disabled: [{
1076
870
  type: Input
1077
871
  }], label: [{
1078
872
  type: Input
1079
- }], showCalendarOnFocus: [{
1080
- type: Input
1081
- }], min: [{
1082
- type: Input
1083
- }], max: [{
873
+ }], type: [{
1084
874
  type: Input
1085
- }], disabledDates: [{
875
+ }], leftIcon: [{
1086
876
  type: Input
1087
- }], disabled: [{
877
+ }], rightIcon: [{
1088
878
  type: Input
1089
- }], defaultDate: [{
879
+ }], noShadow: [{
1090
880
  type: Input
1091
- }], hiddenErrorMessage: [{
881
+ }], style: [{
1092
882
  type: Input
883
+ }], onClick: [{
884
+ type: Output
1093
885
  }] } });
1094
886
 
1095
- class CheckboxFieldComponent {
887
+ class CrudFooterComponent {
1096
888
  constructor() {
1097
- this.isRequired = false;
1098
- this.label = '';
1099
- this.rounded = false;
1100
- this.labelSize = 'default';
1101
- this.value = false;
1102
- this.disabled = false;
1103
- this.valueChange = new EventEmitter();
889
+ this.submitDisabled = false;
890
+ this.submitHidden = false;
891
+ this.onGoBack = new EventEmitter();
892
+ this.onSubmit = new EventEmitter();
1104
893
  }
1105
894
  ngOnInit() { }
1106
895
  }
1107
- CheckboxFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CheckboxFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1108
- CheckboxFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CheckboxFieldComponent, selector: "vector-checkbox-field", inputs: { isRequired: "isRequired", control: "control", label: "label", rounded: "rounded", labelSize: "labelSize", value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"checkbox-container\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n ></p-checkbox>\r\n <p-checkbox\r\n *ngIf=\"!control\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"value = $event; valueChange.emit($event)\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"control.setValue(!control.value)\"\r\n >{{ label }}\r\n <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\r\n </label>\r\n</div>\r\n", styles: [".checkbox-container{display:flex;align-items:center}.checkbox-container label{margin-left:10px}.checkbox-container .large-label{font-size:1em}\n"], components: [{ type: i1$4.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
896
+ CrudFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
897
+ CrudFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudFooterComponent, selector: "vector-crud-footer", inputs: { submitDisabled: "submitDisabled", submitHidden: "submitHidden" }, outputs: { onGoBack: "onGoBack", onSubmit: "onSubmit" }, ngImport: i0, template: "<div class=\"footer-container shadow-3\">\r\n <div class=\"button\">\r\n <vector-button label=\"Voltar\" (onClick)=\"onGoBack.emit()\"></vector-button>\r\n </div>\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n label=\"Salvar\"\r\n type=\"success\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".footer-container{position:fixed;bottom:0px;left:0px;background-color:#f5f5f5;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;width:100%;height:60px}.footer-container .button{margin-right:10px}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudFooterComponent, decorators: [{
1110
899
  type: Component,
1111
- args: [{ selector: 'vector-checkbox-field', template: "<div class=\"checkbox-container\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n ></p-checkbox>\r\n <p-checkbox\r\n *ngIf=\"!control\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"value = $event; valueChange.emit($event)\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"control.setValue(!control.value)\"\r\n >{{ label }}\r\n <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\r\n </label>\r\n</div>\r\n", styles: [".checkbox-container{display:flex;align-items:center}.checkbox-container label{margin-left:10px}.checkbox-container .large-label{font-size:1em}\n"] }]
1112
- }], ctorParameters: function () { return []; }, propDecorators: { isRequired: [{
1113
- type: Input
1114
- }], control: [{
1115
- type: Input
1116
- }], label: [{
1117
- type: Input
1118
- }], rounded: [{
1119
- type: Input
1120
- }], labelSize: [{
1121
- type: Input
1122
- }], value: [{
900
+ args: [{ selector: 'vector-crud-footer', template: "<div class=\"footer-container shadow-3\">\r\n <div class=\"button\">\r\n <vector-button label=\"Voltar\" (onClick)=\"onGoBack.emit()\"></vector-button>\r\n </div>\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n label=\"Salvar\"\r\n type=\"success\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".footer-container{position:fixed;bottom:0px;left:0px;background-color:#f5f5f5;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;width:100%;height:60px}.footer-container .button{margin-right:10px}\n"] }]
901
+ }], ctorParameters: function () { return []; }, propDecorators: { submitDisabled: [{
1123
902
  type: Input
1124
- }], disabled: [{
903
+ }], submitHidden: [{
1125
904
  type: Input
1126
- }], valueChange: [{
905
+ }], onGoBack: [{
906
+ type: Output
907
+ }], onSubmit: [{
1127
908
  type: Output
1128
909
  }] } });
1129
910
 
1130
- class FileUtil {
1131
- static getBlob(base64StringData, mimeType) {
1132
- const decodedData = atob(base64StringData);
1133
- const byteNumbers = new Array(decodedData.length);
1134
- for (let i = 0; i < decodedData.length; i++) {
1135
- byteNumbers[i] = decodedData.charCodeAt(i);
1136
- }
1137
- return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });
1138
- }
1139
- static downloadFile(mimeType, base64StringData, fileName) {
1140
- saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);
1141
- }
1142
- }
911
+ class PanelComponent {
912
+ constructor() { }
913
+ ngOnInit() { }
914
+ }
915
+ PanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
916
+ PanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: PanelComponent, selector: "vector-panel", ngImport: i0, template: "<p-panel [showHeader]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\r\n></p-panel>\r\n", styles: [""], components: [{ type: i1$1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }], directives: [{ type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelComponent, decorators: [{
918
+ type: Component,
919
+ args: [{ selector: 'vector-panel', template: "<p-panel [showHeader]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\r\n></p-panel>\r\n", styles: [""] }]
920
+ }], ctorParameters: function () { return []; } });
1143
921
 
1144
- const CPF_PATTERN = '###.###.###-##';
1145
- const CNPJ_PATTERN = '##.###.###/####-##';
1146
- const BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ##############';
1147
- const POSTALCODE_PATTERN = '#####-###';
1148
- const CELLPHONE_PATTERN = '(##) #####-####';
1149
- const PHONE_PATTERN = '(##) ####-####';
1150
- class MaskUtil {
1151
- static formatDocument(stringValue) {
1152
- if (!stringValue) {
1153
- return '';
1154
- }
1155
- if (stringValue.length === 11) {
1156
- return this.doMaskString(stringValue, CPF_PATTERN);
1157
- }
1158
- if (stringValue.length === 14) {
1159
- return this.doMaskString(stringValue, CNPJ_PATTERN);
1160
- }
1161
- return stringValue;
922
+ class PanelModule {
923
+ }
924
+ PanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
925
+ PanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, declarations: [PanelComponent], imports: [SharedModule, PanelModule$1], exports: [PanelComponent] });
926
+ PanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, imports: [[SharedModule, PanelModule$1]] });
927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PanelModule, decorators: [{
928
+ type: NgModule,
929
+ args: [{
930
+ declarations: [PanelComponent],
931
+ exports: [PanelComponent],
932
+ imports: [SharedModule, PanelModule$1],
933
+ }]
934
+ }] });
935
+
936
+ class AuthService {
937
+ constructor(http, storageService, profileService, activatedRoute, environment) {
938
+ this.http = http;
939
+ this.storageService = storageService;
940
+ this.profileService = profileService;
941
+ this.activatedRoute = activatedRoute;
942
+ this.environment = environment;
943
+ this.role$ = new BehaviorSubject(this.storageService.getRole());
944
+ this.parentWindowUrl = '';
945
+ this.subscription = new Subscription();
946
+ this.baseUrl = this.environment.API_URL.endsWith('/api') ? 'Auth' : 'api/Auth';
947
+ this.subscription.add(this.activatedRoute.queryParams.subscribe((params) => {
948
+ if (params['parent']) {
949
+ this.parentWindowUrl = decodeURIComponent(params['parent']);
950
+ }
951
+ }));
1162
952
  }
1163
- static formatPostalCode(stringValue) {
1164
- return this.doMaskString(stringValue, POSTALCODE_PATTERN);
953
+ getTokenByGuid(tokenGuid) {
954
+ return this.http.get(`${this.baseUrl}/TemporaryAccessToken/${tokenGuid}`).pipe(tap((response) => {
955
+ this.storageService.setToken(response.accessToken);
956
+ this.storageService.setUsername(response.userName);
957
+ this.storageService.setRefreshToken(response.refreshToken);
958
+ this.profileService.getUserProfile();
959
+ }));
1165
960
  }
1166
- static formatBoleto(stringValue) {
1167
- return this.doMaskString(stringValue, BOLETO_PATTERN);
961
+ getTokenByRefreshToken(refreshToken) {
962
+ const headers = new HttpHeaders()
963
+ .set('Content-Type', 'application/x-www-form-urlencoded')
964
+ .set('no-spinner', 'true');
965
+ return this.http
966
+ .post(`connect/token`, `username=${this.storageService.getUsername()}&grant_type=refresh_token&refresh_token=${refreshToken}`, { headers })
967
+ .pipe(tap((response) => {
968
+ if (response?.access_token && response?.refresh_token) {
969
+ this.storageService.setToken(`Bearer ${response.access_token}`);
970
+ this.storageService.setRefreshToken(response.refresh_token);
971
+ }
972
+ }));
1168
973
  }
1169
- static formatPhone(stringValue) {
1170
- if (!stringValue) {
1171
- return '';
1172
- }
1173
- if (stringValue.length === 11) {
1174
- return this.doMaskString(stringValue, CELLPHONE_PATTERN);
974
+ generateTokenGuid() {
975
+ return this.http
976
+ .post(`${this.baseUrl}/TemporaryAccessToken/generate`, {
977
+ RefreshToken: this.storageService.getRefreshToken(),
978
+ })
979
+ .pipe(map((response) => response?.accessToken || ''));
980
+ }
981
+ logout() {
982
+ this.storageService.clear();
983
+ if (window.parent == window) {
984
+ window.location.href = this.environment.PORTAL_URL;
1175
985
  }
1176
- else if (stringValue.length === 10) {
1177
- return this.doMaskString(stringValue, PHONE_PATTERN);
986
+ else {
987
+ window.parent.postMessage({ logout: true }, this.parentWindowUrl);
1178
988
  }
1179
- return stringValue;
1180
- }
1181
- static doMaskString(str, pattern) {
1182
- let i = 0;
1183
- return pattern.replace(/#/g, () => str[i++]);
1184
989
  }
1185
990
  }
1186
- MaskUtil.CPF_TEXT_FIELD_PATTERN = '999.999.999-99';
1187
- MaskUtil.CNPJ_TEXT_FIELD_PATTERN = '99.999.999/9999-99';
1188
- MaskUtil.BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999';
1189
- MaskUtil.CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';
1190
- MaskUtil.PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';
1191
- MaskUtil.POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';
991
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, deps: [{ token: i1$2.HttpClient }, { token: StorageService }, { token: ProfileService }, { token: i2$1.ActivatedRoute }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
992
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, providedIn: 'root' });
993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AuthService, decorators: [{
994
+ type: Injectable,
995
+ args: [{ providedIn: 'root' }]
996
+ }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: StorageService }, { type: ProfileService }, { type: i2$1.ActivatedRoute }, { type: undefined, decorators: [{
997
+ type: Inject,
998
+ args: ['environment']
999
+ }] }]; } });
1192
1000
 
1193
- class ObjectUtil {
1194
- static getObjectKeys(obj) {
1195
- if (!obj) {
1196
- return [];
1197
- }
1198
- return Object.keys(obj).map((key) => key);
1199
- }
1200
- static isValid(obj) {
1201
- return obj !== null && obj !== undefined;
1001
+ class CrudBaseService {
1002
+ constructor() {
1003
+ this.dataset$ = new BehaviorSubject({
1004
+ data: [],
1005
+ draw: 0,
1006
+ recordsFiltered: 0,
1007
+ recordsTotal: 0,
1008
+ });
1009
+ this.flatUnpagedDataset$ = new BehaviorSubject([]);
1202
1010
  }
1011
+ getHistory(entityId) { }
1203
1012
  }
1204
1013
 
1205
- class StringUtil {
1206
- static getInitials(nameString) {
1207
- if (!nameString) {
1208
- return '';
1209
- }
1210
- const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));
1211
- return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';
1014
+ class EnumService {
1015
+ constructor(translateService) {
1016
+ this.translateService = translateService;
1212
1017
  }
1213
- static revertString(str) {
1214
- if (!str) {
1215
- return '';
1216
- }
1217
- return str.split('').reverse().join('');
1018
+ getTranslatedListItemsFromEnum(enumType, enumName) {
1019
+ return this.getEnumTranslations(enumName).pipe(map((enumTranslations) => {
1020
+ return Object.keys(enumType)
1021
+ .filter((item) => isNaN(+item))
1022
+ .map((item) => {
1023
+ return {
1024
+ name: enumTranslations[item],
1025
+ code: enumType[item],
1026
+ };
1027
+ });
1028
+ }));
1218
1029
  }
1219
- }
1220
-
1221
- class ValidationUtil {
1222
- static email(control) {
1223
- const email = control.value;
1224
- if (!email || email === '') {
1225
- return null;
1226
- }
1227
- if (!email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) ||
1228
- email.match(/['`~!#%^&*()|+¨=?;:'´",<>\{\}\[\]\\\/]/gi)) {
1030
+ getEnumTranslations(enumName) {
1031
+ return this.translateService.get('enums').pipe(map((translations) => {
1032
+ return translations[enumName];
1033
+ }));
1034
+ }
1035
+ getListItemsFromEnum(enumType) {
1036
+ return Object.keys(enumType)
1037
+ .filter((item) => isNaN(+item))
1038
+ .map((item) => {
1229
1039
  return {
1230
- email: true,
1040
+ name: enumType[item],
1041
+ code: enumType[item],
1231
1042
  };
1232
- }
1233
- return null;
1043
+ });
1234
1044
  }
1235
- static fullName(control) {
1236
- const name = control.value;
1237
- if (!name) {
1238
- return null;
1239
- }
1240
- const splittedName = name
1241
- .trim()
1242
- .split(' ')
1243
- .map((namePart) => namePart.trim());
1244
- if (splittedName.length < 2) {
1245
- return { notFullName: true };
1246
- }
1247
- return null;
1045
+ }
1046
+ EnumService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, deps: [{ token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
1047
+ EnumService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, providedIn: 'root' });
1048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EnumService, decorators: [{
1049
+ type: Injectable,
1050
+ args: [{ providedIn: 'root' }]
1051
+ }], ctorParameters: function () { return [{ type: i1$3.TranslateService }]; } });
1052
+
1053
+ class ErrorMessageService {
1054
+ constructor() {
1055
+ this.hasToken$ = new Subject();
1056
+ this.genericModalErrorMessage$ = new Subject();
1248
1057
  }
1249
- static noMultipleWhitespace(control) {
1250
- const name = control.value;
1251
- if (name) {
1252
- if (!name.match(/^([a-zA-ZÀ-ú0-9]+\s)*[a-zA-ZÀ-ú0-9]+$/)) {
1253
- return { haveWhiteSpace: true };
1254
- }
1255
- }
1256
- return null;
1058
+ }
1059
+ ErrorMessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1060
+ ErrorMessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, providedIn: 'root' });
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ErrorMessageService, decorators: [{
1062
+ type: Injectable,
1063
+ args: [{ providedIn: 'root' }]
1064
+ }] });
1065
+
1066
+ class GeolocationService {
1067
+ constructor(http, backend) {
1068
+ this.http = http;
1069
+ this.backend = backend;
1070
+ this.customHttpClient = new HttpClient(backend);
1257
1071
  }
1258
- static isValidTaxId(control) {
1259
- if (!control.value) {
1260
- return null;
1261
- }
1262
- if (control.value.length === 11) {
1263
- return ValidationUtil.isValidCpf(control);
1264
- }
1265
- if (control.value.length === 14) {
1266
- return ValidationUtil.isValidCnpj(control);
1267
- }
1268
- return null;
1072
+ getGeoLoc() {
1073
+ return this.customHttpClient.get('http://api.ipify.org/?format=json');
1269
1074
  }
1270
- static isValidCpf(control) {
1271
- const cpf = control.value;
1272
- if (cpf) {
1273
- let numbers, digits, sum, i, result, equalDigits;
1274
- equalDigits = 1;
1275
- if (cpf.length < 11) {
1276
- return null;
1277
- }
1278
- for (i = 0; i < cpf.length - 1; i++) {
1279
- if (cpf.charAt(i) !== cpf.charAt(i + 1)) {
1280
- equalDigits = 0;
1075
+ createUserLoginInfo(userInfo) {
1076
+ return this.http.post(`Telemetry/CreateUserLogInfo`, userInfo);
1077
+ }
1078
+ }
1079
+ GeolocationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, deps: [{ token: i1$2.HttpClient }, { token: i1$2.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable });
1080
+ GeolocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService });
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, decorators: [{
1082
+ type: Injectable
1083
+ }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1$2.HttpBackend }]; } });
1084
+
1085
+ class LoadingService {
1086
+ constructor() {
1087
+ this.loading$ = new Subject();
1088
+ }
1089
+ }
1090
+ LoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1091
+ LoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, providedIn: 'root' });
1092
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoadingService, decorators: [{
1093
+ type: Injectable,
1094
+ args: [{ providedIn: 'root' }]
1095
+ }] });
1096
+
1097
+ class MenuService {
1098
+ constructor(authService, router, storageService, profileService, environment, menuOptions, appName) {
1099
+ this.authService = authService;
1100
+ this.router = router;
1101
+ this.storageService = storageService;
1102
+ this.profileService = profileService;
1103
+ this.environment = environment;
1104
+ this.menuOptions = menuOptions;
1105
+ this.appName = appName;
1106
+ this.toggleMenu$ = new Subject();
1107
+ this.menuOpened$ = new Subject();
1108
+ this.frameUrl$ = new Subject();
1109
+ this.menuNotifications = {};
1110
+ }
1111
+ getSideMainMenuOptions() {
1112
+ return this.menuOptions
1113
+ .filter((menu) => (!menu.view || ![View.HOME, View.ADMIN].includes(menu.view)) &&
1114
+ !menu.hidden &&
1115
+ this.profileService.userHasPermission(menu.permission))
1116
+ .map((menu) => this.removeHiddenChildren(menu))
1117
+ .filter((menu) => !menu.hidden)
1118
+ .map((menu, index) => this.generateId(menu, index));
1119
+ }
1120
+ getSideAdminMenuOptions() {
1121
+ return this.menuOptions
1122
+ .filter((menu) => menu.view === View.ADMIN && !menu.hidden && this.profileService.userHasPermission(menu.permission))
1123
+ .map((menu) => this.removeHiddenChildren(menu))
1124
+ .filter((menu) => !menu.hidden)
1125
+ .map((menu, index) => this.generateId(menu, index));
1126
+ }
1127
+ navigateToPortal(params) {
1128
+ this.authService.generateTokenGuid().subscribe((tokenGuid) => {
1129
+ const userId = this.storageService.getUserId();
1130
+ switch (this.appName) {
1131
+ case AppName.FINTECH:
1132
+ this.handleFintechRedirects(params, tokenGuid, userId);
1133
+ break;
1134
+ case AppName.MARKETPLACE:
1135
+ this.handleMarketplaceRedirects(params, tokenGuid, userId);
1136
+ break;
1137
+ case AppName.LOGTECH:
1138
+ this.handleLogtechRedirects(params, tokenGuid, userId);
1281
1139
  break;
1282
- }
1283
- }
1284
- if (!equalDigits) {
1285
- numbers = cpf.substring(0, 9);
1286
- digits = cpf.substring(9);
1287
- sum = 0;
1288
- for (i = 10; i > 1; i--) {
1289
- sum += numbers.charAt(10 - i) * i;
1290
- }
1291
- result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
1292
- if (result !== Number(digits.charAt(0))) {
1293
- return { cpfNotValid: true };
1294
- }
1295
- numbers = cpf.substring(0, 10);
1296
- sum = 0;
1297
- for (i = 11; i > 1; i--) {
1298
- sum += numbers.charAt(11 - i) * i;
1299
- }
1300
- result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
1301
- if (result !== Number(digits.charAt(1))) {
1302
- return { cpfNotValid: true };
1303
- }
1304
- return null;
1305
- }
1306
- else {
1307
- return { cpfNotValid: true };
1308
1140
  }
1141
+ this.storageService.clear();
1142
+ });
1143
+ }
1144
+ addMenuNotification(menuId) {
1145
+ this.updateMenuNotifications(menuId, (this.menuNotifications[menuId] || 0) + 1);
1146
+ }
1147
+ subtractMenuNotification(menuId) {
1148
+ this.updateMenuNotifications(menuId, this.menuNotifications[menuId] ? this.menuNotifications[menuId] - 1 : 0);
1149
+ }
1150
+ updateMenuNotifications(menuId, notificationsCount) {
1151
+ this.menuNotifications[menuId] = notificationsCount;
1152
+ }
1153
+ removeHiddenChildren(menu) {
1154
+ const newMenu = { ...menu };
1155
+ const hadChildren = !!newMenu.children?.length;
1156
+ newMenu.children = newMenu.children
1157
+ ?.filter((child) => !child.hidden && this.profileService.userHasPermission(child.permission))
1158
+ .map((menu) => this.removeHiddenChildren(menu))
1159
+ .filter((child) => !child.hidden);
1160
+ if (hadChildren &&
1161
+ !newMenu.children?.length &&
1162
+ !newMenu.route &&
1163
+ !newMenu.frameUrl &&
1164
+ !newMenu.externalUrl &&
1165
+ !newMenu.command) {
1166
+ newMenu.hidden = true;
1309
1167
  }
1310
- return null;
1168
+ return newMenu;
1311
1169
  }
1312
- static isValidCnpj(control) {
1313
- let cnpj = control.value;
1314
- cnpj = cnpj.replace(/[^\d]+/g, '');
1315
- // verificando se tem a quantidade certa de caracter e se não tem todos caracteres iguais
1316
- if (/^(\d)\1+$/.test(cnpj)) {
1317
- return { cnpjNotValid: true };
1170
+ generateId(menu, index, parentId = '') {
1171
+ menu.id = `${parentId}${index}`;
1172
+ menu.children = menu.children?.map((child, childIndex) => this.generateId(child, childIndex, menu.id));
1173
+ return menu;
1174
+ }
1175
+ handleFintechRedirects(params, tokenGuid, userId) {
1176
+ if (params.portal === 'fintech') {
1177
+ this.router.navigate([''], {
1178
+ queryParams: { Token: tokenGuid, role: params.admin ? btoa('ADMIN') : '', userId },
1179
+ });
1318
1180
  }
1319
- let t = cnpj.length - 2, d = cnpj.substring(t), d1 = parseInt(d.charAt(0)), d2 = parseInt(d.charAt(1)), calc = (x) => {
1320
- let n = cnpj.substring(0, x), y = x - 7, s = 0, r = 0;
1321
- for (let i = x; i >= 1; i--) {
1322
- s += n.charAt(x - i) * y--;
1323
- if (y < 2)
1324
- y = 9;
1181
+ else {
1182
+ let url = params.portal === 'marketplace' ? this.environment.MARKETPLACE_URL : this.environment.LOGITECH_URL;
1183
+ url += `?Token=${tokenGuid}&userId=${userId}`;
1184
+ if (params.admin) {
1185
+ url += `&role=${btoa('ADMIN')}`;
1325
1186
  }
1326
- r = 11 - (s % 11);
1327
- return r > 9 ? 0 : r;
1328
- };
1329
- if (calc(t) === d1 && calc(t + 1) === d2) {
1330
- return null;
1187
+ window.location.href = url;
1188
+ }
1189
+ }
1190
+ handleMarketplaceRedirects(params, tokenGuid, userId) {
1191
+ if (params.portal === 'marketplace') {
1192
+ this.router.navigate([''], {
1193
+ queryParams: { Token: tokenGuid, role: params.admin ? btoa('ADMIN') : '', userId: btoa(`${userId}`) },
1194
+ });
1331
1195
  }
1332
1196
  else {
1333
- return { cnpjNotValid: true };
1197
+ let url = params.portal === 'fintech' ? this.environment.FINTECH_URL : this.environment.LOGITECH_URL;
1198
+ url += `?Token=${tokenGuid}&userId=${userId}`;
1199
+ if (params.admin) {
1200
+ url += `&role=${btoa('ADMIN')}`;
1201
+ }
1202
+ window.location.href = url;
1334
1203
  }
1335
1204
  }
1336
- static majorAge(control) {
1337
- if (!control.value) {
1338
- return null;
1205
+ handleLogtechRedirects(params, tokenGuid, userId) {
1206
+ if (params.portal === 'logtech') {
1207
+ this.router.navigate([''], {
1208
+ queryParams: { Token: tokenGuid, userId: btoa(`${userId}`) },
1209
+ });
1339
1210
  }
1340
- const age = ~~((Date.now() - control.value) / 31557600000);
1341
- if (age < 18) {
1342
- return { isNotMajorAge: true };
1211
+ else {
1212
+ let url = params.portal === 'fintech' ? this.environment.FINTECH_URL : this.environment.MARKETPLACE_URL;
1213
+ url += `?Token=${tokenGuid}&userId=${userId}`;
1214
+ if (params.admin) {
1215
+ url += `&role=${btoa('ADMIN')}`;
1216
+ }
1217
+ window.location.href = url;
1343
1218
  }
1344
- return null;
1345
1219
  }
1346
- static matchField(anotherField) {
1347
- const validator = (control) => {
1348
- if (!control.value || !anotherField?.value) {
1349
- return null;
1350
- }
1351
- if (control.value !== anotherField?.value) {
1352
- return { fieldDoesNotMatch: true };
1353
- }
1354
- return null;
1355
- };
1356
- return validator;
1220
+ }
1221
+ MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, deps: [{ token: AuthService }, { token: i2$1.Router }, { token: StorageService }, { token: ProfileService }, { token: 'environment' }, { token: 'menuOptions' }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
1222
+ MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, providedIn: 'root' });
1223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuService, decorators: [{
1224
+ type: Injectable,
1225
+ args: [{ providedIn: 'root' }]
1226
+ }], ctorParameters: function () { return [{ type: AuthService }, { type: i2$1.Router }, { type: StorageService }, { type: ProfileService }, { type: undefined, decorators: [{
1227
+ type: Inject,
1228
+ args: ['environment']
1229
+ }] }, { type: undefined, decorators: [{
1230
+ type: Inject,
1231
+ args: ['menuOptions']
1232
+ }] }, { type: AppName, decorators: [{
1233
+ type: Inject,
1234
+ args: ['appName']
1235
+ }] }]; } });
1236
+
1237
+ class ModalService {
1238
+ constructor() {
1239
+ this.showModalBackground$ = new Subject();
1357
1240
  }
1358
- static cellphone(control) {
1359
- if (!control.value || control.value.length < 11) {
1360
- return null;
1241
+ }
1242
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1243
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, providedIn: 'root' });
1244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ModalService, decorators: [{
1245
+ type: Injectable,
1246
+ args: [{ providedIn: 'root' }]
1247
+ }] });
1248
+
1249
+ class StorageService {
1250
+ constructor() { }
1251
+ clear() {
1252
+ sessionStorage.clear();
1253
+ localStorage.clear();
1254
+ }
1255
+ clearSession() {
1256
+ sessionStorage.clear();
1257
+ }
1258
+ get(key) {
1259
+ const storageItem = localStorage.getItem(key);
1260
+ try {
1261
+ return storageItem ? JSON.parse(storageItem) : '';
1361
1262
  }
1362
- const firstNumber = control.value.substring(2, 3);
1363
- if (firstNumber != '9') {
1364
- return { cellphoneInvalid: true };
1263
+ catch (e) {
1264
+ return storageItem;
1365
1265
  }
1366
- return null;
1367
1266
  }
1368
- static lowerThanOrEqualTo(greaterControlName) {
1369
- const validator = (control) => {
1370
- const lowerValue = control.value;
1371
- const greaterValue = control.parent?.get(greaterControlName)?.value;
1372
- if (!control.parent?.get(greaterControlName)) {
1373
- console.log(`Control with name ${greaterControlName} not registered`);
1374
- return {};
1375
- }
1376
- if (ObjectUtil.isValid(lowerValue) &&
1377
- ObjectUtil.isValid(greaterValue) &&
1378
- lowerValue !== '' &&
1379
- greaterValue !== '' &&
1380
- +lowerValue > +greaterValue) {
1381
- return {
1382
- invalid: 'Valor mínimo deve ser menor ou igual ao valor máximo',
1383
- };
1384
- }
1385
- return {};
1386
- };
1387
- return validator;
1267
+ set(key, value) {
1268
+ localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));
1388
1269
  }
1389
- static greaterThanOrEqualTo(lowerControlName) {
1390
- const validator = (control) => {
1391
- const greaterValue = control.value;
1392
- const lowerValue = control.parent?.get(lowerControlName)?.value;
1393
- if (!control.parent?.get(lowerControlName)) {
1394
- console.log(`Control with name ${lowerControlName} not registered`);
1395
- return {};
1396
- }
1397
- if (ObjectUtil.isValid(lowerValue) &&
1398
- ObjectUtil.isValid(greaterValue) &&
1399
- lowerValue !== '' &&
1400
- greaterValue !== '' &&
1401
- +lowerValue > +greaterValue) {
1402
- return {
1403
- invalid: 'Valor máximo deve ser maior ou igual ao valor mínimo',
1404
- };
1405
- }
1406
- return {};
1407
- };
1408
- return validator;
1270
+ remove(key) {
1271
+ localStorage.removeItem(key);
1409
1272
  }
1410
- static notSequentialNumbers(length) {
1411
- const validator = (control) => {
1412
- const controlValue = control.value;
1413
- const sequentialNumbers = '01234567890123456789';
1414
- if (controlValue) {
1415
- if (controlValue.length === length) {
1416
- if (~sequentialNumbers.indexOf(control.value)) {
1417
- return { isSequential: true };
1418
- }
1419
- else if (!!controlValue.match(/^(\d)\1+$/)) {
1420
- return { isSequential: true };
1421
- }
1422
- else {
1423
- return null;
1424
- }
1273
+ getSession(key) {
1274
+ const storageItem = sessionStorage.getItem(key);
1275
+ try {
1276
+ return storageItem ? JSON.parse(storageItem) : '';
1277
+ }
1278
+ catch (e) {
1279
+ return storageItem;
1280
+ }
1281
+ }
1282
+ setSession(key, value) {
1283
+ sessionStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));
1284
+ }
1285
+ removeSession(key) {
1286
+ sessionStorage.removeItem(key);
1287
+ }
1288
+ getToken() {
1289
+ return localStorage.getItem('token') || '';
1290
+ }
1291
+ setToken(token) {
1292
+ localStorage.setItem('token', token);
1293
+ }
1294
+ removeToken() {
1295
+ localStorage.removeItem('token');
1296
+ }
1297
+ getRefreshToken() {
1298
+ return sessionStorage.getItem('refreshToken') || '';
1299
+ }
1300
+ setRefreshToken(refreshToken) {
1301
+ sessionStorage.setItem('refreshToken', refreshToken);
1302
+ }
1303
+ removeRefreshToken() {
1304
+ sessionStorage.removeItem('refreshToken');
1305
+ }
1306
+ getUsername() {
1307
+ return sessionStorage.getItem('username') || '';
1308
+ }
1309
+ setUsername(username) {
1310
+ sessionStorage.setItem('username', username);
1311
+ }
1312
+ removeUsername() {
1313
+ sessionStorage.removeItem('username');
1314
+ }
1315
+ getUserId() {
1316
+ const userId = sessionStorage.getItem('userId') || '';
1317
+ return userId ? +atob(userId) : 0;
1318
+ }
1319
+ setUserId(userId) {
1320
+ sessionStorage.setItem('userId', btoa(`${userId}`));
1321
+ }
1322
+ clearUserId() {
1323
+ sessionStorage.removeItem('userId');
1324
+ }
1325
+ getRole() {
1326
+ return atob(sessionStorage.getItem('role') || '');
1327
+ }
1328
+ setRole(role) {
1329
+ sessionStorage.setItem('role', role || '');
1330
+ }
1331
+ clearRole() {
1332
+ sessionStorage.removeItem('role');
1333
+ }
1334
+ getProfile() {
1335
+ const data = sessionStorage.getItem('profile') || '';
1336
+ return data ? JSON.parse(data) : data;
1337
+ }
1338
+ setProfile(profiles) {
1339
+ sessionStorage.setItem('profile', JSON.stringify(profiles || ''));
1340
+ }
1341
+ removeProfile() {
1342
+ sessionStorage.removeItem('profile');
1343
+ }
1344
+ }
1345
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1346
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, providedIn: 'root' });
1347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, decorators: [{
1348
+ type: Injectable,
1349
+ args: [{ providedIn: 'root' }]
1350
+ }], ctorParameters: function () { return []; } });
1351
+
1352
+ class ProfileService {
1353
+ constructor(http, storageService) {
1354
+ this.http = http;
1355
+ this.storageService = storageService;
1356
+ this.moduleProfile$ = new BehaviorSubject(this.storageService.getProfile().allModules);
1357
+ this.hasFintechAdminPermission = false;
1358
+ this.hasMarketplaceAdminPermission = false;
1359
+ this.hasAnyFintechPermission = false;
1360
+ this.hasAnyMarketplacePermission = false;
1361
+ const { fintech, marketplace } = this.storageService.getProfile();
1362
+ this.hasFintechAdminPermission = !!fintech?.actions.some((act) => [
1363
+ ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),
1364
+ ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),
1365
+ ].includes(act.name));
1366
+ this.hasMarketplaceAdminPermission = !!marketplace?.actions.some((act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE);
1367
+ this.hasAnyFintechPermission = !!fintech?.actions?.length;
1368
+ this.hasAnyMarketplacePermission = !!marketplace?.actions?.length;
1369
+ }
1370
+ getUserProfile() {
1371
+ this.http.get('connect/userinfo').subscribe((response) => {
1372
+ const completeProfile = response.profile;
1373
+ const marketplaceProfileModule = completeProfile.modules.find((mod) => mod.name === 'Marketplace');
1374
+ const fintechProfileModule = completeProfile.modules.find((mod) => mod.name === 'Fintech');
1375
+ const allModules = completeProfile.modules;
1376
+ this.hasFintechAdminPermission = !!fintechProfileModule?.actions.some((act) => [
1377
+ ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),
1378
+ ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),
1379
+ ].includes(act.name));
1380
+ this.hasMarketplaceAdminPermission = !!marketplaceProfileModule?.actions.some((act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE);
1381
+ this.hasAnyFintechPermission = !!fintechProfileModule?.actions?.length;
1382
+ this.storageService.setProfile({
1383
+ marketplace: marketplaceProfileModule,
1384
+ fintech: fintechProfileModule,
1385
+ allModules,
1386
+ });
1387
+ this.moduleProfile$.next(allModules);
1388
+ });
1389
+ }
1390
+ userHasPermission(action) {
1391
+ if (!action) {
1392
+ return true;
1393
+ }
1394
+ if (!this.moduleProfile$.value) {
1395
+ return false;
1396
+ }
1397
+ if (Array.isArray(action)) {
1398
+ return action.some((act) => {
1399
+ if (Object.values(ProfileModuleActionType).some((val) => val === act)) {
1400
+ return this.moduleProfile$.value?.some((module) => module.actions.some((moduleAction) => moduleAction.name === act));
1425
1401
  }
1402
+ if (Object.values(ProfileModuleType).some((val) => val === act)) {
1403
+ return this.moduleProfile$.value?.some((module) => module.name === act);
1404
+ }
1405
+ return false;
1406
+ });
1407
+ }
1408
+ else {
1409
+ if (Object.values(ProfileModuleActionType).some((val) => val === action)) {
1410
+ return this.moduleProfile$.value.some((module) => module.actions.some((act) => act.name === action));
1426
1411
  }
1427
- return null;
1428
- };
1429
- return validator;
1430
- }
1431
- static firstLetterIsUppercase(control) {
1432
- const controlValue = control.value;
1433
- const regex = /^([A-ZÀ-Ú][a-zà-ú]*)(?:\s+([A-ZÀ-Ú][a-zà-ú]*))*$/;
1434
- if (!!controlValue) {
1435
- if (!controlValue.match(regex)) {
1436
- return { invalidField: true };
1412
+ if (Object.values(ProfileModuleType).some((val) => val === action)) {
1413
+ return this.moduleProfile$.value.some((module) => module.name === action);
1437
1414
  }
1438
- return null;
1439
1415
  }
1440
- return null;
1416
+ return false;
1441
1417
  }
1442
- static containsLettersAndNumbers(control) {
1443
- const controlValue = control.value;
1444
- const regex = /^(?=.*[0-9])(?=.*[a-z])([a-z0-9_-]+)$/;
1445
- if (!!controlValue) {
1446
- if (!!!controlValue.match(regex)) {
1447
- return { isNotAlphaNumeric: true };
1418
+ }
1419
+ ProfileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, deps: [{ token: i1$2.HttpClient }, { token: StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
1420
+ ProfileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, providedIn: 'root' });
1421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ProfileService, decorators: [{
1422
+ type: Injectable,
1423
+ args: [{ providedIn: 'root' }]
1424
+ }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: StorageService }]; } });
1425
+
1426
+ class FieldErrorMessageComponent {
1427
+ constructor() { }
1428
+ ngOnInit() { }
1429
+ fieldErrorLabel() {
1430
+ if (this.control && this.control.invalid && this.control.touched) {
1431
+ if (this.control.hasError('required')) {
1432
+ return 'Campo obrigatório';
1448
1433
  }
1449
- return null;
1434
+ if (this.control.hasError('minlength')) {
1435
+ return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;
1436
+ }
1437
+ if (this.control.hasError('maxlength')) {
1438
+ return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;
1439
+ }
1440
+ return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';
1450
1441
  }
1451
- return null;
1442
+ return '';
1452
1443
  }
1453
- }
1444
+ }
1445
+ FieldErrorMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1446
+ FieldErrorMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: { control: "control" }, ngImport: i0, template: "<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n", styles: [".input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}\n"] });
1447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldErrorMessageComponent, decorators: [{
1448
+ type: Component,
1449
+ args: [{ selector: 'vector-field-error-message', template: "<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n", styles: [".input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}\n"] }]
1450
+ }], ctorParameters: function () { return []; }, propDecorators: { control: [{
1451
+ type: Input
1452
+ }] } });
1454
1453
 
1455
- class WindowUtil {
1456
- static isSmallDevice() {
1457
- return window.innerWidth < 640;
1454
+ class CalendarComponent {
1455
+ constructor(modalService) {
1456
+ this.modalService = modalService;
1457
+ this.isRequired = false;
1458
+ this.label = '';
1459
+ this.showCalendarOnFocus = true;
1460
+ this.min = DateTime.fromFormat('01/01/1900', 'dd/MM/yyyy').toJSDate();
1461
+ this.max = DateTime.now().startOf('day').plus({ years: 1 }).toJSDate();
1462
+ this.disabledDates = [];
1463
+ this.disabled = false;
1464
+ this.defaultDate = DateTime.now().toJSDate();
1465
+ this.hiddenErrorMessage = false;
1466
+ this.keyFilter = '';
1458
1467
  }
1459
- static isDesktop() {
1460
- return window.innerWidth >= 1024;
1468
+ get placeholder() {
1469
+ if (!this.label) {
1470
+ return '';
1471
+ }
1472
+ return `${this.label}${this.isRequired ? '*' : ''}`;
1461
1473
  }
1462
- }
1474
+ fieldErrorLabel() {
1475
+ if (this.control && this.control.invalid && this.control.touched) {
1476
+ if (this.control.hasError('required')) {
1477
+ return 'Campo obrigatório';
1478
+ }
1479
+ if (this.control.hasError('maxlength')) {
1480
+ return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;
1481
+ }
1482
+ return 'Campo inválido';
1483
+ }
1484
+ return '';
1485
+ }
1486
+ onShowCalendar() {
1487
+ this.modalService.showModalBackground$.next(true);
1488
+ }
1489
+ onHideCalendar() {
1490
+ this.modalService.showModalBackground$.next(false);
1491
+ }
1492
+ }
1493
+ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1494
+ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CalendarComponent, selector: "vector-calendar-field", inputs: { isRequired: "isRequired", control: "control", label: "label", showCalendarOnFocus: "showCalendarOnFocus", min: "min", max: "max", disabledDates: "disabledDates", disabled: "disabled", defaultDate: "defaultDate", hiddenErrorMessage: "hiddenErrorMessage" }, ngImport: i0, template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:var(--border-radius);height:40px}.input-container input:disabled{cursor:not-allowed;background-color:var(--disabled-background);opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:var(--placeholder-color);font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:var(--error-color)!important}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"], components: [{ type: i2$3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, decorators: [{
1496
+ type: Component,
1497
+ args: [{ selector: 'vector-calendar-field', template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:var(--border-radius);height:40px}.input-container input:disabled{cursor:not-allowed;background-color:var(--disabled-background);opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:var(--placeholder-color);font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:var(--error-color)!important}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"] }]
1498
+ }], ctorParameters: function () { return [{ type: ModalService }]; }, propDecorators: { isRequired: [{
1499
+ type: Input
1500
+ }], control: [{
1501
+ type: Input
1502
+ }], label: [{
1503
+ type: Input
1504
+ }], showCalendarOnFocus: [{
1505
+ type: Input
1506
+ }], min: [{
1507
+ type: Input
1508
+ }], max: [{
1509
+ type: Input
1510
+ }], disabledDates: [{
1511
+ type: Input
1512
+ }], disabled: [{
1513
+ type: Input
1514
+ }], defaultDate: [{
1515
+ type: Input
1516
+ }], hiddenErrorMessage: [{
1517
+ type: Input
1518
+ }] } });
1519
+
1520
+ class CheckboxFieldComponent {
1521
+ constructor() {
1522
+ this.isRequired = false;
1523
+ this.label = '';
1524
+ this.rounded = false;
1525
+ this.labelSize = 'default';
1526
+ this.value = false;
1527
+ this.disabled = false;
1528
+ this.valueChange = new EventEmitter();
1529
+ }
1530
+ ngOnInit() { }
1531
+ }
1532
+ CheckboxFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CheckboxFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1533
+ CheckboxFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CheckboxFieldComponent, selector: "vector-checkbox-field", inputs: { isRequired: "isRequired", control: "control", label: "label", rounded: "rounded", labelSize: "labelSize", value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"checkbox-container\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n ></p-checkbox>\r\n <p-checkbox\r\n *ngIf=\"!control\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"value = $event; valueChange.emit($event)\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"control.setValue(!control.value)\"\r\n >{{ label }}\r\n <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\r\n </label>\r\n</div>\r\n", styles: [".checkbox-container{display:flex;align-items:center}.checkbox-container label{margin-left:10px}.checkbox-container .large-label{font-size:1em}\n"], components: [{ type: i1$4.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
1535
+ type: Component,
1536
+ args: [{ selector: 'vector-checkbox-field', template: "<div class=\"checkbox-container\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n ></p-checkbox>\r\n <p-checkbox\r\n *ngIf=\"!control\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"value = $event; valueChange.emit($event)\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"control.setValue(!control.value)\"\r\n >{{ label }}\r\n <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\r\n </label>\r\n</div>\r\n", styles: [".checkbox-container{display:flex;align-items:center}.checkbox-container label{margin-left:10px}.checkbox-container .large-label{font-size:1em}\n"] }]
1537
+ }], ctorParameters: function () { return []; }, propDecorators: { isRequired: [{
1538
+ type: Input
1539
+ }], control: [{
1540
+ type: Input
1541
+ }], label: [{
1542
+ type: Input
1543
+ }], rounded: [{
1544
+ type: Input
1545
+ }], labelSize: [{
1546
+ type: Input
1547
+ }], value: [{
1548
+ type: Input
1549
+ }], disabled: [{
1550
+ type: Input
1551
+ }], valueChange: [{
1552
+ type: Output
1553
+ }] } });
1463
1554
 
1464
1555
  class CurrencyFieldComponent {
1465
1556
  constructor() {
@@ -1548,10 +1639,10 @@ class CurrencyFieldComponent {
1548
1639
  }
1549
1640
  }
1550
1641
  CurrencyFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1551
- CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label" }, ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"{outlined, rounded}\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"focusLastIndex($event)\"\r\n (onKeyDown)=\"inputNextChar($event)\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
1642
+ CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label" }, ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"{outlined, rounded}\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"focusLastIndex($event)\"\r\n (onKeyDown)=\"inputNextChar($event)\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
1552
1643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
1553
1644
  type: Component,
1554
- args: [{ selector: 'vector-currency-field', template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"{outlined, rounded}\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"focusLastIndex($event)\"\r\n (onKeyDown)=\"inputNextChar($event)\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"] }]
1645
+ args: [{ selector: 'vector-currency-field', template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"{outlined, rounded}\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"focusLastIndex($event)\"\r\n (onKeyDown)=\"inputNextChar($event)\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"] }]
1555
1646
  }], propDecorators: { minValue: [{
1556
1647
  type: Input
1557
1648
  }], maxValue: [{
@@ -1736,10 +1827,10 @@ class TextFieldComponent {
1736
1827
  }
1737
1828
  }
1738
1829
  TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1739
- TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", decimal: "decimal", onlyText: "onlyText", alphaNumeric: "alphaNumeric", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", hiddenErrorMessage: "hiddenErrorMessage", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2$4.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.InputText, selector: "[pInputText]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i7.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1830
+ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", decimal: "decimal", onlyText: "onlyText", alphaNumeric: "alphaNumeric", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", hiddenErrorMessage: "hiddenErrorMessage", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: i2$5.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i2$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.InputText, selector: "[pInputText]" }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i7.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1740
1831
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, decorators: [{
1741
1832
  type: Component,
1742
- args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}\n"] }]
1833
+ args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}\n"] }]
1743
1834
  }], propDecorators: { isRequired: [{
1744
1835
  type: Input
1745
1836
  }], label: [{
@@ -1791,6 +1882,7 @@ class DropdownFieldComponent {
1791
1882
  this.isLoading = false;
1792
1883
  this.pagedSuggestions = [];
1793
1884
  this.unlistenAutocompleteVirtualScroll = () => { };
1885
+ this.selectedDynamicFilter = this.dynamicFilters ? this.dynamicFilters[0].code : undefined;
1794
1886
  this._options = [];
1795
1887
  this.currentScrollPage = -1;
1796
1888
  this.currentScrollIndex = 0;
@@ -1909,10 +2001,10 @@ class DropdownFieldComponent {
1909
2001
  }
1910
2002
  }
1911
2003
  DropdownFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DropdownFieldComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1912
- 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" }, outputs: { onFocus: "onFocus" }, ngImport: i0, template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n >\r\n </p-autoComplete>\r\n <vector-button\r\n *ngIf=\"buttonAction\"\r\n [label]=\"buttonAction.label\"\r\n [disabled]=\"!control.value\"\r\n (onClick)=\"buttonAction.onClick(control.value)\"\r\n ></vector-button>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{display:flex;align-items:flex-end}@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%}}\n"], components: [{ type: i1$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", "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", "noShadow"], outputs: ["onClick"] }, { type: FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2004
+ 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" }, outputs: { onFocus: "onFocus" }, ngImport: i0, template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <div class=\"input-inner-container\">\r\n <p-dropdown\r\n *ngIf=\"dynamicFilters\"\r\n ppendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n [(ngModel)]=\"selectedDynamicFilter\"\r\n [options]=\"dynamicFilters\"\r\n >\r\n </p-dropdown>\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n >\r\n </p-autoComplete>\r\n </div>\r\n <vector-button\r\n *ngIf=\"buttonAction\"\r\n [label]=\"buttonAction.label\"\r\n [disabled]=\"!control.value\"\r\n (onClick)=\"buttonAction.onClick(control.value)\"\r\n ></vector-button>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\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", "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"] }] });
1913
2005
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DropdownFieldComponent, decorators: [{
1914
2006
  type: Component,
1915
- args: [{ selector: 'vector-dropdown-field', template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n >\r\n </p-autoComplete>\r\n <vector-button\r\n *ngIf=\"buttonAction\"\r\n [label]=\"buttonAction.label\"\r\n [disabled]=\"!control.value\"\r\n (onClick)=\"buttonAction.onClick(control.value)\"\r\n ></vector-button>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{display:flex;align-items:flex-end}@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%}}\n"] }]
2007
+ args: [{ selector: 'vector-dropdown-field', template: "<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <div class=\"input-inner-container\">\r\n <p-dropdown\r\n *ngIf=\"dynamicFilters\"\r\n ppendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n [(ngModel)]=\"selectedDynamicFilter\"\r\n [options]=\"dynamicFilters\"\r\n >\r\n </p-dropdown>\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n >\r\n </p-autoComplete>\r\n </div>\r\n <vector-button\r\n *ngIf=\"buttonAction\"\r\n [label]=\"buttonAction.label\"\r\n [disabled]=\"!control.value\"\r\n (onClick)=\"buttonAction.onClick(control.value)\"\r\n ></vector-button>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\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"] }]
1916
2008
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { options: [{
1917
2009
  type: Input
1918
2010
  }], isRequired: [{
@@ -1931,10 +2023,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
1931
2023
  type: Input
1932
2024
  }], hiddenErrorMessage: [{
1933
2025
  type: Input
2026
+ }], dynamicFilters: [{
2027
+ type: Input
1934
2028
  }], onFocus: [{
1935
2029
  type: Output
1936
2030
  }] } });
1937
2031
 
2032
+ class SelectButtonFieldComponent {
2033
+ constructor() {
2034
+ this.options = [];
2035
+ }
2036
+ }
2037
+ SelectButtonFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SelectButtonFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2038
+ SelectButtonFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: { options: "options", control: "control" }, ngImport: i0, template: "<div class=\"input-container p-input-icon-right\">\r\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\r\n</div>\r\n", styles: [""], components: [{ type: i1$7.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }], directives: [{ type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SelectButtonFieldComponent, decorators: [{
2040
+ type: Component,
2041
+ args: [{ selector: 'vector-select-button-field', template: "<div class=\"input-container p-input-icon-right\">\r\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\r\n</div>\r\n", styles: [""] }]
2042
+ }], ctorParameters: function () { return []; }, propDecorators: { options: [{
2043
+ type: Input
2044
+ }], control: [{
2045
+ type: Input
2046
+ }] } });
2047
+
1938
2048
  var FieldType;
1939
2049
  (function (FieldType) {
1940
2050
  FieldType[FieldType["DROPDOWN"] = 0] = "DROPDOWN";
@@ -1942,6 +2052,8 @@ var FieldType;
1942
2052
  FieldType[FieldType["DATE"] = 2] = "DATE";
1943
2053
  FieldType[FieldType["NUMBER"] = 3] = "NUMBER";
1944
2054
  FieldType[FieldType["CURRENCY"] = 4] = "CURRENCY";
2055
+ FieldType[FieldType["DYNAMIC_DROPDOWN"] = 5] = "DYNAMIC_DROPDOWN";
2056
+ FieldType[FieldType["SELECT_BUTTON"] = 6] = "SELECT_BUTTON";
1945
2057
  })(FieldType || (FieldType = {}));
1946
2058
  class FiltersComponent {
1947
2059
  constructor() {
@@ -1974,6 +2086,9 @@ class FiltersComponent {
1974
2086
  get fields() {
1975
2087
  return this._fields;
1976
2088
  }
2089
+ get hideFilters() {
2090
+ return !this.fields?.filter((item) => !item.hidden).length;
2091
+ }
1977
2092
  ngOnInit() { }
1978
2093
  ngOnDestroy() {
1979
2094
  this.subscription.unsubscribe();
@@ -2016,6 +2131,11 @@ class FiltersComponent {
2016
2131
  case 'medium':
2017
2132
  return 'md:col-3';
2018
2133
  case 'large':
2134
+ return 'md:col-4';
2135
+ case 'largest':
2136
+ return 'md:col-8';
2137
+ case 'full':
2138
+ return 'md:col-12';
2019
2139
  default:
2020
2140
  return 'md:col-4';
2021
2141
  }
@@ -2041,10 +2161,10 @@ class FiltersComponent {
2041
2161
  }
2042
2162
  }
2043
2163
  FiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2044
- FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<section class=\"grid filter-container\" [hidden]=\"!fields?.length\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n </div>\r\n <div class=\"search-button col-12 sm:col-4 md:col-2\">\r\n <vector-button label=\"Pesquisar\" (click)=\"search()\" [disabled]=\"!formGroup.valid\"></vector-button>\r\n </div>\r\n</section>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}\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"], outputs: ["onFocus"] }, { type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined", "rounded", "label"] }, { type: CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }], directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "notHidden": NotHiddenPipe } });
2164
+ FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN || field.type === fieldTypes.DYNAMIC_DROPDOWN\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n >\r\n </vector-select-button-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n label=\"Pesquisar\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n style=\"float: right; width: 150px\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\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}}.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"], outputs: ["onFocus"] }, { type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined", "rounded", "label"] }, { 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 } });
2045
2165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, decorators: [{
2046
2166
  type: Component,
2047
- args: [{ selector: 'vector-filters', template: "<section class=\"grid filter-container\" [hidden]=\"!fields?.length\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n </div>\r\n <div class=\"search-button col-12 sm:col-4 md:col-2\">\r\n <vector-button label=\"Pesquisar\" (click)=\"search()\" [disabled]=\"!formGroup.valid\"></vector-button>\r\n </div>\r\n</section>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}\n"] }]
2167
+ args: [{ selector: 'vector-filters', template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN || field.type === fieldTypes.DYNAMIC_DROPDOWN\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n >\r\n </vector-select-button-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n label=\"Pesquisar\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n style=\"float: right; width: 150px\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\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}}.display-none{display:none!important}\n"] }]
2048
2168
  }], ctorParameters: function () { return []; }, propDecorators: { fields: [{
2049
2169
  type: Input
2050
2170
  }], onSearch: [{
@@ -2062,9 +2182,12 @@ class DataTableComponent {
2062
2182
  this.addItemLabel = '';
2063
2183
  this.pagination = true;
2064
2184
  this.virtualPagination = false;
2185
+ this.addItemButtonPlusSign = false;
2065
2186
  this.onLazyLoad = new EventEmitter();
2066
2187
  this.onFilter = new EventEmitter();
2067
2188
  this.onAdd = new EventEmitter();
2189
+ this.onExportExcel = new EventEmitter();
2190
+ this.onExportPDF = new EventEmitter();
2068
2191
  this._tabs = [];
2069
2192
  this.draw = 1;
2070
2193
  this.firstLazyLoadedDone = false;
@@ -2182,10 +2305,10 @@ class DataTableComponent {
2182
2305
  }
2183
2306
  }
2184
2307
  DataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2185
- DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-8 lg:col-9\">\r\n <vector-filters [fields]=\"filters\" (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"></vector-filters>\r\n </div>\r\n <div class=\"col-12 md:col-4 lg:col-3 add-button-container\" *ngIf=\"addItemLabel\">\r\n <div class=\"grid\">\r\n <div class=\"col-12 add-button-container field\">\r\n <vector-button [label]=\"addItemLabel\" (click)=\"onAdd.emit()\"></vector-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel>\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item>\r\n <tr class=\"row\">\r\n <td style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <vector-button (onClick)=\"menu.toggle($event)\" leftIcon=\"fas fa-cog\" style=\"width: 50px\"></vector-button>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.add-button-container{display:flex;justify-content:flex-end;align-items:flex-end}@media (max-width: 767px){.add-button-container{justify-content:unset;min-height:unset}}@media (min-width: 768px){.add-button-container{margin-top:-3px}}\n"], components: [{ type: FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: PanelComponent, selector: "vector-panel" }, { type: i4$1.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4$1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i6$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }] });
2308
+ DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs", addItemButtonPlusSign: "addItemButtonPlusSign" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd", onExportExcel: "onExportExcel", onExportPDF: "onExportPDF" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters [fields]=\"filters\" (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item>\r\n <tr class=\"row\">\r\n <td style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"], components: [{ type: FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: PanelComponent, selector: "vector-panel" }, { type: i4.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i6$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }] });
2186
2309
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, decorators: [{
2187
2310
  type: Component,
2188
- args: [{ selector: 'vector-data-table', template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-8 lg:col-9\">\r\n <vector-filters [fields]=\"filters\" (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"></vector-filters>\r\n </div>\r\n <div class=\"col-12 md:col-4 lg:col-3 add-button-container\" *ngIf=\"addItemLabel\">\r\n <div class=\"grid\">\r\n <div class=\"col-12 add-button-container field\">\r\n <vector-button [label]=\"addItemLabel\" (click)=\"onAdd.emit()\"></vector-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel>\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item>\r\n <tr class=\"row\">\r\n <td style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <vector-button (onClick)=\"menu.toggle($event)\" leftIcon=\"fas fa-cog\" style=\"width: 50px\"></vector-button>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.add-button-container{display:flex;justify-content:flex-end;align-items:flex-end}@media (max-width: 767px){.add-button-container{justify-content:unset;min-height:unset}}@media (min-width: 768px){.add-button-container{margin-top:-3px}}\n"] }]
2311
+ args: [{ selector: 'vector-data-table', template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters [fields]=\"filters\" (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item>\r\n <tr class=\"row\">\r\n <td style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"] }]
2189
2312
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
2190
2313
  type: Input
2191
2314
  }], data: [{
@@ -2206,12 +2329,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2206
2329
  type: Input
2207
2330
  }], tabs: [{
2208
2331
  type: Input
2332
+ }], addItemButtonPlusSign: [{
2333
+ type: Input
2209
2334
  }], onLazyLoad: [{
2210
2335
  type: Output
2211
2336
  }], onFilter: [{
2212
2337
  type: Output
2213
2338
  }], onAdd: [{
2214
2339
  type: Output
2340
+ }], onExportExcel: [{
2341
+ type: Output
2342
+ }], onExportPDF: [{
2343
+ type: Output
2215
2344
  }], filtersComponent: [{
2216
2345
  type: ViewChild,
2217
2346
  args: [FiltersComponent, { static: true }]
@@ -2240,10 +2369,10 @@ class MultiselectFieldComponent {
2240
2369
  }
2241
2370
  }
2242
2371
  MultiselectFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MultiselectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2243
- MultiselectFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { isRequired: "isRequired", control: "control", label: "label", options: "options" }, ngImport: i0, template: "<div class=\"input-container\">\r\n <p-multiSelect\r\n #multiselect\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"false\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n optionLabel=\"name\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Mostrar todos\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"true\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{height:62px}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"], components: [{ type: i1$7.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "autoZIndex", "baseZIndex", "filterBy", "virtualScroll", "itemSize", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "scrollHeight", "defaultLabel", "placeholder", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onPanelShow", "onPanelHide"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2372
+ MultiselectFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { isRequired: "isRequired", control: "control", label: "label", options: "options" }, ngImport: i0, template: "<div class=\"input-container\">\r\n <p-multiSelect\r\n #multiselect\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"false\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n optionLabel=\"name\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Mostrar todos\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"true\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".input-container{height:62px}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"], components: [{ type: i1$8.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "label", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "autoZIndex", "baseZIndex", "filterBy", "virtualScroll", "itemSize", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "scrollHeight", "defaultLabel", "placeholder", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onPanelShow", "onPanelHide"] }], directives: [{ type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2244
2373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MultiselectFieldComponent, decorators: [{
2245
2374
  type: Component,
2246
- args: [{ selector: 'vector-multiselect-field', template: "<div class=\"input-container\">\r\n <p-multiSelect\r\n #multiselect\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"false\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n optionLabel=\"name\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Mostrar todos\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"true\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{height:62px}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"] }]
2375
+ args: [{ selector: 'vector-multiselect-field', template: "<div class=\"input-container\">\r\n <p-multiSelect\r\n #multiselect\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"false\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n optionLabel=\"name\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Mostrar todos\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"true\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".input-container{height:62px}.input-container .input-error{font-size:.7em;color:var(--error-color)}\n"] }]
2247
2376
  }], propDecorators: { isRequired: [{
2248
2377
  type: Input
2249
2378
  }], control: [{
@@ -2265,10 +2394,10 @@ class PercentageFieldComponent {
2265
2394
  }
2266
2395
  }
2267
2396
  PercentageFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PercentageFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2268
- PercentageFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: PercentageFieldComponent, selector: "vector-percentage-field", inputs: { control: "control", min: "min", max: "max" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent" }, ngImport: i0, template: "<form class=\"input-container\">\r\n <p-inputNumber [formControl]=\"control\" suffix=\"%\" [min]=\"min\" [max]=\"max\"></p-inputNumber>\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2397
+ PercentageFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: PercentageFieldComponent, selector: "vector-percentage-field", inputs: { control: "control", min: "min", max: "max" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent" }, ngImport: i0, template: "<form class=\"input-container\">\r\n <p-inputNumber [formControl]=\"control\" suffix=\"%\" [min]=\"min\" [max]=\"max\"></p-inputNumber>\r\n</form>\r\n", styles: [".input-container{width:100%}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2269
2398
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: PercentageFieldComponent, decorators: [{
2270
2399
  type: Component,
2271
- args: [{ selector: 'vector-percentage-field', template: "<form class=\"input-container\">\r\n <p-inputNumber [formControl]=\"control\" suffix=\"%\" [min]=\"min\" [max]=\"max\"></p-inputNumber>\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%}\n"] }]
2400
+ args: [{ selector: 'vector-percentage-field', template: "<form class=\"input-container\">\r\n <p-inputNumber [formControl]=\"control\" suffix=\"%\" [min]=\"min\" [max]=\"max\"></p-inputNumber>\r\n</form>\r\n", styles: [".input-container{width:100%}\n"] }]
2272
2401
  }], propDecorators: { control: [{
2273
2402
  type: Input
2274
2403
  }], min: [{
@@ -2299,7 +2428,7 @@ class RadioButtonFieldComponent {
2299
2428
  }
2300
2429
  }
2301
2430
  RadioButtonFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RadioButtonFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2302
- RadioButtonFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{display:flex;flex-wrap:wrap;align-items:center;height:100%;width:100%}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{flex-direction:row}\n"], components: [{ type: i1$8.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2431
+ RadioButtonFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{display:flex;flex-wrap:wrap;align-items:center;height:100%;width:100%}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{flex-direction:row}\n"], components: [{ type: i1$9.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2303
2432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RadioButtonFieldComponent, decorators: [{
2304
2433
  type: Component,
2305
2434
  args: [{ selector: 'vector-radio-button-field', template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{display:flex;flex-wrap:wrap;align-items:center;height:100%;width:100%}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{flex-direction:row}\n"] }]
@@ -2360,10 +2489,10 @@ class RangeValueComponent {
2360
2489
  }
2361
2490
  }
2362
2491
  RangeValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RangeValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2363
- RangeValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: RangeValueComponent, selector: "vector-range-value", inputs: { value: "value", movimentedValue: "movimentedValue", min: "min", max: "max" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"], components: [{ type: i1$9.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabelledBy", "tabindex"], outputs: ["onChange", "onSlideEnd"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
2492
+ RangeValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: RangeValueComponent, selector: "vector-range-value", inputs: { value: "value", movimentedValue: "movimentedValue", min: "min", max: "max" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"], components: [{ type: i1$a.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabelledBy", "tabindex"], outputs: ["onChange", "onSlideEnd"] }], directives: [{ 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"] }] });
2364
2493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RangeValueComponent, decorators: [{
2365
2494
  type: Component,
2366
- args: [{ selector: 'vector-range-value', template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"] }]
2495
+ args: [{ selector: 'vector-range-value', template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"] }]
2367
2496
  }], ctorParameters: function () { return []; }, propDecorators: { value: [{
2368
2497
  type: Input
2369
2498
  }], movimentedValue: [{
@@ -2454,10 +2583,10 @@ class TextareaFieldComponent {
2454
2583
  }
2455
2584
  }
2456
2585
  TextareaFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextareaFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2457
- TextareaFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextareaFieldComponent, selector: "vector-textarea-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent" }, ngImport: i0, template: "<form class=\"input-container\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"5\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [autoResize]=\"false\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n >\r\n </textarea>\r\n <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%;position:relative}.input-container .length-control{position:absolute;right:15px;bottom:15px;opacity:.8;font-size:.6rem}\n"], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$5.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
2586
+ TextareaFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextareaFieldComponent, selector: "vector-textarea-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent" }, ngImport: i0, template: "<form class=\"input-container\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"5\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [autoResize]=\"false\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n >\r\n </textarea>\r\n <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\r\n</form>\r\n", styles: [".input-container{width:100%;position:relative}.input-container .length-control{position:absolute;right:15px;bottom:15px;opacity:.8;font-size:.6rem}\n"], directives: [{ type: i2$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$7.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
2458
2587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextareaFieldComponent, decorators: [{
2459
2588
  type: Component,
2460
- args: [{ selector: 'vector-textarea-field', template: "<form class=\"input-container\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"5\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [autoResize]=\"false\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n >\r\n </textarea>\r\n <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\r\n</form>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.input-container{width:100%;position:relative}.input-container .length-control{position:absolute;right:15px;bottom:15px;opacity:.8;font-size:.6rem}\n"] }]
2589
+ args: [{ selector: 'vector-textarea-field', template: "<form class=\"input-container\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"5\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [autoResize]=\"false\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n >\r\n </textarea>\r\n <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\r\n</form>\r\n", styles: [".input-container{width:100%;position:relative}.input-container .length-control{position:absolute;right:15px;bottom:15px;opacity:.8;font-size:.6rem}\n"] }]
2461
2590
  }], propDecorators: { isRequired: [{
2462
2591
  type: Input
2463
2592
  }], label: [{
@@ -2491,7 +2620,8 @@ FieldsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
2491
2620
  DataTableComponent,
2492
2621
  FiltersComponent,
2493
2622
  TextareaFieldComponent,
2494
- FieldErrorMessageComponent], imports: [SharedModule,
2623
+ FieldErrorMessageComponent,
2624
+ SelectButtonFieldComponent], imports: [SharedModule,
2495
2625
  FormsModule,
2496
2626
  ReactiveFormsModule,
2497
2627
  KeyFilterModule,
@@ -2512,7 +2642,8 @@ FieldsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
2512
2642
  TabViewModule,
2513
2643
  PanelModule,
2514
2644
  ButtonModule,
2515
- InputTextareaModule], exports: [TextFieldComponent,
2645
+ InputTextareaModule,
2646
+ SelectButtonModule], exports: [TextFieldComponent,
2516
2647
  CheckboxFieldComponent,
2517
2648
  ButtonComponent,
2518
2649
  CalendarComponent,
@@ -2528,7 +2659,8 @@ FieldsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
2528
2659
  DataTableComponent,
2529
2660
  FiltersComponent,
2530
2661
  TextareaFieldComponent,
2531
- FieldErrorMessageComponent] });
2662
+ FieldErrorMessageComponent,
2663
+ SelectButtonFieldComponent] });
2532
2664
  FieldsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldsModule, imports: [[
2533
2665
  SharedModule,
2534
2666
  FormsModule,
@@ -2552,6 +2684,7 @@ FieldsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
2552
2684
  PanelModule,
2553
2685
  ButtonModule,
2554
2686
  InputTextareaModule,
2687
+ SelectButtonModule,
2555
2688
  ], FileUploadModule,
2556
2689
  DialogModule] });
2557
2690
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FieldsModule, decorators: [{
@@ -2580,6 +2713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2580
2713
  PanelModule,
2581
2714
  ButtonModule,
2582
2715
  InputTextareaModule,
2716
+ SelectButtonModule,
2583
2717
  ],
2584
2718
  declarations: [
2585
2719
  TextFieldComponent,
@@ -2597,6 +2731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2597
2731
  FiltersComponent,
2598
2732
  TextareaFieldComponent,
2599
2733
  FieldErrorMessageComponent,
2734
+ SelectButtonFieldComponent,
2600
2735
  ],
2601
2736
  exports: [
2602
2737
  TextFieldComponent,
@@ -2616,6 +2751,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2616
2751
  FiltersComponent,
2617
2752
  TextareaFieldComponent,
2618
2753
  FieldErrorMessageComponent,
2754
+ SelectButtonFieldComponent,
2619
2755
  ],
2620
2756
  }]
2621
2757
  }] });
@@ -2634,6 +2770,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
2634
2770
  }]
2635
2771
  }] });
2636
2772
 
2773
+ class CrudHeaderComponent {
2774
+ constructor() { }
2775
+ get statusLabel() {
2776
+ switch (this.statusCode) {
2777
+ case Status.PENDING:
2778
+ return 'Pendente';
2779
+ case Status.APPROVED:
2780
+ return 'Ativo';
2781
+ case Status.REJECTED:
2782
+ return 'Inativo';
2783
+ }
2784
+ return '';
2785
+ }
2786
+ ngOnInit() { }
2787
+ }
2788
+ CrudHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2789
+ CrudHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudHeaderComponent, selector: "vector-crud-header", inputs: { statusCode: "statusCode", code: "code" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"status-container\">\r\n <span>Status</span>\r\n <vector-badge [label]=\"statusLabel\" [type]=\"statusCode\"></vector-badge>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <span class=\"code-label\"\r\n >C\u00F3digo de identifica\u00E7\u00E3o<span class=\"code\">{{ code }}</span></span\r\n >\r\n</div>\r\n", styles: [".container{display:flex;align-items:center;margin-bottom:15px;justify-content:space-between;flex-wrap:wrap}@media (min-width: 441px){.container{justify-content:flex-end;height:40px}}.container .status-container{display:flex;align-items:center}.container .status-container vector-badge{margin-left:15px}.container .separator{width:1px;height:100%;margin:0 20px;background-color:var(--gray-medium)}@media (max-width: 440px){.container .separator{display:none}}.container .code-label{color:var(--form-labels-color);font-size:13px;max-width:150px;line-height:1rem}.container .code-label .code{color:#000;font-weight:600;font-size:20px;margin-left:10px}\n"], components: [{ type: BadgeComponent, selector: "vector-badge", inputs: ["type", "label", "customColor", "customBackgroundColor"] }] });
2790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderComponent, decorators: [{
2791
+ type: Component,
2792
+ args: [{ selector: 'vector-crud-header', template: "<div class=\"container\">\r\n <div class=\"status-container\">\r\n <span>Status</span>\r\n <vector-badge [label]=\"statusLabel\" [type]=\"statusCode\"></vector-badge>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <span class=\"code-label\"\r\n >C\u00F3digo de identifica\u00E7\u00E3o<span class=\"code\">{{ code }}</span></span\r\n >\r\n</div>\r\n", styles: [".container{display:flex;align-items:center;margin-bottom:15px;justify-content:space-between;flex-wrap:wrap}@media (min-width: 441px){.container{justify-content:flex-end;height:40px}}.container .status-container{display:flex;align-items:center}.container .status-container vector-badge{margin-left:15px}.container .separator{width:1px;height:100%;margin:0 20px;background-color:var(--gray-medium)}@media (max-width: 440px){.container .separator{display:none}}.container .code-label{color:var(--form-labels-color);font-size:13px;max-width:150px;line-height:1rem}.container .code-label .code{color:#000;font-weight:600;font-size:20px;margin-left:10px}\n"] }]
2793
+ }], ctorParameters: function () { return []; }, propDecorators: { statusCode: [{
2794
+ type: Input
2795
+ }], code: [{
2796
+ type: Input
2797
+ }] } });
2798
+
2799
+ class CrudHeaderModule {
2800
+ }
2801
+ CrudHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2802
+ CrudHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderModule, declarations: [CrudHeaderComponent], imports: [SharedModule, BadgeModule], exports: [CrudHeaderComponent] });
2803
+ CrudHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderModule, imports: [[SharedModule, BadgeModule]] });
2804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHeaderModule, decorators: [{
2805
+ type: NgModule,
2806
+ args: [{
2807
+ declarations: [CrudHeaderComponent],
2808
+ imports: [SharedModule, BadgeModule],
2809
+ exports: [CrudHeaderComponent],
2810
+ }]
2811
+ }] });
2812
+
2813
+ class CrudHistoryComponent {
2814
+ getHistoryBadgeBackgroundColor(crudHistoryEventType) {
2815
+ switch (crudHistoryEventType) {
2816
+ case CrudHistoryEventType.CREATE:
2817
+ return '#CBFFAE';
2818
+ case CrudHistoryEventType.UPDATE:
2819
+ return '#FFE6B0';
2820
+ case CrudHistoryEventType.DELETE:
2821
+ default:
2822
+ return '#FF9393';
2823
+ }
2824
+ }
2825
+ getHistoryBadgeColor(crudHistoryEventType) {
2826
+ switch (crudHistoryEventType) {
2827
+ case CrudHistoryEventType.CREATE:
2828
+ return '#067306';
2829
+ case CrudHistoryEventType.UPDATE:
2830
+ return '#946300';
2831
+ case CrudHistoryEventType.DELETE:
2832
+ default:
2833
+ return '#6B2D2D';
2834
+ }
2835
+ }
2836
+ getHistoryBadgeLabel(crudHistoryEventType) {
2837
+ switch (crudHistoryEventType) {
2838
+ case CrudHistoryEventType.CREATE:
2839
+ return 'Criado';
2840
+ case CrudHistoryEventType.UPDATE:
2841
+ return 'Modificado';
2842
+ case CrudHistoryEventType.DELETE:
2843
+ default:
2844
+ return 'Removido';
2845
+ }
2846
+ }
2847
+ }
2848
+ CrudHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2849
+ CrudHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CrudHistoryComponent, selector: "vector-crud-history", inputs: { crudHistory: "crudHistory" }, ngImport: i0, template: "<p-accordionTab *ngIf=\"crudHistory\" class=\"history-item\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"history-item-header-container\">\r\n <div class=\"history-item-header-left\">\r\n <vector-badge\r\n [customBackgroundColor]=\"getHistoryBadgeBackgroundColor(crudHistory.eventType)\"\r\n [customColor]=\"getHistoryBadgeColor(crudHistory.eventType)\"\r\n [label]=\"getHistoryBadgeLabel(crudHistory.eventType)\"\r\n ></vector-badge>\r\n <span>por {{ crudHistory.modifiedBy }}</span>\r\n </div>\r\n <span class=\"history-item-header-right\">\r\n {{ crudHistory.dateTime | date: 'dd/MM/yyyy HH:mm' }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content></ng-content>\r\n </ng-template>\r\n</p-accordionTab>\r\n", styles: [".history-item{width:100%;margin:10px 0}.history-item .history-item-header-container{display:flex;align-items:center;justify-content:space-between;width:100%}.history-item .history-item-header-container .history-item-header-left{display:flex;align-items:center}.history-item .history-item-header-container .history-item-header-left span{margin-left:15px;color:var(--theme-medium);font-weight:600}.history-item .history-item-header-container .history-item-header-right{font-size:.8rem;color:var(--gray-darker);margin-right:40px}\n"], components: [{ type: i1$b.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { type: BadgeComponent, selector: "vector-badge", inputs: ["type", "label", "customColor", "customBackgroundColor"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "date": i2.DatePipe } });
2850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryComponent, decorators: [{
2851
+ type: Component,
2852
+ args: [{ selector: 'vector-crud-history', template: "<p-accordionTab *ngIf=\"crudHistory\" class=\"history-item\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"history-item-header-container\">\r\n <div class=\"history-item-header-left\">\r\n <vector-badge\r\n [customBackgroundColor]=\"getHistoryBadgeBackgroundColor(crudHistory.eventType)\"\r\n [customColor]=\"getHistoryBadgeColor(crudHistory.eventType)\"\r\n [label]=\"getHistoryBadgeLabel(crudHistory.eventType)\"\r\n ></vector-badge>\r\n <span>por {{ crudHistory.modifiedBy }}</span>\r\n </div>\r\n <span class=\"history-item-header-right\">\r\n {{ crudHistory.dateTime | date: 'dd/MM/yyyy HH:mm' }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content></ng-content>\r\n </ng-template>\r\n</p-accordionTab>\r\n", styles: [".history-item{width:100%;margin:10px 0}.history-item .history-item-header-container{display:flex;align-items:center;justify-content:space-between;width:100%}.history-item .history-item-header-container .history-item-header-left{display:flex;align-items:center}.history-item .history-item-header-container .history-item-header-left span{margin-left:15px;color:var(--theme-medium);font-weight:600}.history-item .history-item-header-container .history-item-header-right{font-size:.8rem;color:var(--gray-darker);margin-right:40px}\n"] }]
2853
+ }], propDecorators: { crudHistory: [{
2854
+ type: Input
2855
+ }] } });
2856
+
2857
+ class CrudHistoryModule {
2858
+ }
2859
+ CrudHistoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2860
+ CrudHistoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryModule, declarations: [CrudHistoryComponent], imports: [SharedModule, BadgeModule, AccordionModule], exports: [CrudHistoryComponent] });
2861
+ CrudHistoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryModule, imports: [[SharedModule, BadgeModule, AccordionModule]] });
2862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudHistoryModule, decorators: [{
2863
+ type: NgModule,
2864
+ args: [{
2865
+ declarations: [CrudHistoryComponent],
2866
+ imports: [SharedModule, BadgeModule, AccordionModule],
2867
+ exports: [CrudHistoryComponent],
2868
+ }]
2869
+ }] });
2870
+
2637
2871
  class GenericErrorModalComponent {
2638
2872
  constructor(errorService) {
2639
2873
  this.errorService = errorService;
@@ -2652,10 +2886,10 @@ class GenericErrorModalComponent {
2652
2886
  }
2653
2887
  }
2654
2888
  GenericErrorModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericErrorModalComponent, deps: [{ token: ErrorMessageService }], target: i0.ɵɵFactoryTarget.Component });
2655
- GenericErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: GenericErrorModalComponent, selector: "vector-generic-error-modal", ngImport: i0, template: "<p-dialog\r\n [(visible)]=\"!!message\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"true\"\r\n>\r\n <div class=\"content-container\">\r\n <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\r\n <p class=\"title\">Algo deu errado!</p>\r\n <p class=\"message\">{{ message }}</p>\r\n\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}\n"], components: [{ type: i2$6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }] });
2889
+ GenericErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: GenericErrorModalComponent, selector: "vector-generic-error-modal", ngImport: i0, template: "<p-dialog\r\n [(visible)]=\"!!message\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"true\"\r\n>\r\n <div class=\"content-container\">\r\n <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\r\n <p class=\"title\">Algo deu errado!</p>\r\n <p class=\"message\">{{ message }}</p>\r\n\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [".content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}\n"], components: [{ type: i2$8.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }] });
2656
2890
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericErrorModalComponent, decorators: [{
2657
2891
  type: Component,
2658
- args: [{ selector: 'vector-generic-error-modal', template: "<p-dialog\r\n [(visible)]=\"!!message\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"true\"\r\n>\r\n <div class=\"content-container\">\r\n <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\r\n <p class=\"title\">Algo deu errado!</p>\r\n <p class=\"message\">{{ message }}</p>\r\n\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}\n"] }]
2892
+ args: [{ selector: 'vector-generic-error-modal', template: "<p-dialog\r\n [(visible)]=\"!!message\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"true\"\r\n>\r\n <div class=\"content-container\">\r\n <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\r\n <p class=\"title\">Algo deu errado!</p>\r\n <p class=\"message\">{{ message }}</p>\r\n\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [".content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}\n"] }]
2659
2893
  }], ctorParameters: function () { return [{ type: ErrorMessageService }]; } });
2660
2894
 
2661
2895
  class GenericErrorModalModule {
@@ -2694,12 +2928,12 @@ class GenericModalComponent {
2694
2928
  }
2695
2929
  }
2696
2930
  }
2697
- GenericModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericModalComponent, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
2698
- GenericModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: GenericModalComponent, selector: "vector-generic-modal", inputs: { title: "title", message: "message", fileIcon: "fileIcon", linkLabel: "linkLabel", linkUrl: "linkUrl", display: "display", closable: "closable" }, ngImport: i0, template: "<p-dialog\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"closable\"\r\n>\r\n <div class=\"content-container\">\r\n <img *ngIf=\"fileIcon\" class=\"emote\" src=\"../../../../assets/images/{{ fileIcon }}.svg\" />\r\n <p *ngIf=\"title\" class=\"title\">{{ title }}</p>\r\n <p *ngFor=\"let text of message\" class=\"message\">{{ text }}</p>\r\n <vector-button *ngIf=\"linkLabel\" label=\"{{ linkLabel }}\" (click)=\"routerLink(linkUrl)\"></vector-button>\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close(true)\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}.content-container .message{text-align:center}\n"], components: [{ type: i2$6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2931
+ GenericModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericModalComponent, deps: [{ token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Component });
2932
+ GenericModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: GenericModalComponent, selector: "vector-generic-modal", inputs: { title: "title", message: "message", fileIcon: "fileIcon", linkLabel: "linkLabel", linkUrl: "linkUrl", display: "display", closable: "closable" }, ngImport: i0, template: "<p-dialog\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"closable\"\r\n>\r\n <div class=\"content-container\">\r\n <img *ngIf=\"fileIcon\" class=\"emote\" src=\"../../../../assets/images/{{ fileIcon }}.svg\" />\r\n <p *ngIf=\"title\" class=\"title\">{{ title }}</p>\r\n <p *ngFor=\"let text of message\" class=\"message\">{{ text }}</p>\r\n <vector-button *ngIf=\"linkLabel\" [label]=\"linkLabel\" (click)=\"routerLink(linkUrl)\"></vector-button>\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close(true)\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [".content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}.content-container .message{text-align:center}\n"], components: [{ type: i2$8.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2699
2933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericModalComponent, decorators: [{
2700
2934
  type: Component,
2701
- args: [{ selector: 'vector-generic-modal', template: "<p-dialog\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"closable\"\r\n>\r\n <div class=\"content-container\">\r\n <img *ngIf=\"fileIcon\" class=\"emote\" src=\"../../../../assets/images/{{ fileIcon }}.svg\" />\r\n <p *ngIf=\"title\" class=\"title\">{{ title }}</p>\r\n <p *ngFor=\"let text of message\" class=\"message\">{{ text }}</p>\r\n <vector-button *ngIf=\"linkLabel\" label=\"{{ linkLabel }}\" (click)=\"routerLink(linkUrl)\"></vector-button>\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close(true)\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}.content-container .message{text-align:center}\n"] }]
2702
- }], ctorParameters: function () { return [{ type: i2.Router }]; }, propDecorators: { title: [{
2935
+ args: [{ selector: 'vector-generic-modal', template: "<p-dialog\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"closable\"\r\n>\r\n <div class=\"content-container\">\r\n <img *ngIf=\"fileIcon\" class=\"emote\" src=\"../../../../assets/images/{{ fileIcon }}.svg\" />\r\n <p *ngIf=\"title\" class=\"title\">{{ title }}</p>\r\n <p *ngFor=\"let text of message\" class=\"message\">{{ text }}</p>\r\n <vector-button *ngIf=\"linkLabel\" [label]=\"linkLabel\" (click)=\"routerLink(linkUrl)\"></vector-button>\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close(true)\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [".content-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.content-container .title{text-align:center;color:var(--theme-dark);font-weight:600;margin-bottom:20px}.content-container .emote{height:40px;width:40px}@media (min-width: 991px){.content-container .emote{height:60px;width:60px}}.content-container .actions{margin-top:20px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.content-container .actions vector-button{width:75%}.content-container .message{text-align:center}\n"] }]
2936
+ }], ctorParameters: function () { return [{ type: i2$1.Router }]; }, propDecorators: { title: [{
2703
2937
  type: Input
2704
2938
  }], message: [{
2705
2939
  type: Input
@@ -2751,10 +2985,10 @@ class SubMenusListComponent {
2751
2985
  }
2752
2986
  }
2753
2987
  SubMenusListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SubMenusListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2754
- SubMenusListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: { showList: "showList", options: "options", childLevel: "childLevel", submenuSelected: "submenuSelected" }, outputs: { submenuSelectedChange: "submenuSelectedChange" }, ngImport: i0, template: "<div class=\"sub-menu-container\">\r\n <ul *ngIf=\"showList\" class=\"sub-menu\">\r\n <div *ngFor=\"let submenuItem of options\">\r\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\r\n <div\r\n class=\"current-item\"\r\n [ngClass]=\"{\r\n 'active-menu': submenuSelected?.id === submenuItem.id,\r\n 'always-open': !!submenuItem.alwaysOpen,\r\n 'last-child': !submenuItem.children?.length\r\n }\"\r\n [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\r\n <i [class]=\"submenuItem.icon\"></i>\r\n </div>\r\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\r\n <i\r\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\r\n 'fa-angle-up': submenuSelected?.id === submenuItem.id\r\n }\"\r\n ></i>\r\n </div>\r\n </li>\r\n <vector-sub-menus-list\r\n *ngIf=\"submenuItem?.children\"\r\n [options]=\"submenuItem?.children\"\r\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\r\n [childLevel]=\"childLevel + 1\"\r\n (submenuSelectedChange)=\"submenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </div>\r\n </ul>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(1n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"], components: [{ type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: ["showList", "options", "childLevel", "submenuSelected"], outputs: ["submenuSelectedChange"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
2988
+ SubMenusListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: { showList: "showList", options: "options", childLevel: "childLevel", submenuSelected: "submenuSelected" }, outputs: { submenuSelectedChange: "submenuSelectedChange" }, ngImport: i0, template: "<div class=\"sub-menu-container\">\r\n <ul *ngIf=\"showList\" class=\"sub-menu\">\r\n <div *ngFor=\"let submenuItem of options\">\r\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\r\n <div\r\n class=\"current-item\"\r\n [ngClass]=\"{\r\n 'active-menu': submenuSelected?.id === submenuItem.id,\r\n 'always-open': !!submenuItem.alwaysOpen,\r\n 'last-child': !submenuItem.children?.length\r\n }\"\r\n [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\r\n <i [class]=\"submenuItem.icon\"></i>\r\n </div>\r\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\r\n <i\r\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\r\n 'fa-angle-up': submenuSelected?.id === submenuItem.id\r\n }\"\r\n ></i>\r\n </div>\r\n </li>\r\n <vector-sub-menus-list\r\n *ngIf=\"submenuItem?.children\"\r\n [options]=\"submenuItem?.children\"\r\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\r\n [childLevel]=\"childLevel + 1\"\r\n (submenuSelectedChange)=\"submenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </div>\r\n </ul>\r\n</div>\r\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(1n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"], components: [{ type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: ["showList", "options", "childLevel", "submenuSelected"], outputs: ["submenuSelectedChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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"] }] });
2755
2989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SubMenusListComponent, decorators: [{
2756
2990
  type: Component,
2757
- args: [{ selector: 'vector-sub-menus-list', template: "<div class=\"sub-menu-container\">\r\n <ul *ngIf=\"showList\" class=\"sub-menu\">\r\n <div *ngFor=\"let submenuItem of options\">\r\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\r\n <div\r\n class=\"current-item\"\r\n [ngClass]=\"{\r\n 'active-menu': submenuSelected?.id === submenuItem.id,\r\n 'always-open': !!submenuItem.alwaysOpen,\r\n 'last-child': !submenuItem.children?.length\r\n }\"\r\n [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\r\n <i [class]=\"submenuItem.icon\"></i>\r\n </div>\r\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\r\n <i\r\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\r\n 'fa-angle-up': submenuSelected?.id === submenuItem.id\r\n }\"\r\n ></i>\r\n </div>\r\n </li>\r\n <vector-sub-menus-list\r\n *ngIf=\"submenuItem?.children\"\r\n [options]=\"submenuItem?.children\"\r\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\r\n [childLevel]=\"childLevel + 1\"\r\n (submenuSelectedChange)=\"submenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </div>\r\n </ul>\r\n</div>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(1n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"] }]
2991
+ args: [{ selector: 'vector-sub-menus-list', template: "<div class=\"sub-menu-container\">\r\n <ul *ngIf=\"showList\" class=\"sub-menu\">\r\n <div *ngFor=\"let submenuItem of options\">\r\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\r\n <div\r\n class=\"current-item\"\r\n [ngClass]=\"{\r\n 'active-menu': submenuSelected?.id === submenuItem.id,\r\n 'always-open': !!submenuItem.alwaysOpen,\r\n 'last-child': !submenuItem.children?.length\r\n }\"\r\n [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\r\n <i [class]=\"submenuItem.icon\"></i>\r\n </div>\r\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\r\n <i\r\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\r\n 'fa-angle-up': submenuSelected?.id === submenuItem.id\r\n }\"\r\n ></i>\r\n </div>\r\n </li>\r\n <vector-sub-menus-list\r\n *ngIf=\"submenuItem?.children\"\r\n [options]=\"submenuItem?.children\"\r\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\r\n [childLevel]=\"childLevel + 1\"\r\n (submenuSelectedChange)=\"submenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </div>\r\n </ul>\r\n</div>\r\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}.sub-menu-container .sub-menu{list-style:none;display:contents}.sub-menu-container .sub-menu .sub-menu-item{animation:showSubMenu ease-in-out .1s;animation-fill-mode:both}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(1n){animation-delay:50ms}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(2n){animation-delay:.1s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(3n){animation-delay:.15s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(4n){animation-delay:.2s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(5n){animation-delay:.25s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(6n){animation-delay:.3s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(7n){animation-delay:.35s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(8n){animation-delay:.4s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(9n){animation-delay:.45s}.sub-menu-container .sub-menu .sub-menu-item:not(:first-child):nth-child(10n){animation-delay:.5s}.sub-menu-container .sub-menu .sub-menu-item .current-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}.sub-menu-container .sub-menu .sub-menu-item .current-item:not(.always-open){cursor:pointer}.sub-menu-container .sub-menu .sub-menu-item .current-item:hover,.sub-menu-container .sub-menu .sub-menu-item .current-item.active{background-color:var(--gray-light)}.sub-menu-container .sub-menu .sub-menu-item .current-item.active span,.sub-menu-container .sub-menu .sub-menu-item .current-item.active i{color:#fff}@keyframes showSubMenu{0%{transform:translate(-100%)}to{transform:translate(0)}}.sub-menu-container .sub-menu .sub-menu-item .last-child .menu-label{font-weight:400}\n"] }]
2758
2992
  }], propDecorators: { showList: [{
2759
2993
  type: Input
2760
2994
  }], options: [{
@@ -2889,18 +3123,16 @@ class MenuComponent {
2889
3123
  else {
2890
3124
  this.activeOption = option.children?.length ? option : undefined;
2891
3125
  }
2892
- if (!option.children?.length) {
2893
- if (option.frameUrl) {
2894
- this.menuService.frameUrl$.next(option.frameUrl);
2895
- }
2896
- else if (option.route) {
2897
- this.router.navigate([option.route]);
2898
- this.menuService.frameUrl$.next(undefined);
2899
- }
2900
- else if (option.externalUrl) {
2901
- window.open(option.externalUrl, '_blank');
2902
- this.menuService.frameUrl$.next(undefined);
2903
- }
3126
+ if (option.frameUrl) {
3127
+ this.menuService.frameUrl$.next(option.frameUrl);
3128
+ }
3129
+ else if (option.route) {
3130
+ this.router.navigate([option.route]);
3131
+ this.menuService.frameUrl$.next(undefined);
3132
+ }
3133
+ else if (option.externalUrl) {
3134
+ window.open(option.externalUrl, '_blank');
3135
+ this.menuService.frameUrl$.next(undefined);
2904
3136
  }
2905
3137
  if (option.children?.length && !this.opened) {
2906
3138
  this.toggleMenu();
@@ -2916,22 +3148,20 @@ class MenuComponent {
2916
3148
  else {
2917
3149
  this.activeSubmenuOption = submenuItem.children?.length ? submenuItem : undefined;
2918
3150
  }
2919
- if (!submenuItem.children?.length) {
2920
- if (submenuItem.frameUrl) {
2921
- this.menuService.frameUrl$.next(submenuItem.frameUrl);
2922
- }
2923
- else if (submenuItem.route) {
2924
- this.router.navigate([submenuItem.route]);
2925
- this.menuService.frameUrl$.next(undefined);
2926
- }
2927
- else if (submenuItem.externalUrl) {
2928
- window.open(submenuItem.externalUrl, '_blank');
2929
- this.menuService.frameUrl$.next(undefined);
2930
- }
2931
- else if (submenuItem.command) {
2932
- submenuItem.command();
2933
- this.menuService.frameUrl$.next(undefined);
2934
- }
3151
+ if (submenuItem.frameUrl) {
3152
+ this.menuService.frameUrl$.next(submenuItem.frameUrl);
3153
+ }
3154
+ else if (submenuItem.route) {
3155
+ this.router.navigate([submenuItem.route]);
3156
+ this.menuService.frameUrl$.next(undefined);
3157
+ }
3158
+ else if (submenuItem.externalUrl) {
3159
+ window.open(submenuItem.externalUrl, '_blank');
3160
+ this.menuService.frameUrl$.next(undefined);
3161
+ }
3162
+ else if (submenuItem.command) {
3163
+ submenuItem.command();
3164
+ this.menuService.frameUrl$.next(undefined);
2935
3165
  }
2936
3166
  }
2937
3167
  }
@@ -2958,8 +3188,8 @@ class MenuComponent {
2958
3188
  this.activeSubmenuOption = undefined;
2959
3189
  }
2960
3190
  }
2961
- MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuComponent, deps: [{ token: MenuService }, { token: i2.Router }, { token: ProfileService }, { token: StorageService }, { token: 'environment' }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Component });
2962
- MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MenuComponent, selector: "vector-menu", outputs: { onFinishMenuOptionsConfig: "onFinishMenuOptionsConfig" }, host: { listeners: { "window:resize": "onResize($event)", "document:keydown.escape": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\r\n <div class=\"header-menu\">\r\n <div class=\"logo-container\">\r\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\r\n </div>\r\n </div>\r\n <div class=\"menu-sections\">\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELE\u00C7\u00C3O DE PORTAL</span>\r\n <ul class=\"side-menu\">\r\n <li>\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.LOGTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'logtech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item logtech\"></div>\r\n <span class=\"menu-label\">Cargas</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"hasAnyFintechPermission\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.FINTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'fintech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item fintech\"></div>\r\n <span class=\"menu-label\">Carteira digital</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"!production\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.MARKETPLACE) }\"\r\n (click)=\"navigateToPortal({ portal: 'marketplace', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item marketplace\"></div>\r\n <span class=\"menu-label\">Combust\u00EDvel</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\r\n <div\r\n class=\"side-menu-item\"\r\n (click)=\"onMenuClick(adminOption)\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\r\n >\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/vector_admin_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label\">{{ adminOption.label }}</span>\r\n <i\r\n *ngIf=\"opened && adminOption.children?.length\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== adminOption.id,\r\n 'fa-angle-up': activeOption?.id === adminOption.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"adminOption.children\"\r\n [showList]=\"activeOption?.id === adminOption.id\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened && options?.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\r\n <ul class=\"side-menu\">\r\n <li *ngFor=\"let option of options\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\r\n [pTooltip]=\"option.label\"\r\n tooltipPosition=\"right\"\r\n (click)=\"onMenuClick(option)\"\r\n >\r\n <div class=\"icon-container\">\r\n <img\r\n *ngIf=\"option.iconFileName\"\r\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\r\n class=\"menu-icon\"\r\n />\r\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\r\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\r\n getMenuNotificationsCount(option)\r\n }}</span>\r\n </div>\r\n <span class=\"menu-label\">{{ option.label }}</span>\r\n <i\r\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== option.id,\r\n 'fa-angle-up': activeOption?.id === option.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"option.children\"\r\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"footer side-menu-item\">\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label footer-content\">\r\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\r\n <span>e <a>Pol\u00EDtica de privacidade</a></span>\r\n </span>\r\n </div>\r\n</nav>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}nav{height:100vh;min-height:100vh;background-color:#fff;transition:width ease-in-out .2s;display:flex;flex-direction:column;z-index:500;position:sticky;box-shadow:2px 2px 4px #00000029}nav .header-menu{display:flex;justify-content:center;flex-direction:column;width:100%}nav .header-menu .logo-container{height:81px;padding:5px;display:flex;justify-content:center;align-items:center}nav .header-menu .logo-container .logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:center;height:50px;width:150px}nav .header-menu .logo-container .logo-small{background-position-y:center;background-position-x:right}nav .menu-sections{display:flex;flex-direction:column;flex:1;overflow-y:overlay;overflow-x:hidden}nav .menu-sections::-webkit-scrollbar{width:4px}nav .menu-sections .menu-section{margin:5px 10px 0}nav .menu-sections .menu-section:first-child{border-bottom:1px solid var(--gray-light)}nav .menu-sections .menu-section .menu-section-title{color:var(--gray-dark);font-weight:500;font-size:.8em;padding-left:10px;white-space:nowrap;transition:opacity .2s ease-in-out}nav .menu-sections .menu-section .side-menu{padding:0;margin:0;list-style:none;overflow-x:hidden;overflow-y:scroll;-ms-overflow-style:none}nav .menu-sections .menu-section .side-menu::-webkit-scrollbar{display:none}@media screen and (max-width: 650px){nav .menu-sections .menu-section .side-menu{background-size:120px;background-position:20px}}nav .menu-sections .menu-section .side-menu-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}nav .menu-sections .menu-section .side-menu-item:not(.always-open){cursor:pointer}nav .menu-sections .menu-section .side-menu-item:hover{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active span{color:#fff}nav .menu-sections .menu-section .side-menu-item.active i{color:#fff}nav .menu-sections .menu-section .fintech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .logtech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .marketplace{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .selected-portal-item{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain;background-color:var(--form-labels-color)}nav .menu-sections .menu-section .selected-portal-item:before{content:\"\";width:20px;height:20px;display:block}nav .menu-sections .menu-section .selected-portal{background-color:var(--gray-light);border-radius:15px}nav .menu-sections .menu-section .selected-portal .icon-container{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain}nav .menu-sections .menu-section .selected-portal .icon-container .menu-icon{filter:invert(35%) sepia(100%) saturate(5659%) hue-rotate(210deg) brightness(87%) contrast(118%)}nav .menu-sections .menu-section .selected-portal .selected-portal-item{background-color:var(--theme-primary)}nav .menu-sections .menu-section .selected-portal .marketplace .menu-label{color:var(--success-color)}nav .menu-sections .menu-section .selected-portal .menu-label{color:var(--theme-primary)}nav .footer{display:flex;align-items:center;padding:10px;margin:0 10px;border-top:1px solid var(--gray-light);overflow:hidden;height:50px}nav .footer .footer-icon{width:50px}nav .footer .footer-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;font-size:.8em;text-overflow:hidden;white-space:nowrap}\n"], components: [{ type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: ["showList", "options", "childLevel", "submenuSelected"], outputs: ["submenuSelectedChange"] }], directives: [{ type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], animations: [
3191
+ MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MenuComponent, deps: [{ token: MenuService }, { token: i2$1.Router }, { token: ProfileService }, { token: StorageService }, { token: 'environment' }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Component });
3192
+ MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MenuComponent, selector: "vector-menu", outputs: { onFinishMenuOptionsConfig: "onFinishMenuOptionsConfig" }, host: { listeners: { "window:resize": "onResize($event)", "document:keydown.escape": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\r\n <div class=\"header-menu\">\r\n <div class=\"logo-container\">\r\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\r\n </div>\r\n </div>\r\n <div class=\"menu-sections\">\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELE\u00C7\u00C3O DE PORTAL</span>\r\n <ul class=\"side-menu\">\r\n <li>\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.LOGTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'logtech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item logtech\"></div>\r\n <span class=\"menu-label\">Cargas</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"hasAnyFintechPermission\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.FINTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'fintech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item fintech\"></div>\r\n <span class=\"menu-label\">Carteira digital</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"!production\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.MARKETPLACE) }\"\r\n (click)=\"navigateToPortal({ portal: 'marketplace', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item marketplace\"></div>\r\n <span class=\"menu-label\">Combust\u00EDvel</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\r\n <div\r\n class=\"side-menu-item\"\r\n (click)=\"onMenuClick(adminOption)\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\r\n >\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/vector_admin_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label\">{{ adminOption.label }}</span>\r\n <i\r\n *ngIf=\"opened && adminOption.children?.length\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== adminOption.id,\r\n 'fa-angle-up': activeOption?.id === adminOption.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"adminOption.children\"\r\n [showList]=\"activeOption?.id === adminOption.id\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened && options?.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\r\n <ul class=\"side-menu\">\r\n <li *ngFor=\"let option of options\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\r\n [pTooltip]=\"option.label\"\r\n tooltipPosition=\"right\"\r\n (click)=\"onMenuClick(option)\"\r\n >\r\n <div class=\"icon-container\">\r\n <img\r\n *ngIf=\"option.iconFileName\"\r\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\r\n class=\"menu-icon\"\r\n />\r\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\r\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\r\n getMenuNotificationsCount(option)\r\n }}</span>\r\n </div>\r\n <span class=\"menu-label\">{{ option.label }}</span>\r\n <i\r\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== option.id,\r\n 'fa-angle-up': activeOption?.id === option.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"option.children\"\r\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"footer side-menu-item\">\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label footer-content\">\r\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\r\n <span>e <a>Pol\u00EDtica de privacidade</a></span>\r\n </span>\r\n </div>\r\n</nav>\r\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}nav{height:100vh;min-height:100vh;background-color:#fff;transition:width ease-in-out .2s;display:flex;flex-direction:column;z-index:500;position:sticky;box-shadow:2px 2px 4px #00000029}nav .header-menu{display:flex;justify-content:center;flex-direction:column;width:100%}nav .header-menu .logo-container{height:81px;padding:5px;display:flex;justify-content:center;align-items:center}nav .header-menu .logo-container .logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:center;height:50px;width:150px}nav .header-menu .logo-container .logo-small{background-position-y:center;background-position-x:right}nav .menu-sections{display:flex;flex-direction:column;flex:1;overflow-y:overlay;overflow-x:hidden}nav .menu-sections::-webkit-scrollbar{width:4px}nav .menu-sections .menu-section{margin:5px 10px 0}nav .menu-sections .menu-section:first-child{border-bottom:1px solid var(--gray-light)}nav .menu-sections .menu-section .menu-section-title{color:var(--gray-dark);font-weight:500;font-size:.8em;padding-left:10px;white-space:nowrap;transition:opacity .2s ease-in-out}nav .menu-sections .menu-section .side-menu{padding:0;margin:0;list-style:none;overflow-x:hidden;overflow-y:scroll;-ms-overflow-style:none}nav .menu-sections .menu-section .side-menu::-webkit-scrollbar{display:none}@media screen and (max-width: 650px){nav .menu-sections .menu-section .side-menu{background-size:120px;background-position:20px}}nav .menu-sections .menu-section .side-menu-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}nav .menu-sections .menu-section .side-menu-item:not(.always-open){cursor:pointer}nav .menu-sections .menu-section .side-menu-item:hover{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active span{color:#fff}nav .menu-sections .menu-section .side-menu-item.active i{color:#fff}nav .menu-sections .menu-section .fintech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .logtech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .marketplace{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .selected-portal-item{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain;background-color:var(--form-labels-color)}nav .menu-sections .menu-section .selected-portal-item:before{content:\"\";width:20px;height:20px;display:block}nav .menu-sections .menu-section .selected-portal{background-color:var(--gray-light);border-radius:15px}nav .menu-sections .menu-section .selected-portal .icon-container{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain}nav .menu-sections .menu-section .selected-portal .icon-container .menu-icon{filter:invert(35%) sepia(100%) saturate(5659%) hue-rotate(210deg) brightness(87%) contrast(118%)}nav .menu-sections .menu-section .selected-portal .selected-portal-item{background-color:var(--theme-primary)}nav .menu-sections .menu-section .selected-portal .marketplace .menu-label{color:var(--success-color)}nav .menu-sections .menu-section .selected-portal .menu-label{color:var(--theme-primary)}nav .footer{display:flex;align-items:center;padding:10px;margin:0 10px;border-top:1px solid var(--gray-light);overflow:hidden;height:50px}nav .footer .footer-icon{width:50px}nav .footer .footer-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;font-size:.8em;text-overflow:hidden;white-space:nowrap}\n"], components: [{ type: SubMenusListComponent, selector: "vector-sub-menus-list", inputs: ["showList", "options", "childLevel", "submenuSelected"], outputs: ["submenuSelectedChange"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], animations: [
2963
3193
  trigger('sideInOut', [state('in', style({ width: '60px' })), state('out', style({ width: '250px' }))]),
2964
3194
  trigger('fadeInOut', [
2965
3195
  state('0', style({
@@ -3040,8 +3270,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
3040
3270
  })),
3041
3271
  transition('0 <=> 1', animate('350ms ease-in-out')),
3042
3272
  ]),
3043
- ], template: "<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\r\n <div class=\"header-menu\">\r\n <div class=\"logo-container\">\r\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\r\n </div>\r\n </div>\r\n <div class=\"menu-sections\">\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELE\u00C7\u00C3O DE PORTAL</span>\r\n <ul class=\"side-menu\">\r\n <li>\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.LOGTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'logtech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item logtech\"></div>\r\n <span class=\"menu-label\">Cargas</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"hasAnyFintechPermission\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.FINTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'fintech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item fintech\"></div>\r\n <span class=\"menu-label\">Carteira digital</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"!production\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.MARKETPLACE) }\"\r\n (click)=\"navigateToPortal({ portal: 'marketplace', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item marketplace\"></div>\r\n <span class=\"menu-label\">Combust\u00EDvel</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\r\n <div\r\n class=\"side-menu-item\"\r\n (click)=\"onMenuClick(adminOption)\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\r\n >\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/vector_admin_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label\">{{ adminOption.label }}</span>\r\n <i\r\n *ngIf=\"opened && adminOption.children?.length\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== adminOption.id,\r\n 'fa-angle-up': activeOption?.id === adminOption.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"adminOption.children\"\r\n [showList]=\"activeOption?.id === adminOption.id\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened && options?.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\r\n <ul class=\"side-menu\">\r\n <li *ngFor=\"let option of options\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\r\n [pTooltip]=\"option.label\"\r\n tooltipPosition=\"right\"\r\n (click)=\"onMenuClick(option)\"\r\n >\r\n <div class=\"icon-container\">\r\n <img\r\n *ngIf=\"option.iconFileName\"\r\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\r\n class=\"menu-icon\"\r\n />\r\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\r\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\r\n getMenuNotificationsCount(option)\r\n }}</span>\r\n </div>\r\n <span class=\"menu-label\">{{ option.label }}</span>\r\n <i\r\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== option.id,\r\n 'fa-angle-up': activeOption?.id === option.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"option.children\"\r\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"footer side-menu-item\">\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label footer-content\">\r\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\r\n <span>e <a>Pol\u00EDtica de privacidade</a></span>\r\n </span>\r\n </div>\r\n</nav>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}nav{height:100vh;min-height:100vh;background-color:#fff;transition:width ease-in-out .2s;display:flex;flex-direction:column;z-index:500;position:sticky;box-shadow:2px 2px 4px #00000029}nav .header-menu{display:flex;justify-content:center;flex-direction:column;width:100%}nav .header-menu .logo-container{height:81px;padding:5px;display:flex;justify-content:center;align-items:center}nav .header-menu .logo-container .logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:center;height:50px;width:150px}nav .header-menu .logo-container .logo-small{background-position-y:center;background-position-x:right}nav .menu-sections{display:flex;flex-direction:column;flex:1;overflow-y:overlay;overflow-x:hidden}nav .menu-sections::-webkit-scrollbar{width:4px}nav .menu-sections .menu-section{margin:5px 10px 0}nav .menu-sections .menu-section:first-child{border-bottom:1px solid var(--gray-light)}nav .menu-sections .menu-section .menu-section-title{color:var(--gray-dark);font-weight:500;font-size:.8em;padding-left:10px;white-space:nowrap;transition:opacity .2s ease-in-out}nav .menu-sections .menu-section .side-menu{padding:0;margin:0;list-style:none;overflow-x:hidden;overflow-y:scroll;-ms-overflow-style:none}nav .menu-sections .menu-section .side-menu::-webkit-scrollbar{display:none}@media screen and (max-width: 650px){nav .menu-sections .menu-section .side-menu{background-size:120px;background-position:20px}}nav .menu-sections .menu-section .side-menu-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}nav .menu-sections .menu-section .side-menu-item:not(.always-open){cursor:pointer}nav .menu-sections .menu-section .side-menu-item:hover{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active span{color:#fff}nav .menu-sections .menu-section .side-menu-item.active i{color:#fff}nav .menu-sections .menu-section .fintech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .logtech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .marketplace{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .selected-portal-item{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain;background-color:var(--form-labels-color)}nav .menu-sections .menu-section .selected-portal-item:before{content:\"\";width:20px;height:20px;display:block}nav .menu-sections .menu-section .selected-portal{background-color:var(--gray-light);border-radius:15px}nav .menu-sections .menu-section .selected-portal .icon-container{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain}nav .menu-sections .menu-section .selected-portal .icon-container .menu-icon{filter:invert(35%) sepia(100%) saturate(5659%) hue-rotate(210deg) brightness(87%) contrast(118%)}nav .menu-sections .menu-section .selected-portal .selected-portal-item{background-color:var(--theme-primary)}nav .menu-sections .menu-section .selected-portal .marketplace .menu-label{color:var(--success-color)}nav .menu-sections .menu-section .selected-portal .menu-label{color:var(--theme-primary)}nav .footer{display:flex;align-items:center;padding:10px;margin:0 10px;border-top:1px solid var(--gray-light);overflow:hidden;height:50px}nav .footer .footer-icon{width:50px}nav .footer .footer-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;font-size:.8em;text-overflow:hidden;white-space:nowrap}\n"] }]
3044
- }], ctorParameters: function () { return [{ type: MenuService }, { type: i2.Router }, { type: ProfileService }, { type: StorageService }, { type: undefined, decorators: [{
3273
+ ], template: "<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\r\n <div class=\"header-menu\">\r\n <div class=\"logo-container\">\r\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\r\n </div>\r\n </div>\r\n <div class=\"menu-sections\">\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELE\u00C7\u00C3O DE PORTAL</span>\r\n <ul class=\"side-menu\">\r\n <li>\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.LOGTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'logtech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item logtech\"></div>\r\n <span class=\"menu-label\">Cargas</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"hasAnyFintechPermission\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.FINTECH) }\"\r\n (click)=\"navigateToPortal({ portal: 'fintech', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item fintech\"></div>\r\n <span class=\"menu-label\">Carteira digital</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"!production\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(apps.MARKETPLACE) }\"\r\n (click)=\"navigateToPortal({ portal: 'marketplace', admin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item marketplace\"></div>\r\n <span class=\"menu-label\">Combust\u00EDvel</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\r\n <div\r\n class=\"side-menu-item\"\r\n (click)=\"onMenuClick(adminOption)\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\r\n >\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/vector_admin_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label\">{{ adminOption.label }}</span>\r\n <i\r\n *ngIf=\"opened && adminOption.children?.length\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== adminOption.id,\r\n 'fa-angle-up': activeOption?.id === adminOption.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"adminOption.children\"\r\n [showList]=\"activeOption?.id === adminOption.id\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened && options?.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\r\n <ul class=\"side-menu\">\r\n <li *ngFor=\"let option of options\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\r\n [pTooltip]=\"option.label\"\r\n tooltipPosition=\"right\"\r\n (click)=\"onMenuClick(option)\"\r\n >\r\n <div class=\"icon-container\">\r\n <img\r\n *ngIf=\"option.iconFileName\"\r\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\r\n class=\"menu-icon\"\r\n />\r\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\r\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\r\n getMenuNotificationsCount(option)\r\n }}</span>\r\n </div>\r\n <span class=\"menu-label\">{{ option.label }}</span>\r\n <i\r\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== option.id,\r\n 'fa-angle-up': activeOption?.id === option.id\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"option.children\"\r\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"footer side-menu-item\">\r\n <div class=\"icon-container\">\r\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" class=\"menu-icon\" />\r\n </div>\r\n <span class=\"menu-label footer-content\">\r\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\r\n <span>e <a>Pol\u00EDtica de privacidade</a></span>\r\n </span>\r\n </div>\r\n</nav>\r\n", styles: [".angle-icon{position:absolute;right:10px}.menu-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(87%) saturate(1218%) hue-rotate(233deg) brightness(88%) contrast(90%);width:20px;height:20px}.icon-container{width:20px;height:20px;position:relative}.icon-container .menu-icon{display:flex;justify-content:center;align-items:center;font-size:1.4em}.icon-container .menu-notifications-count{padding:0 4.5px;background-color:var(--error-color);border-radius:10px;position:absolute;top:-4px;right:-4px;font-size:8px}.menu-label{color:var(--theme-dark);font-weight:600;text-decoration:none;padding-bottom:1px;margin-left:20px;min-width:170px;white-space:normal;overflow:visible}.active-menu:not(.always-open){background-color:var(--gray-light)}nav{height:100vh;min-height:100vh;background-color:#fff;transition:width ease-in-out .2s;display:flex;flex-direction:column;z-index:500;position:sticky;box-shadow:2px 2px 4px #00000029}nav .header-menu{display:flex;justify-content:center;flex-direction:column;width:100%}nav .header-menu .logo-container{height:81px;padding:5px;display:flex;justify-content:center;align-items:center}nav .header-menu .logo-container .logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:center;height:50px;width:150px}nav .header-menu .logo-container .logo-small{background-position-y:center;background-position-x:right}nav .menu-sections{display:flex;flex-direction:column;flex:1;overflow-y:overlay;overflow-x:hidden}nav .menu-sections::-webkit-scrollbar{width:4px}nav .menu-sections .menu-section{margin:5px 10px 0}nav .menu-sections .menu-section:first-child{border-bottom:1px solid var(--gray-light)}nav .menu-sections .menu-section .menu-section-title{color:var(--gray-dark);font-weight:500;font-size:.8em;padding-left:10px;white-space:nowrap;transition:opacity .2s ease-in-out}nav .menu-sections .menu-section .side-menu{padding:0;margin:0;list-style:none;overflow-x:hidden;overflow-y:scroll;-ms-overflow-style:none}nav .menu-sections .menu-section .side-menu::-webkit-scrollbar{display:none}@media screen and (max-width: 650px){nav .menu-sections .menu-section .side-menu{background-size:120px;background-position:20px}}nav .menu-sections .menu-section .side-menu-item{min-height:40px;display:flex;flex-direction:row;align-items:center;transition:background-color ease-in-out .1s;z-index:2;overflow:hidden;padding:0 10px;border-radius:15px;margin:5px 0;position:relative}nav .menu-sections .menu-section .side-menu-item:not(.always-open){cursor:pointer}nav .menu-sections .menu-section .side-menu-item:hover{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active{background-color:var(--gray-light)}nav .menu-sections .menu-section .side-menu-item.active span{color:#fff}nav .menu-sections .menu-section .side-menu-item.active i{color:#fff}nav .menu-sections .menu-section .fintech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2235%22 height%3D%2235%22 viewBox%3D%220 0 35 35%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z%22 fill%3D%22%234E4B66%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .logtech{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect x%3D%221%22 y%3D%223%22 width%3D%2214%22 height%3D%2213%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M15 8H19L23 12V16H15V8Z%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%225.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%2217.5%22 cy%3D%2218.5%22 r%3D%222.5%22 stroke%3D%22%2314142B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .marketplace{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-moz-mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");-o-prop:url(\"data:image/svg+xml,%3Csvg width%3D%2223%22 height%3D%2224%22 viewBox%3D%220 0 23 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M17.0131 23.19V2.74561C17.0387 2.3768 16.9901 2.00661 16.8701 1.65691C16.7502 1.3072 16.5614 0.985084 16.3149 0.709586C16.0394 0.4611 15.7166 0.270786 15.3658 0.150048C15.015 0.0293103 14.6434 -0.019366 14.2733 0.0069356H4.46056C4.09267 -0.0188504 3.72335 0.0295727 3.37454 0.149328C3.02573 0.269083 2.70454 0.457728 2.43007 0.704053C2.18319 0.980172 1.99427 1.30306 1.87452 1.65356C1.75477 2.00406 1.70663 2.37505 1.73295 2.7445V23.19H3.52001V2.79098C3.50174 2.6559 3.51491 2.51842 3.5585 2.38927C3.60209 2.26012 3.67491 2.14277 3.7713 2.04639C3.86769 1.95 3.98503 1.87718 4.11418 1.83359C4.24334 1.79 4.38081 1.77683 4.51589 1.7951H14.2302C14.3627 1.78615 14.4956 1.80397 14.6211 1.84751C14.7466 1.89104 14.862 1.9594 14.9605 2.04849C15.0504 2.14871 15.1193 2.26598 15.163 2.39334C15.2067 2.5207 15.2244 2.65555 15.215 2.78987V23.19H17.0131ZM0.000119503 23.0959C-0.0018524 23.2149 0.020598 23.3331 0.0660845 23.4431C0.111571 23.5531 0.179127 23.6526 0.264581 23.7355C0.3459 23.8202 0.44372 23.8874 0.552008 23.9329C0.660295 23.9784 0.776754 24.0012 0.8942 23.9999H17.8397C18.078 23.9999 18.3065 23.9053 18.475 23.7368C18.6435 23.5683 18.7382 23.3397 18.7382 23.1014C18.7382 22.8631 18.6435 22.6346 18.475 22.4661C18.3065 22.2976 18.078 22.2029 17.8397 22.2029H0.8942C0.657979 22.2052 0.432068 22.3 0.264923 22.467C0.0977786 22.6339 0.00271379 22.8597 0.000119503 23.0959ZM5.97099 11.8546H12.7762C13.079 11.8689 13.3757 11.7663 13.605 11.568C13.7086 11.4741 13.7905 11.3587 13.845 11.2299C13.8995 11.1011 13.9252 10.962 13.9203 10.8222V4.30361C13.9257 4.16231 13.9003 4.02152 13.8459 3.89101C13.7914 3.76051 13.7092 3.64341 13.605 3.54785C13.3759 3.34906 13.0791 3.24604 12.7762 3.26015H5.97099C5.66751 3.24617 5.37031 3.3496 5.14108 3.54896C5.03685 3.64452 4.95465 3.76161 4.9002 3.89212C4.84574 4.02262 4.82033 4.16341 4.82572 4.30472V10.8211C4.82089 10.9609 4.8466 11.1 4.90107 11.2288C4.95554 11.3576 5.03745 11.473 5.14108 11.5669C5.37054 11.7658 5.66768 11.8688 5.97099 11.8546ZM20.5529 20.9282C20.8783 20.942 21.2029 20.8877 21.506 20.7688C21.8092 20.6499 22.0842 20.469 22.3134 20.2377C22.5397 19.9927 22.7149 19.705 22.8289 19.3916C22.9428 19.0781 22.9933 18.7451 22.9773 18.4119V7.80469C23.0209 6.66199 22.7734 5.52696 22.2581 4.50611C21.7875 3.69811 21.0226 3.10337 20.1236 2.84631C20.0268 2.8156 19.9247 2.80535 19.8237 2.8162C19.7228 2.82706 19.6252 2.85879 19.5371 2.90938C19.4464 2.95571 19.3659 3.01986 19.3005 3.098C19.2351 3.17614 19.1861 3.26666 19.1565 3.36416C19.1257 3.46322 19.1151 3.56744 19.1254 3.67065C19.1356 3.77386 19.1665 3.87396 19.2162 3.96501C19.2626 4.05729 19.328 4.13872 19.4081 4.20394C19.4882 4.26916 19.5812 4.3167 19.681 4.34345C19.8901 4.40746 20.0893 4.50019 20.273 4.61898C20.5181 4.78313 20.7237 4.9997 20.8749 5.25302C21.0935 5.6233 21.2435 6.03003 21.3175 6.45361H19.9012C19.789 6.45151 19.6775 6.47205 19.5735 6.51402C19.4694 6.55598 19.3749 6.6185 19.2956 6.69783C19.2162 6.77717 19.1537 6.87169 19.1117 6.97575C19.0698 7.0798 19.0492 7.19125 19.0513 7.30343V11.3456C19.0519 11.5708 19.1417 11.7866 19.3009 11.9459C19.4601 12.1051 19.676 12.1948 19.9012 12.1954H21.4282V18.4086C21.4406 18.6594 21.3539 18.905 21.187 19.0925C21.1062 19.1774 21.0083 19.2441 20.8997 19.2882C20.7911 19.3322 20.6744 19.3527 20.5573 19.3481C20.2933 19.3609 20.0348 19.2691 19.8381 19.0925C19.7472 19.0041 19.676 18.8975 19.6293 18.7796C19.5825 18.6617 19.5613 18.5353 19.567 18.4086V16.6902C19.5891 16.32 19.5347 15.9492 19.4071 15.601C19.2796 15.2528 19.0816 14.9346 18.8256 14.6663C18.2624 14.1583 17.5205 13.8949 16.763 13.9338V15.5062C17.0986 15.4886 17.428 15.6012 17.6826 15.8204C17.7992 15.934 17.8902 16.0713 17.9492 16.2231C18.0082 16.3749 18.0338 16.5376 18.0245 16.7001V18.4075C18.0094 18.7432 18.0633 19.0784 18.1828 19.3924C18.3023 19.7064 18.4849 19.9926 18.7194 20.2333C18.962 20.4673 19.2496 20.6495 19.5648 20.7689C19.88 20.8884 20.2162 20.9426 20.5529 20.9282Z%22 fill%3D%22%2314142B%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}nav .menu-sections .menu-section .selected-portal-item{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain;background-color:var(--form-labels-color)}nav .menu-sections .menu-section .selected-portal-item:before{content:\"\";width:20px;height:20px;display:block}nav .menu-sections .menu-section .selected-portal{background-color:var(--gray-light);border-radius:15px}nav .menu-sections .menu-section .selected-portal .icon-container{-webkit-mask-size:contain;-moz-mask-size:contain;-o-prop:contain}nav .menu-sections .menu-section .selected-portal .icon-container .menu-icon{filter:invert(35%) sepia(100%) saturate(5659%) hue-rotate(210deg) brightness(87%) contrast(118%)}nav .menu-sections .menu-section .selected-portal .selected-portal-item{background-color:var(--theme-primary)}nav .menu-sections .menu-section .selected-portal .marketplace .menu-label{color:var(--success-color)}nav .menu-sections .menu-section .selected-portal .menu-label{color:var(--theme-primary)}nav .footer{display:flex;align-items:center;padding:10px;margin:0 10px;border-top:1px solid var(--gray-light);overflow:hidden;height:50px}nav .footer .footer-icon{width:50px}nav .footer .footer-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;font-size:.8em;text-overflow:hidden;white-space:nowrap}\n"] }]
3274
+ }], ctorParameters: function () { return [{ type: MenuService }, { type: i2$1.Router }, { type: ProfileService }, { type: StorageService }, { type: undefined, decorators: [{
3045
3275
  type: Inject,
3046
3276
  args: ['environment']
3047
3277
  }] }, { type: undefined, decorators: [{
@@ -3140,12 +3370,12 @@ class TopBarComponent {
3140
3370
  this.router.navigate(['fintech/under-construction']);
3141
3371
  }
3142
3372
  }
3143
- TopBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, deps: [{ token: MenuService }, { token: AuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
3144
- 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\">\r\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\r\n <div class=\"menu-icon\"></div>\r\n </div>\r\n\r\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\r\n <span>Banco {{ currentAccount?.bankCode }}</span>\r\n <span class=\"separator\"></span>\r\n <span>AG {{ currentAccount?.agency }}</span>\r\n <span class=\"separator\"></span>\r\n <span>CC {{ currentAccount?.accountNumber }}</span>\r\n <span class=\"separator\"></span>\r\n <span\r\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\r\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\r\n >\r\n <ng-container *ngIf=\"otherAccounts?.length\">\r\n <span class=\"separator\"></span>\r\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\r\n <span>Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\r\n <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\r\n <span class=\"separator\"></span>\r\n <div\r\n #menuContainer\r\n class=\"menu-container\"\r\n (click)=\"menu.toggle($event)\"\r\n pTooltip=\"Enter your username\"\r\n tooltipPosition=\"bottom\"\r\n tooltipEvent=\"click\"\r\n >\r\n <span class=\"user-name\">{{ currentAccount?.name || '' }}</span>\r\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <ul class=\"user-menu\">\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel> -->\r\n\r\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\r\n </div>\r\n </div>\r\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\r\n <span class=\"change-account-mobile-label\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </div>\r\n <ul class=\"user-menu\">\r\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\r\n <span class=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <!-- <li *ngIf=\"fintech\" (click)=\"goToTariff()\">\r\n <span class=\"tariffs user-menu-icon\"></span>\r\n <span>Tarifas</span>\r\n </li> -->\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\r\n <ng-template pTemplate>\r\n <div\r\n *ngFor=\"let account of otherAccounts\"\r\n class=\"account-info change-account-info\"\r\n (click)=\"changeAccount(account)\"\r\n >\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ account?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ account?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ account?.documentFormatted }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.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%0D%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%0D%3C%2Fsvg%3E%0D\");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%0D %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E%0D %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E%0D %3Cg id%3D%22exit-to-app%22%3E%0D %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%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"], components: [{ type: i4$2.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$7.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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3373
+ 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 }], target: i0.ɵɵFactoryTarget.Component });
3374
+ 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\">\r\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\r\n <div class=\"menu-icon\"></div>\r\n </div>\r\n\r\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\r\n <span>Banco {{ currentAccount?.bankCode }}</span>\r\n <span class=\"separator\"></span>\r\n <span>AG {{ currentAccount?.agency }}</span>\r\n <span class=\"separator\"></span>\r\n <span>CC {{ currentAccount?.accountNumber }}</span>\r\n <span class=\"separator\"></span>\r\n <span\r\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\r\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\r\n >\r\n <ng-container *ngIf=\"otherAccounts?.length\">\r\n <span class=\"separator\"></span>\r\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\r\n <span>Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\r\n <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\r\n <span class=\"separator\"></span>\r\n <div\r\n #menuContainer\r\n class=\"menu-container\"\r\n (click)=\"menu.toggle($event)\"\r\n pTooltip=\"Enter your username\"\r\n tooltipPosition=\"bottom\"\r\n tooltipEvent=\"click\"\r\n >\r\n <span class=\"user-name\">{{ currentAccount?.name || '' }}</span>\r\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <ul class=\"user-menu\">\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel> -->\r\n\r\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\r\n </div>\r\n </div>\r\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\r\n <span class=\"change-account-mobile-label\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </div>\r\n <ul class=\"user-menu\">\r\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\r\n <span class=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <!-- <li *ngIf=\"fintech\" (click)=\"goToTariff()\">\r\n <span class=\"tariffs user-menu-icon\"></span>\r\n <span>Tarifas</span>\r\n </li> -->\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\r\n <ng-template pTemplate>\r\n <div\r\n *ngFor=\"let account of otherAccounts\"\r\n class=\"account-info change-account-info\"\r\n (click)=\"changeAccount(account)\"\r\n >\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ account?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ account?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ account?.documentFormatted }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\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%0D%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%0D%3C%2Fsvg%3E%0D\");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%0D %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E%0D %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E%0D %3Cg id%3D%22exit-to-app%22%3E%0D %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%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");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"] }] });
3145
3375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, decorators: [{
3146
3376
  type: Component,
3147
- args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\r\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\r\n <div class=\"menu-icon\"></div>\r\n </div>\r\n\r\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\r\n <span>Banco {{ currentAccount?.bankCode }}</span>\r\n <span class=\"separator\"></span>\r\n <span>AG {{ currentAccount?.agency }}</span>\r\n <span class=\"separator\"></span>\r\n <span>CC {{ currentAccount?.accountNumber }}</span>\r\n <span class=\"separator\"></span>\r\n <span\r\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\r\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\r\n >\r\n <ng-container *ngIf=\"otherAccounts?.length\">\r\n <span class=\"separator\"></span>\r\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\r\n <span>Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\r\n <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\r\n <span class=\"separator\"></span>\r\n <div\r\n #menuContainer\r\n class=\"menu-container\"\r\n (click)=\"menu.toggle($event)\"\r\n pTooltip=\"Enter your username\"\r\n tooltipPosition=\"bottom\"\r\n tooltipEvent=\"click\"\r\n >\r\n <span class=\"user-name\">{{ currentAccount?.name || '' }}</span>\r\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <ul class=\"user-menu\">\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel> -->\r\n\r\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\r\n </div>\r\n </div>\r\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\r\n <span class=\"change-account-mobile-label\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </div>\r\n <ul class=\"user-menu\">\r\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\r\n <span class=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <!-- <li *ngIf=\"fintech\" (click)=\"goToTariff()\">\r\n <span class=\"tariffs user-menu-icon\"></span>\r\n <span>Tarifas</span>\r\n </li> -->\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\r\n <ng-template pTemplate>\r\n <div\r\n *ngFor=\"let account of otherAccounts\"\r\n class=\"account-info change-account-info\"\r\n (click)=\"changeAccount(account)\"\r\n >\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ account?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ account?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ account?.documentFormatted }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\n", styles: [":root{--theme-primary: #0046e8;--theme-dark: #3a2b68;--background: #f2f2f7;--font-color: #151515;--disabled-background: #bcbcbc;--placeholder-color: #aaaaaa80;--border-radius: 5px;--theme-primary-transparent: rgba(1, 70, 108, .8);--gray-lighter: #eff0f6;--gray-light: #e5e5ea;--gray-medium: #d9dbe9;--gray-dark: #6e7f88;--gray-darker: #6e7191;--error-color: #fd6a6a;--error-color-dark: #ff4136;--error-color-transparent: #fd6a6a1a;--success-color: #11b797;--success-color-dark: #0e8a71;--theme-light: #0145e8;--warning-color: #e9c429;--cancel-color: #ca024f;--form-labels-color: #4e4b66;--font-color-primary: #3a2b68;--font-color-secondary: rgb(87, 87, 87)}.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%0D%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%0D%3C%2Fsvg%3E%0D\");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%0D %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E%0D %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E%0D %3Cg id%3D%22exit-to-app%22%3E%0D %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%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"] }]
3148
- }], ctorParameters: function () { return [{ type: MenuService }, { type: AuthService }, { type: i2.Router }]; }, propDecorators: { fintech: [{
3377
+ args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\r\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\r\n <div class=\"menu-icon\"></div>\r\n </div>\r\n\r\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\r\n <span>Banco {{ currentAccount?.bankCode }}</span>\r\n <span class=\"separator\"></span>\r\n <span>AG {{ currentAccount?.agency }}</span>\r\n <span class=\"separator\"></span>\r\n <span>CC {{ currentAccount?.accountNumber }}</span>\r\n <span class=\"separator\"></span>\r\n <span\r\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\r\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\r\n >\r\n <ng-container *ngIf=\"otherAccounts?.length\">\r\n <span class=\"separator\"></span>\r\n <div class=\"change-account-button\" (click)=\"changeAccountMenu.toggle($event)\">\r\n <span>Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\r\n <span *ngIf=\"!fintech\" class=\"fas fa-bell\"></span>\r\n <span class=\"separator\"></span>\r\n <div\r\n #menuContainer\r\n class=\"menu-container\"\r\n (click)=\"menu.toggle($event)\"\r\n pTooltip=\"Enter your username\"\r\n tooltipPosition=\"bottom\"\r\n tooltipEvent=\"click\"\r\n >\r\n <span class=\"user-name\">{{ currentAccount?.name || '' }}</span>\r\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <ul class=\"user-menu\">\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel> -->\r\n\r\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\r\n <ng-template pTemplate>\r\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\r\n </div>\r\n </div>\r\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\r\n <span class=\"change-account-mobile-label\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </div>\r\n <ul class=\"user-menu\">\r\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\r\n <span class=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <!-- <li *ngIf=\"fintech\" (click)=\"goToTariff()\">\r\n <span class=\"tariffs user-menu-icon\"></span>\r\n <span>Tarifas</span>\r\n </li> -->\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\r\n <ng-template pTemplate>\r\n <div\r\n *ngFor=\"let account of otherAccounts\"\r\n class=\"account-info change-account-info\"\r\n (click)=\"changeAccount(account)\"\r\n >\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ account?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ account?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ account?.documentFormatted }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\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%0D%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%0D%3C%2Fsvg%3E%0D\");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%0D %3Cg id%3D%22Grupo_8513%22 data-name%3D%22Grupo 8513%22 transform%3D%22translate(12.157)%22%3E%0D %3Cg id%3D%22Grupo_1649%22 data-name%3D%22Grupo 1649%22%3E%0D %3Cg id%3D%22exit-to-app%22%3E%0D %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%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-position-y:3px}@media screen and (max-width: 441px){.hidden-items{display:none!important}}\n"] }]
3378
+ }], ctorParameters: function () { return [{ type: MenuService }, { type: AuthService }, { type: i2$1.Router }]; }, propDecorators: { fintech: [{
3149
3379
  type: Input
3150
3380
  }], accountService: [{
3151
3381
  type: Input
@@ -3165,6 +3395,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
3165
3395
  }]
3166
3396
  }] });
3167
3397
 
3398
+ class CrudListHasItemsGuard {
3399
+ constructor(injector) {
3400
+ this.injector = injector;
3401
+ }
3402
+ canActivate(route) {
3403
+ const serviceType = route.data['service'];
3404
+ if (!serviceType) {
3405
+ console.error('You forgot to add the service declaration to route "data" property.');
3406
+ return false;
3407
+ }
3408
+ const service = this.injector.get(serviceType);
3409
+ return !!(service.dataset$.value?.data?.length || service.flatUnpagedDataset$.value?.length);
3410
+ }
3411
+ }
3412
+ CrudListHasItemsGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudListHasItemsGuard, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3413
+ CrudListHasItemsGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudListHasItemsGuard });
3414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CrudListHasItemsGuard, decorators: [{
3415
+ type: Injectable
3416
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
3417
+
3168
3418
  class GetTokenByGuidGuard {
3169
3419
  constructor(authService, storageService, router, appName) {
3170
3420
  this.authService = authService;
@@ -3197,11 +3447,11 @@ class GetTokenByGuidGuard {
3197
3447
  return false;
3198
3448
  }
3199
3449
  }
3200
- GetTokenByGuidGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetTokenByGuidGuard, deps: [{ token: AuthService }, { token: StorageService }, { token: i2.Router }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
3450
+ GetTokenByGuidGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetTokenByGuidGuard, deps: [{ token: AuthService }, { token: StorageService }, { token: i2$1.Router }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
3201
3451
  GetTokenByGuidGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetTokenByGuidGuard });
3202
3452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetTokenByGuidGuard, decorators: [{
3203
3453
  type: Injectable
3204
- }], ctorParameters: function () { return [{ type: AuthService }, { type: StorageService }, { type: i2.Router }, { type: AppName, decorators: [{
3454
+ }], ctorParameters: function () { return [{ type: AuthService }, { type: StorageService }, { type: i2$1.Router }, { type: AppName, decorators: [{
3205
3455
  type: Inject,
3206
3456
  args: ['appName']
3207
3457
  }] }]; } });
@@ -3219,11 +3469,11 @@ class HasPermissionGuard {
3219
3469
  return true;
3220
3470
  }
3221
3471
  }
3222
- HasPermissionGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: HasPermissionGuard, deps: [{ token: ProfileService }, { token: i2.Router }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
3472
+ HasPermissionGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: HasPermissionGuard, deps: [{ token: ProfileService }, { token: i2$1.Router }, { token: 'appName' }], target: i0.ɵɵFactoryTarget.Injectable });
3223
3473
  HasPermissionGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: HasPermissionGuard });
3224
3474
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: HasPermissionGuard, decorators: [{
3225
3475
  type: Injectable
3226
- }], ctorParameters: function () { return [{ type: ProfileService }, { type: i2.Router }, { type: AppName, decorators: [{
3476
+ }], ctorParameters: function () { return [{ type: ProfileService }, { type: i2$1.Router }, { type: AppName, decorators: [{
3227
3477
  type: Inject,
3228
3478
  args: ['appName']
3229
3479
  }] }]; } });
@@ -3241,11 +3491,11 @@ class RoleGuard {
3241
3491
  return this.router.createUrlTree(['']);
3242
3492
  }
3243
3493
  }
3244
- RoleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RoleGuard, deps: [{ token: StorageService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
3494
+ RoleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RoleGuard, deps: [{ token: StorageService }, { token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
3245
3495
  RoleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RoleGuard });
3246
3496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RoleGuard, decorators: [{
3247
3497
  type: Injectable
3248
- }], ctorParameters: function () { return [{ type: StorageService }, { type: i2.Router }]; } });
3498
+ }], ctorParameters: function () { return [{ type: StorageService }, { type: i2$1.Router }]; } });
3249
3499
 
3250
3500
  class TokenIsPresentGuard {
3251
3501
  constructor(storageService, authService) {
@@ -3438,9 +3688,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
3438
3688
  args: ['environment']
3439
3689
  }] }]; } });
3440
3690
 
3691
+ class GetCrudHistoryResolver {
3692
+ constructor(injector) {
3693
+ this.injector = injector;
3694
+ }
3695
+ resolve(route) {
3696
+ const serviceType = route.data['service'];
3697
+ if (!serviceType) {
3698
+ console.error('You forgot to add the service declaration to route "data" property.');
3699
+ return false;
3700
+ }
3701
+ const service = this.injector.get(serviceType);
3702
+ return service.getHistory(route.params['id']);
3703
+ }
3704
+ }
3705
+ GetCrudHistoryResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetCrudHistoryResolver, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3706
+ GetCrudHistoryResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetCrudHistoryResolver });
3707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetCrudHistoryResolver, decorators: [{
3708
+ type: Injectable
3709
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
3710
+
3711
+ class GetSelectedCrudItemResolver {
3712
+ constructor(injector) {
3713
+ this.injector = injector;
3714
+ }
3715
+ resolve(route) {
3716
+ const serviceType = route.data['service'];
3717
+ if (!serviceType) {
3718
+ console.error('You forgot to add the service declaration to route "data" property.');
3719
+ return undefined;
3720
+ }
3721
+ const service = this.injector.get(serviceType);
3722
+ if (service.dataset$.value?.data?.length) {
3723
+ return service.dataset$.value.data.find((item) => item.id == route.params['id']);
3724
+ }
3725
+ if (service.flatUnpagedDataset$.value?.length) {
3726
+ return service.flatUnpagedDataset$.value.find((item) => item.id == route.params['id']);
3727
+ }
3728
+ return undefined;
3729
+ }
3730
+ }
3731
+ GetSelectedCrudItemResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetSelectedCrudItemResolver, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3732
+ GetSelectedCrudItemResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetSelectedCrudItemResolver });
3733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GetSelectedCrudItemResolver, decorators: [{
3734
+ type: Injectable
3735
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
3736
+
3441
3737
  /**
3442
3738
  * Generated bundle index. Do not edit.
3443
3739
  */
3444
3740
 
3445
- export { AppName, AuthService, BooleanType, BreadcrumbComponent, BreadcrumbModule, ButtonComponent, CalendarComponent, CheckboxFieldComponent, CrudBaseComponent, CrudBaseService, CrudFooterComponent, CrudMode, CurrencyBrlPipe, CurrencyFieldComponent, DataTableComponent, DocumentType, DropdownFieldComponent, EnumService, ErrorMessageService, FieldErrorMessageComponent, FieldType, FieldsModule, FileUtil, FiltersComponent, FooterModule, GenericErrorModalComponent, GenericErrorModalModule, GenericModalComponent, GenericModalModule, GeolocationService, GetTokenByGuidGuard, HasPermissionGuard, HttpInterceptorProvider, LoadingService, MaskUtil, MenuComponent, MenuModule, MenuService, MessageStatus, ModalService, MultiselectFieldComponent, NotHiddenPipe, ObjectUtil, OnlyActivePipe, PanelComponent, PanelModule, PercentageFieldComponent, PipesModule, ProfileModuleActionType, ProfileModuleType, ProfileService, RadioButtonFieldComponent, RangeValueComponent, RemoveLastChildPipe, Role, RoleGuard, SearchFieldComponent, Status, StorageService, StringUtil, SubMenusListComponent, TableColumnType, TextFieldComponent, TextareaFieldComponent, TokenIsPresentGuard, TopBarComponent, TopBarModule, ValidationUtil, View, WindowUtil };
3741
+ export { AppName, AuthService, BadgeComponent, BadgeModule, BooleanType, BreadcrumbComponent, BreadcrumbModule, ButtonComponent, CalendarComponent, CheckboxFieldComponent, CrudBaseComponent, CrudBaseService, CrudFooterComponent, CrudHeaderComponent, CrudHeaderModule, CrudHistory, CrudHistoryComponent, CrudHistoryEventType, CrudHistoryModule, CrudListHasItemsGuard, CrudMode, CurrencyBrlPipe, CurrencyFieldComponent, DataTableComponent, DocumentType, DropdownFieldComponent, EnumService, ErrorMessageService, FieldErrorMessageComponent, FieldType, FieldsModule, FileUtil, FiltersComponent, FooterModule, FormatDocumentPipe, GenericErrorModalComponent, GenericErrorModalModule, GenericModalComponent, GenericModalModule, GeolocationService, GetCrudHistoryResolver, GetSelectedCrudItemResolver, GetTokenByGuidGuard, HasPermissionGuard, HttpInterceptorProvider, LoadingService, MaskUtil, MenuComponent, MenuModule, MenuService, MessageStatus, ModalService, MultiselectFieldComponent, NotHiddenPipe, ObjectUtil, OnlyActivePipe, PanelComponent, PanelModule, PercentageFieldComponent, PipesModule, ProfileModuleActionType, ProfileModuleType, ProfileService, RadioButtonFieldComponent, RangeValueComponent, RemoveLastChildPipe, Role, RoleGuard, SearchFieldComponent, SelectButtonFieldComponent, Status, StorageService, StringUtil, SubMenusListComponent, TableColumnType, TextFieldComponent, TextareaFieldComponent, TokenIsPresentGuard, TopBarComponent, TopBarModule, ValidationUtil, View, WindowUtil };
3446
3742
  //# sourceMappingURL=ngx-vector-components.mjs.map