ngx-vector-components 2.2.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/assets/styles/_primeng-custom-theme.scss +76 -51
- package/esm2020/lib/components/fields/calendar-field/calendar-field.component.mjs +9 -4
- package/esm2020/lib/components/fields/dropdown-field/dropdown-field.component.mjs +9 -5
- package/esm2020/lib/components/fields/field-error-message/field-error-message.component.mjs +30 -0
- package/esm2020/lib/components/fields/field-error-message/index.mjs +2 -0
- package/esm2020/lib/components/fields/fields.module.mjs +8 -3
- package/esm2020/lib/components/fields/filters/filters.component.mjs +1 -1
- package/esm2020/lib/components/fields/index.mjs +2 -1
- package/esm2020/lib/components/fields/search-field/search-field.component.mjs +1 -1
- package/esm2020/lib/components/fields/text-field/text-field.component.mjs +26 -22
- package/esm2020/lib/components/top-bar/top-bar.component.mjs +10 -4
- package/fesm2015/ngx-vector-components.mjs +90 -43
- package/fesm2015/ngx-vector-components.mjs.map +1 -1
- package/fesm2020/ngx-vector-components.mjs +90 -43
- package/fesm2020/ngx-vector-components.mjs.map +1 -1
- package/lib/components/fields/calendar-field/calendar-field.component.d.ts +2 -1
- package/lib/components/fields/dropdown-field/dropdown-field.component.d.ts +2 -1
- package/lib/components/fields/field-error-message/field-error-message.component.d.ts +10 -0
- package/lib/components/fields/field-error-message/index.d.ts +1 -0
- package/lib/components/fields/fields.module.d.ts +23 -22
- package/lib/components/fields/index.d.ts +1 -0
- package/lib/components/fields/text-field/text-field.component.d.ts +2 -2
- package/lib/components/top-bar/top-bar.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -5,10 +5,11 @@ import { MaskUtil } from '../../../utils';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../button/button.component";
|
|
7
7
|
import * as i2 from "primeng/inputmask";
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "@angular/
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "primeng/
|
|
8
|
+
import * as i3 from "../field-error-message/field-error-message.component";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "primeng/inputtext";
|
|
12
|
+
import * as i7 from "primeng/keyfilter";
|
|
12
13
|
export class TextFieldComponent {
|
|
13
14
|
constructor() {
|
|
14
15
|
this.isRequired = false;
|
|
@@ -21,6 +22,7 @@ export class TextFieldComponent {
|
|
|
21
22
|
this.rightIcon = '';
|
|
22
23
|
this.centered = false;
|
|
23
24
|
this.enableDocumentTypeChoice = false;
|
|
25
|
+
this.hiddenErrorMessage = false;
|
|
24
26
|
this.blurEvent = new EventEmitter();
|
|
25
27
|
this.enterKeyPress = new EventEmitter();
|
|
26
28
|
this.focusEvent = new EventEmitter();
|
|
@@ -91,21 +93,21 @@ export class TextFieldComponent {
|
|
|
91
93
|
this.subscription.unsubscribe();
|
|
92
94
|
this.controlSubscription.unsubscribe();
|
|
93
95
|
}
|
|
94
|
-
fieldErrorLabel() {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
96
|
+
// public fieldErrorLabel(): string {
|
|
97
|
+
// if (this.control && this.control.invalid && this.control.touched) {
|
|
98
|
+
// if (this.control.hasError('required')) {
|
|
99
|
+
// return 'Campo obrigatório';
|
|
100
|
+
// }
|
|
101
|
+
// if (this.control.hasError('minlength')) {
|
|
102
|
+
// return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;
|
|
103
|
+
// }
|
|
104
|
+
// if (this.control.hasError('maxlength')) {
|
|
105
|
+
// return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;
|
|
106
|
+
// }
|
|
107
|
+
// return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';
|
|
108
|
+
// }
|
|
109
|
+
// return '';
|
|
110
|
+
// }
|
|
109
111
|
onBlur() {
|
|
110
112
|
this.control.markAsTouched();
|
|
111
113
|
if (this.lastBlurValue !== this.control.value) {
|
|
@@ -167,10 +169,10 @@ export class TextFieldComponent {
|
|
|
167
169
|
}
|
|
168
170
|
}
|
|
169
171
|
TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
170
|
-
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", onlyText: "onlyText", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", 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 <!-- <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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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)}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"], components: [{ type: i1.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2.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"] }], directives: [{ type:
|
|
172
|
+
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", onlyText: "onlyText", 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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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}\n"], components: [{ type: i1.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2.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: i3.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: i5.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: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
171
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, decorators: [{
|
|
172
174
|
type: Component,
|
|
173
|
-
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 <!-- <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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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)}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"] }]
|
|
175
|
+
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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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}\n"] }]
|
|
174
176
|
}], propDecorators: { isRequired: [{
|
|
175
177
|
type: Input
|
|
176
178
|
}], label: [{
|
|
@@ -193,6 +195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
193
195
|
type: Input
|
|
194
196
|
}], enableDocumentTypeChoice: [{
|
|
195
197
|
type: Input
|
|
198
|
+
}], hiddenErrorMessage: [{
|
|
199
|
+
type: Input
|
|
196
200
|
}], control: [{
|
|
197
201
|
type: Input
|
|
198
202
|
}], blurEvent: [{
|
|
@@ -204,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
204
208
|
}], onDocumentTypeChange: [{
|
|
205
209
|
type: Output
|
|
206
210
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9TLGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBRXhDLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFzQmpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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R0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLElBQUk7c0JBRFYsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXFCQyxTQUFTO3NCQURmLE1BQU07Z0JBR0EsYUFBYTtzQkFEbkIsTUFBTTtnQkFHQSxVQUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUeXBlLCBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heGxlbmd0aDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG51bWVyaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvbmx5VGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hc2s6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRvQ2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNlbnRlcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY29udHJvbChfY29udHJvbDogYW55KSB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XHJcbiAgICBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSAmJiAhdGhpcy5sYXN0VHlwZWRWYWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMTEpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFR5cGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRG9jdW1lbnRUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZU9ubHkgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfSR7dGhpcy5pc1JlcXVpcmVkID8gJyonIDogJyd9YDtcclxuICB9XHJcblxyXG4gIGdldCBrZXlmaWx0ZXIoKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlT25seSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMubnVtZXJpYykge1xyXG4gICAgICByZXR1cm4gJ2ludCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5VGV4dCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRlT25seSA9IHRydWU7XHJcbiAgICAgIHJldHVybiAvXlthLXpBLVrDgC3Dulxcc10qJC9nbTtcclxuICAgIH1cclxuICAgIHJldHVybiAvW1xcc1xcU10qLztcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1Bhc3N3b3JkSWNvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID8gJ2ZhcyBmYS1leWUnIDogJ2ZhcyBmYS1leWUtc2xhc2gnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvY3VtZW50VHlwZXM6IExpc3RJdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDUEYnLFxyXG4gICAgICBjb2RlOiBEb2N1bWVudFR5cGUuQ1BGLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0NOUEonLFxyXG4gICAgICBjb2RlOiBEb2N1bWVudFR5cGUuQ05QSixcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xyXG5cclxuICBwcml2YXRlIGxhc3RCbHVyVmFsdWUgPSAnJztcclxuICBwcml2YXRlIGxhc3RUeXBlZFZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBjb250cm9sU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgX2NvbnRyb2w6IGFueTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUodGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZS5jb2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpZWxkRXJyb3JMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgcmV0dXJuICdDYW1wbyBvYnJpZ2F0w7NyaW8nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw61uaW1vOiAke3RoaXMuY29udHJvbC5lcnJvcnNbJ21pbmxlbmd0aCddLnJlcXVpcmVkTGVuZ3RofWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBUYW1hbmhvIG3DoXhpbW8gcGVybWl0aWRvOiAke3RoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddLnJlcXVpcmVkTGVuZ3RofWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5jb250cm9sLmVycm9yc1snaW52YWxpZCddID09PSAnc3RyaW5nJyA/IHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA6ICdDYW1wbyBpbnbDoWxpZG8nO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgaWYgKHRoaXMubGFzdEJsdXJWYWx1ZSAhPT0gdGhpcy5jb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubGFzdEJsdXJWYWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ibHVyRXZlbnQuZW1pdCh0aGlzLmNvbnRyb2wudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkVudGVyUHJlc3MoKSB7XHJcbiAgICB0aGlzLm9uQmx1cigpO1xyXG4gICAgdGhpcy5lbnRlcktleVByZXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzKCRldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmICh0aGlzLm1hc2spIHtcclxuICAgICAgY29uc3QgZmlyc3RVbmRlcnNjb3JlID0gdGFyZ2V0Py52YWx1ZS5pbmRleE9mKCdfJyk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkluZGV4ID0gKGZpcnN0VW5kZXJzY29yZSA+PSAwID8gZmlyc3RVbmRlcnNjb3JlIDogdGFyZ2V0Py52YWx1ZS5sZW5ndGgpIHx8IDA7XHJcbiAgICAgIHRhcmdldD8uc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uSW5kZXgsIHNlbGVjdGlvbkluZGV4KTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXNFdmVudC5lbWl0KHRhcmdldD8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVNob3dQYXNzd29yZCgpIHtcclxuICAgIHRoaXMuaXNQYXNzd29yZFZpc2libGUgPSAhdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEb2N1bWVudFR5cGVDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZS5jb2RlID09PSBEb2N1bWVudFR5cGUuQ05QSikge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ1BGKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DTlBKKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbD8udmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNOUEopO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ1BGKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50VHlwZTogRG9jdW1lbnRUeXBlKSB7XHJcbiAgICBzd2l0Y2ggKGRvY3VtZW50VHlwZSkge1xyXG4gICAgICBjYXNlIERvY3VtZW50VHlwZS5DTlBKOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSB0aGlzLmRvY3VtZW50VHlwZXNbMV07XHJcbiAgICAgICAgdGhpcy5tYXNrID0gTWFza1V0aWwuQ05QSl9URVhUX0ZJRUxEX1BBVFRFUk47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRG9jdW1lbnRUeXBlLkNQRjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzBdO1xyXG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNQRl9URVhUX0ZJRUxEX1BBVFRFUk47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uRG9jdW1lbnRUeXBlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyIHAtaW5wdXQtaWNvbi1yaWdodFwiPlxyXG4gIDxpICpuZ0lmPVwicmlnaHRJY29uXCIgW2NsYXNzXT1cInJpZ2h0SWNvblwiPjwvaT5cclxuICA8aSAqbmdJZj1cImlzUGFzc3dvcmRcIiBjbGFzcz1cInNob3ctcGFzc3dvcmQtaWNvbiB7eyBzaG93UGFzc3dvcmRJY29uIH19XCIgKGNsaWNrKT1cInRvZ2dsZVNob3dQYXNzd29yZCgpXCI+PC9pPlxyXG4gIDxkaXYgY2xhc3M9XCJwLWlucHV0Z3JvdXBcIj5cclxuICAgIDx2ZWN0b3ItYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlXCJcclxuICAgICAgbGVmdEljb249XCJmYXMgZmEtZXhjaGFuZ2UtYWx0XCJcclxuICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxyXG4gICAgICBbbGFiZWxdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUubmFtZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sLmRpc2FibGVkXCJcclxuICAgICAgW25vU2hhZG93XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJoYW5kbGVEb2N1bWVudFR5cGVDaGFuZ2UoKVwiXHJcbiAgICA+PC92ZWN0b3ItYnV0dG9uPlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICAqbmdJZj1cIiFtYXNrXCJcclxuICAgICAgcElucHV0VGV4dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtwVmFsaWRhdGVPbmx5XT1cInZhbGlkYXRlT25seVwiXHJcbiAgICAgIFtwS2V5RmlsdGVyXT1cImtleWZpbHRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3Bhc3N3b3JkLWZpZWxkJzogaXNQYXNzd29yZCAmJiAhaXNQYXNzd29yZFZpc2libGUsICd0ZXh0LWNlbnRlcmVkJzogY2VudGVyZWQgfVwiXHJcbiAgICAgIChvbkJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyUHJlc3MoKVwiXHJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIDxwLWlucHV0TWFza1xyXG4gICAgICAqbmdJZj1cIm1hc2tcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW21hc2tdPVwibWFza1wiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIChvbkJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyUHJlc3MoKVwiXHJcbiAgICAgIFthdXRvQ2xlYXJdPVwiYXV0b0NsZWFyXCJcclxuICAgICAgW3VubWFza109XCJ0cnVlXCJcclxuICAgICAgW3N0eWxlQ2xhc3NdPVwiY2VudGVyZWQgPyAndGV4dC1jZW50ZXJlZCcgOiAnJ1wiXHJcbiAgICAgIHNsb3RDaGFyPVwiX1wiXHJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgPjwvcC1pbnB1dE1hc2s+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8c3BhbiBjbGFzcz1cImlucHV0LWVycm9yXCI+e3sgZmllbGRFcnJvckxhYmVsKCkgfX08L3NwYW4+IC0tPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFPUyxlQUFVLEdBQXdCLEtBQUssQ0FBQztRQUV4QyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUUvQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBRWpDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQXNCcEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0Isa0JB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QUMsdUJBQXVCLENBQUM7Z0JBQzdDLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNuQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUM7Z0JBQzVDLE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs7K0dBcE1VLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdpQkNWL0Isd3REQThDQTsyRkRwQ2Esa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLG1CQUFtQjs4QkFNdEIsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0Msd0JBQXdCO3NCQUQ5QixLQUFLO2dCQUdDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7Z0JBcUJDLFNBQVM7c0JBRGYsTUFBTTtnQkFHQSxhQUFhO3NCQURuQixNQUFNO2dCQUdBLFVBQVU7c0JBRGhCLE1BQU07Z0JBR0Esb0JBQW9CO3NCQUQxQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudFR5cGUsIExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTWFza1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci10ZXh0LWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1maWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzUmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWF4bGVuZ3RoOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1Bhc3N3b3JkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbnVtZXJpYyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9ubHlUZXh0ID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWFzazogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGF1dG9DbGVhciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmlnaHRJY29uID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY2VudGVyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlbmFibGVEb2N1bWVudFR5cGVDaG9pY2UgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoaWRkZW5FcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBjb250cm9sKF9jb250cm9sOiBhbnkpIHtcclxuICAgIHRoaXMuX2NvbnRyb2wgPSBfY29udHJvbDtcclxuICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSkge1xyXG4gICAgICB0aGlzLmhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5jb250cm9sU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlICYmICF0aGlzLmxhc3RUeXBlZFZhbHVlICYmIHZhbHVlPy5sZW5ndGggPiAxMSkge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0VHlwZWRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGJsdXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZW50ZXJLZXlQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZm9jdXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25Eb2N1bWVudFR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPExpc3RJdGVtPigpO1xyXG5cclxuICBwdWJsaWMgaXNQYXNzd29yZFZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHZhbGlkYXRlT25seSA9IGZhbHNlO1xyXG5cclxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoaXMubGFiZWx9JHt0aGlzLmlzUmVxdWlyZWQgPyAnKicgOiAnJ31gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGtleWZpbHRlcigpIHtcclxuICAgIHRoaXMudmFsaWRhdGVPbmx5ID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5udW1lcmljKSB7XHJcbiAgICAgIHJldHVybiAnaW50JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9ubHlUZXh0KSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVPbmx5ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIC9eW2EtekEtWsOALcO6XFxzXSokL2dtO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC9bXFxzXFxTXSovO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93UGFzc3dvcmRJY29uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNQYXNzd29yZFZpc2libGUgPyAnZmFzIGZhLWV5ZScgOiAnZmFzIGZhLWV5ZS1zbGFzaCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9jdW1lbnRUeXBlczogTGlzdEl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0NQRicsXHJcbiAgICAgIGNvZGU6IERvY3VtZW50VHlwZS5DUEYsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ05QSicsXHJcbiAgICAgIGNvZGU6IERvY3VtZW50VHlwZS5DTlBKLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWREb2N1bWVudFR5cGUgPSB0aGlzLmRvY3VtZW50VHlwZXNbMV07XHJcblxyXG4gIHByaXZhdGUgbGFzdEJsdXJWYWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgbGFzdFR5cGVkVmFsdWUgPSAnJztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIGNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBfY29udHJvbDogYW55O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSkge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZSh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlLmNvZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jb250cm9sU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgZmllbGRFcnJvckxhYmVsKCk6IHN0cmluZyB7XHJcbiAgLy8gICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAvLyAgICAgICByZXR1cm4gJ0NhbXBvIG9icmlnYXTDs3Jpbyc7XHJcbiAgLy8gICAgIH1cclxuXHJcbiAgLy8gICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XHJcbiAgLy8gICAgICAgcmV0dXJuIGBUYW1hbmhvIG3DrW5pbW86ICR7dGhpcy5jb250cm9sLmVycm9yc1snbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9YDtcclxuICAvLyAgICAgfVxyXG5cclxuICAvLyAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcclxuICAvLyAgICAgICByZXR1cm4gYFRhbWFuaG8gbcOheGltbyBwZXJtaXRpZG86ICR7dGhpcy5jb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9YDtcclxuICAvLyAgICAgfVxyXG5cclxuICAvLyAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gPT09ICdzdHJpbmcnID8gdGhpcy5jb250cm9sLmVycm9yc1snaW52YWxpZCddIDogJ0NhbXBvIGludsOhbGlkbyc7XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vICAgcmV0dXJuICcnO1xyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cigpIHtcclxuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5sYXN0Qmx1clZhbHVlICE9PSB0aGlzLmNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5sYXN0Qmx1clZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmJsdXJFdmVudC5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRW50ZXJQcmVzcygpIHtcclxuICAgIHRoaXMub25CbHVyKCk7XHJcbiAgICB0aGlzLmVudGVyS2V5UHJlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRm9jdXMoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKHRoaXMubWFzaykge1xyXG4gICAgICBjb25zdCBmaXJzdFVuZGVyc2NvcmUgPSB0YXJnZXQ/LnZhbHVlLmluZGV4T2YoJ18nKTtcclxuICAgICAgY29uc3Qgc2VsZWN0aW9uSW5kZXggPSAoZmlyc3RVbmRlcnNjb3JlID49IDAgPyBmaXJzdFVuZGVyc2NvcmUgOiB0YXJnZXQ/LnZhbHVlLmxlbmd0aCkgfHwgMDtcclxuICAgICAgdGFyZ2V0Py5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25JbmRleCwgc2VsZWN0aW9uSW5kZXgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb2N1c0V2ZW50LmVtaXQodGFyZ2V0Py52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA9ICF0aGlzLmlzUGFzc3dvcmRWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURvY3VtZW50VHlwZUNoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlLmNvZGUgPT09IERvY3VtZW50VHlwZS5DTlBKKSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNOUEopO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sPy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMTEpIHtcclxuICAgICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ1BGKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREb2N1bWVudFR5cGUoZG9jdW1lbnRUeXBlOiBEb2N1bWVudFR5cGUpIHtcclxuICAgIHN3aXRjaCAoZG9jdW1lbnRUeXBlKSB7XHJcbiAgICAgIGNhc2UgRG9jdW1lbnRUeXBlLkNOUEo6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1sxXTtcclxuICAgICAgICB0aGlzLm1hc2sgPSBNYXNrVXRpbC5DTlBKX1RFWFRfRklFTERfUEFUVEVSTjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEb2N1bWVudFR5cGUuQ1BGOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSB0aGlzLmRvY3VtZW50VHlwZXNbMF07XHJcbiAgICAgICAgdGhpcy5tYXNrID0gTWFza1V0aWwuQ1BGX1RFWFRfRklFTERfUEFUVEVSTjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMub25Eb2N1bWVudFR5cGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJpbnB1dC1jb250YWluZXIgcC1pbnB1dC1pY29uLXJpZ2h0XCI+XHJcbiAgPGkgKm5nSWY9XCJyaWdodEljb25cIiBbY2xhc3NdPVwicmlnaHRJY29uXCI+PC9pPlxyXG4gIDxpICpuZ0lmPVwiaXNQYXNzd29yZFwiIGNsYXNzPVwic2hvdy1wYXNzd29yZC1pY29uIHt7IHNob3dQYXNzd29yZEljb24gfX1cIiAoY2xpY2spPVwidG9nZ2xlU2hvd1Bhc3N3b3JkKClcIj48L2k+XHJcbiAgPGRpdiBjbGFzcz1cInAtaW5wdXRncm91cFwiPlxyXG4gICAgPHZlY3Rvci1idXR0b25cclxuICAgICAgKm5nSWY9XCJlbmFibGVEb2N1bWVudFR5cGVDaG9pY2VcIlxyXG4gICAgICBsZWZ0SWNvbj1cImZhcyBmYS1leGNoYW5nZS1hbHRcIlxyXG4gICAgICB0eXBlPVwic3VjY2Vzc1wiXHJcbiAgICAgIFtsYWJlbF09XCJzZWxlY3RlZERvY3VtZW50VHlwZS5uYW1lXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxyXG4gICAgICBbbm9TaGFkb3ddPVwidHJ1ZVwiXHJcbiAgICAgIChvbkNsaWNrKT1cImhhbmRsZURvY3VtZW50VHlwZUNoYW5nZSgpXCJcclxuICAgID48L3ZlY3Rvci1idXR0b24+XHJcblxyXG4gICAgPGlucHV0XHJcbiAgICAgICpuZ0lmPVwiIW1hc2tcIlxyXG4gICAgICBwSW5wdXRUZXh0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3BWYWxpZGF0ZU9ubHldPVwidmFsaWRhdGVPbmx5XCJcclxuICAgICAgW3BLZXlGaWx0ZXJdPVwia2V5ZmlsdGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAncGFzc3dvcmQtZmllbGQnOiBpc1Bhc3N3b3JkICYmICFpc1Bhc3N3b3JkVmlzaWJsZSwgJ3RleHQtY2VudGVyZWQnOiBjZW50ZXJlZCB9XCJcclxuICAgICAgKG9uQmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJQcmVzcygpXCJcclxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgPHAtaW5wdXRNYXNrXHJcbiAgICAgICpuZ0lmPVwibWFza1wiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbbWFza109XCJtYXNrXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKG9uQmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJQcmVzcygpXCJcclxuICAgICAgW2F1dG9DbGVhcl09XCJhdXRvQ2xlYXJcIlxyXG4gICAgICBbdW5tYXNrXT1cInRydWVcIlxyXG4gICAgICBbc3R5bGVDbGFzc109XCJjZW50ZXJlZCA/ICd0ZXh0LWNlbnRlcmVkJyA6ICcnXCJcclxuICAgICAgc2xvdENoYXI9XCJfXCJcclxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICA+PC9wLWlucHV0TWFzaz5cclxuICA8L2Rpdj5cclxuICA8dmVjdG9yLWZpZWxkLWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhaGlkZGVuRXJyb3JNZXNzYWdlXCIgW2NvbnRyb2xdPVwiY29udHJvbFwiPjwvdmVjdG9yLWZpZWxkLWVycm9yLW1lc3NhZ2U+XHJcbiAgPCEtLSA8c3BhbiBjbGFzcz1cImlucHV0LWVycm9yXCI+e3sgZmllbGRFcnJvckxhYmVsKCkgfX08L3NwYW4+IC0tPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
@@ -19,8 +19,10 @@ export class TopBarComponent {
|
|
|
19
19
|
this.openedMenu = false;
|
|
20
20
|
this.openedChangeAccountMenu = false;
|
|
21
21
|
this.doingOnboarding = false;
|
|
22
|
+
this.currentAccount = {};
|
|
22
23
|
this.isAdmin = false;
|
|
23
24
|
this.otherAccounts = [];
|
|
25
|
+
this.maskUtil = MaskUtil;
|
|
24
26
|
this.fintech = false;
|
|
25
27
|
this.subscription = new Subscription();
|
|
26
28
|
}
|
|
@@ -29,7 +31,6 @@ export class TopBarComponent {
|
|
|
29
31
|
this.hideElements = hasOpened;
|
|
30
32
|
}));
|
|
31
33
|
this.subscription.add(this.accountService.currentAccount$.subscribe((account) => {
|
|
32
|
-
account.documentFormatted = MaskUtil.formatDocument(account.document);
|
|
33
34
|
this.currentAccount = account;
|
|
34
35
|
if (this.currentAccount) {
|
|
35
36
|
const str = `${this.currentAccount.accountNumber}`;
|
|
@@ -44,6 +45,11 @@ export class TopBarComponent {
|
|
|
44
45
|
this.subscription.add(this.accountService?.userAccounts$.subscribe((accounts) => {
|
|
45
46
|
this.otherAccounts = accounts?.filter((acc) => acc.uuid !== this.currentAccount?.uuid) || [];
|
|
46
47
|
}));
|
|
48
|
+
this.subscription.add(this.accountService.onOnboarding$.subscribe((onOnboarding) => {
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
this.doingOnboarding = onOnboarding;
|
|
51
|
+
});
|
|
52
|
+
}));
|
|
47
53
|
}
|
|
48
54
|
ngOnDestroy() {
|
|
49
55
|
this.subscription.unsubscribe();
|
|
@@ -72,13 +78,13 @@ export class TopBarComponent {
|
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
TopBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, deps: [{ token: i1.MenuService }, { token: i2.AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
-
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()\">\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 {{ currentAccount?.documentFormatted }}</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 }\">\r\n <span 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\"> {{ currentAccount?.documentFormatted }}</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 (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 (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Senha Fintech</span>\r\n </li>\r\n <li (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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
81
|
+
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 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 (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 (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Senha Fintech</span>\r\n </li>\r\n <li (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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
76
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TopBarComponent, decorators: [{
|
|
77
83
|
type: Component,
|
|
78
|
-
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()\">\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 {{ currentAccount?.documentFormatted }}</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 }\">\r\n <span 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\"> {{ currentAccount?.documentFormatted }}</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 (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 (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Senha Fintech</span>\r\n </li>\r\n <li (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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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"] }]
|
|
84
|
+
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 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 (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 (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Senha Fintech</span>\r\n </li>\r\n <li (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);--grey-light: #e5e5ea;--grey-lighter: #eff0f6;--grey-dark: #6e7f88;--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"] }]
|
|
79
85
|
}], ctorParameters: function () { return [{ type: i1.MenuService }, { type: i2.AuthService }, { type: i3.Router }]; }, propDecorators: { fintech: [{
|
|
80
86
|
type: Input
|
|
81
87
|
}], accountService: [{
|
|
82
88
|
type: Input
|
|
83
89
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQW9CLFdBQXdCLEVBQVUsV0FBd0IsRUFBVSxNQUFjO1FBQWxGLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBaEIvRixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd4QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBRzFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFJeEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRStELENBQUM7SUFFMUcsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FB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SUFDdkQsQ0FBQzs7NEdBcEZVLGVBQWU7Z0dBQWYsZUFBZSx3SENiNUIsK3JMQWdKQTsyRkRuSWEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxnQkFBZ0I7aUpBZW5CLE9BQU87c0JBRGIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXNrVXRpbCwgV2luZG93VXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLXRvcC1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcGVuZWRNZW51ID0gZmFsc2U7XHJcbiAgcHVibGljIG9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2U7XHJcbiAgcHVibGljIGRvaW5nT25ib2FyZGluZyA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgY3VycmVudEFjY291bnQ6IGFueTtcclxuICBwdWJsaWMgaXNBZG1pbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvdGhlckFjY291bnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaW50ZWNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWNjb3VudFNlcnZpY2U6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UubWVudU9wZW5lZCQuc3Vic2NyaWJlKChoYXNPcGVuZWQpID0+IHtcclxuICAgICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGhhc09wZW5lZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmFjY291bnRTZXJ2aWNlLmN1cnJlbnRBY2NvdW50JC5zdWJzY3JpYmUoKGFjY291bnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGFjY291bnQuZG9jdW1lbnRGb3JtYXR0ZWQgPSBNYXNrVXRpbC5mb3JtYXREb2N1bWVudChhY2NvdW50LmRvY3VtZW50KTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRBY2NvdW50ID0gYWNjb3VudDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjY291bnQpIHtcclxuICAgICAgICAgIGNvbnN0IHN0ciA9IGAke3RoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlcn1gO1xyXG4gICAgICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcclxuICAgICAgICAgIGNvbnN0IGFjY291bnRXaXRoSHlmZW4gPSBzdHIuc3Vic3RyaW5nKDAsIGxlbiAtIDEpICsgJy0nICsgc3RyLnN1YnN0cmluZyhsZW4gLSAxKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlciA9IGFjY291bnRXaXRoSHlmZW47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uucm9sZSQuc3Vic2NyaWJlKChyb2xlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0FkbWluID0gcm9sZSA9PT0gUm9sZS5BRE1JTjtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmFjY291bnRTZXJ2aWNlPy51c2VyQWNjb3VudHMkLnN1YnNjcmliZSgoYWNjb3VudHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3RoZXJBY2NvdW50cyA9IGFjY291bnRzPy5maWx0ZXIoKGFjYzogYW55KSA9PiBhY2MudXVpZCAhPT0gdGhpcy5jdXJyZW50QWNjb3VudD8udXVpZCkgfHwgW107XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLnRvZ2dsZU1lbnUkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzRGVza3RvcCgpIHtcclxuICAgIHJldHVybiBXaW5kb3dVdGlsLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUFjY291bnQobmV3QWNjb3VudDogYW55KSB7XHJcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlLmN1cnJlbnRBY2NvdW50JC5uZXh0KG5ld0FjY291bnQpO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdvVG9UZXJtc09mVXNlKCkge1xyXG4gICAgdGhpcy5hY2NvdW50U2VydmljZS50ZXJtc09mVXNlJC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1Bhc3N3b3JkQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydwYXNzd29yZCcsICdyZWNvdmVyJ10sIHsgcXVlcnlQYXJhbXM6IHsgY2hhbmdlOiB0cnVlIH0gfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1RhcmlmZigpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZmludGVjaC91bmRlci1jb25zdHJ1Y3Rpb24nXSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b3AtYmFyLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgaWQ9XCJtZW51LXRvZ2dsZVwiIGNsYXNzPVwibWVudS10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJsZWZ0LWl0ZW1zLWNvbnRhaW5lclwiICpuZ0lmPVwiZmludGVjaCAmJiBpc0Rlc2t0b3AoKVwiPlxyXG4gICAgPHNwYW4+QmFuY28ge3sgY3VycmVudEFjY291bnQ/LmJhbmtDb2RlIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5BRyB7eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgPHNwYW5cclxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxyXG4gICAgICB7eyBjdXJyZW50QWNjb3VudD8uZG9jdW1lbnRGb3JtYXR0ZWQgfX08L3NwYW5cclxuICAgID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvdGhlckFjY291bnRzPy5sZW5ndGhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1idXR0b25cIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIj5cclxuICAgICAgICA8c3Bhbj5BbHRlcm5hciBjb250YTwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgfVwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJpZ2h0LWl0ZW1zLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ2hpZGRlbi1pdGVtcyc6IGhpZGVFbGVtZW50cyB9XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZhcyBmYS1iZWxsXCI+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICA8ZGl2XHJcbiAgICAgICNtZW51Q29udGFpbmVyXHJcbiAgICAgIGNsYXNzPVwibWVudS1jb250YWluZXJcIlxyXG4gICAgICAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgIHBUb29sdGlwPVwiRW50ZXIgeW91ciB1c2VybmFtZVwiXHJcbiAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgIHRvb2x0aXBFdmVudD1cImNsaWNrXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW5hbWVcIj57eyBjdXJyZW50QWNjb3VudD8ubmFtZSB8fCAnJyB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmYXNcIiBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZE1lbnUgfVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPHAtb3ZlcmxheVBhbmVsICNtZW51IChvbkhpZGUpPVwib3BlbmVkTWVudSA9IGZhbHNlXCIgKG9uU2hvdyk9XCJvcGVuZWRNZW51ID0gdHJ1ZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XHJcbiAgICA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVcIj5cclxuICAgICAgPGxpIChjbGljayk9XCJsb2dvdXQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPlNhaXI8L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1vdmVybGF5UGFuZWw+IC0tPlxyXG5cclxuPHAtb3ZlcmxheVBhbmVsICNtZW51IChvbkhpZGUpPVwib3BlbmVkTWVudSA9IGZhbHNlXCIgKG9uU2hvdyk9XCJvcGVuZWRNZW51ID0gdHJ1ZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvXCIgKm5nSWY9XCIhaXNEZXNrdG9wKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPkJhbmNvOiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5iYW5rIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hZ2VuY3kgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IGN1cnJlbnRBY2NvdW50Py5kb2N1bWVudEZvcm1hdHRlZCB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGVcIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIiAqbmdJZj1cIm90aGVyQWNjb3VudHM/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlLWxhYmVsXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwiZmFzXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVcIj5cclxuICAgICAgPGxpIChjbGljayk9XCJnb1RvVGVybXNPZlVzZSgpOyBtZW51LmhpZGUoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGVybXMtb2YtdXNlIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPlRlcm1vcyBkZSBVc288L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIDxsaSAoY2xpY2spPVwiZ29Ub1Bhc3N3b3JkQ2hhbmdlKCk7IG1lbnUuaGlkZSgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaW50ZWNoLXBhc3N3b3JkIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPlNlbmhhIEZpbnRlY2g8L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIDxsaSAoY2xpY2spPVwiZ29Ub1RhcmlmZigpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YXJpZmZzIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPlRhcmlmYXM8L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIDxsaSAoY2xpY2spPVwibG9nb3V0KClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ291dCB1c2VyLW1lbnUtaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG5cclxuPHAtb3ZlcmxheVBhbmVsICNjaGFuZ2VBY2NvdW50TWVudSAob25IaWRlKT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gdHJ1ZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0Zvcj1cImxldCBhY2NvdW50IG9mIG90aGVyQWNjb3VudHNcIlxyXG4gICAgICBjbGFzcz1cImFjY291bnQtaW5mbyBjaGFuZ2UtYWNjb3VudC1pbmZvXCJcclxuICAgICAgKGNsaWNrKT1cImNoYW5nZUFjY291bnQoYWNjb3VudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5hZ2VuY3kgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19OiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBhY2NvdW50Py5kb2N1bWVudEZvcm1hdHRlZCB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFrQjFCLFlBQW9CLFdBQXdCLEVBQVUsV0FBd0IsRUFBVSxNQUFjO1FBQWxGLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakIvRixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFHcEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUl4QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENB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TSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs0R0EzRlUsZUFBZTtnR0FBZixlQUFlLHdIQ2I1QixzeUxBZ0pBOzJGRG5JYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQjtpSkFnQm5CLE9BQU87c0JBRGIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXNrVXRpbCwgV2luZG93VXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLXRvcC1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcGVuZWRNZW51ID0gZmFsc2U7XHJcbiAgcHVibGljIG9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2U7XHJcbiAgcHVibGljIGRvaW5nT25ib2FyZGluZyA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgY3VycmVudEFjY291bnQ6IGFueSA9IHt9O1xyXG4gIHB1YmxpYyBpc0FkbWluID0gZmFsc2U7XHJcbiAgcHVibGljIG90aGVyQWNjb3VudHM6IGFueVtdID0gW107XHJcbiAgcHVibGljIG1hc2tVdGlsID0gTWFza1V0aWw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpbnRlY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY2NvdW50U2VydmljZTogYW55O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5zdWJzY3JpYmUoKGhhc09wZW5lZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzID0gaGFzT3BlbmVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLnN1YnNjcmliZSgoYWNjb3VudDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudCA9IGFjY291bnQ7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjY291bnQpIHtcclxuICAgICAgICAgIGNvbnN0IHN0ciA9IGAke3RoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlcn1gO1xyXG4gICAgICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcclxuICAgICAgICAgIGNvbnN0IGFjY291bnRXaXRoSHlmZW4gPSBzdHIuc3Vic3RyaW5nKDAsIGxlbiAtIDEpICsgJy0nICsgc3RyLnN1YnN0cmluZyhsZW4gLSAxKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlciA9IGFjY291bnRXaXRoSHlmZW47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uucm9sZSQuc3Vic2NyaWJlKChyb2xlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0FkbWluID0gcm9sZSA9PT0gUm9sZS5BRE1JTjtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmFjY291bnRTZXJ2aWNlPy51c2VyQWNjb3VudHMkLnN1YnNjcmliZSgoYWNjb3VudHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3RoZXJBY2NvdW50cyA9IGFjY291bnRzPy5maWx0ZXIoKGFjYzogYW55KSA9PiBhY2MudXVpZCAhPT0gdGhpcy5jdXJyZW50QWNjb3VudD8udXVpZCkgfHwgW107XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbk9uYm9hcmRpbmckLnN1YnNjcmliZSgob25PbmJvYXJkaW5nOiBhbnkpID0+IHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG9pbmdPbmJvYXJkaW5nID0gb25PbmJvYXJkaW5nO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5tZW51U2VydmljZS50b2dnbGVNZW51JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0Rlc2t0b3AoKSB7XHJcbiAgICByZXR1cm4gV2luZG93VXRpbC5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VBY2NvdW50KG5ld0FjY291bnQ6IGFueSkge1xyXG4gICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQubmV4dChuZXdBY2NvdW50KTtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvVGVybXNPZlVzZSgpIHtcclxuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UudGVybXNPZlVzZSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdvVG9QYXNzd29yZENoYW5nZSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncGFzc3dvcmQnLCAncmVjb3ZlciddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoYW5nZTogdHJ1ZSB9IH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdvVG9UYXJpZmYoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2ZpbnRlY2gvdW5kZXItY29uc3RydWN0aW9uJ10pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9wLWJhci1jb250YWluZXJcIj5cclxuICA8ZGl2IGlkPVwibWVudS10b2dnbGVcIiBjbGFzcz1cIm1lbnUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibGVmdC1pdGVtcy1jb250YWluZXJcIiAqbmdJZj1cImZpbnRlY2ggJiYgaXNEZXNrdG9wKCkgJiYgIWRvaW5nT25ib2FyZGluZyAmJiAhaXNBZG1pblwiPlxyXG4gICAgPHNwYW4+QmFuY28ge3sgY3VycmVudEFjY291bnQ/LmJhbmtDb2RlIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5BRyB7eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgPHNwYW5cclxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxyXG4gICAgICB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuXHJcbiAgICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPHNwYW4+QWx0ZXJuYXIgY29udGE8L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwiZmFzXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyaWdodC1pdGVtcy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdoaWRkZW4taXRlbXMnOiBoaWRlRWxlbWVudHMgfVwiICpuZ0lmPVwiIWlzQWRtaW4gJiYgIWRvaW5nT25ib2FyZGluZ1wiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmYXMgZmEtYmVsbFwiPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgPGRpdlxyXG4gICAgICAjbWVudUNvbnRhaW5lclxyXG4gICAgICBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCJcclxuICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBwVG9vbHRpcD1cIkVudGVyIHlvdXIgdXNlcm5hbWVcIlxyXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxyXG4gICAgICB0b29sdGlwRXZlbnQ9XCJjbGlja1wiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1uYW1lXCI+e3sgY3VycmVudEFjY291bnQ/Lm5hbWUgfHwgJycgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmFzXCIgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRNZW51IH1cIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxyXG4gICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCI+XHJcbiAgICAgIDxsaSAoY2xpY2spPVwibG9nb3V0KClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ291dCB1c2VyLW1lbnUtaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3Atb3ZlcmxheVBhbmVsPiAtLT5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mb1wiICpuZ0lmPVwiIWlzRGVza3RvcCgpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj5CYW5jbzogPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPkNDOiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19OiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNoYW5nZS1hY2NvdW50LW1vYmlsZVwiIChjbGljayk9XCJjaGFuZ2VBY2NvdW50TWVudS50b2dnbGUoJGV2ZW50KVwiICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGUtbGFiZWxcIj5BbHRlcm5hciBjb250YTwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgfVwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx1bCBjbGFzcz1cInVzZXItbWVudVwiPlxyXG4gICAgICA8bGkgKGNsaWNrKT1cImdvVG9UZXJtc09mVXNlKCk7IG1lbnUuaGlkZSgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtcy1vZi11c2UgdXNlci1tZW51LWljb25cIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4+VGVybW9zIGRlIFVzbzwvc3Bhbj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIChjbGljayk9XCJnb1RvUGFzc3dvcmRDaGFuZ2UoKTsgbWVudS5oaWRlKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZpbnRlY2gtcGFzc3dvcmQgdXNlci1tZW51LWljb25cIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4+U2VuaGEgRmludGVjaDwvc3Bhbj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIChjbGljayk9XCJnb1RvVGFyaWZmKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRhcmlmZnMgdXNlci1tZW51LWljb25cIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4+VGFyaWZhczwvc3Bhbj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIChjbGljayk9XCJsb2dvdXQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPlNhaXI8L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1vdmVybGF5UGFuZWw+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgI2NoYW5nZUFjY291bnRNZW51IChvbkhpZGUpPVwib3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSB0cnVlXCI+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nRm9yPVwibGV0IGFjY291bnQgb2Ygb3RoZXJBY2NvdW50c1wiXHJcbiAgICAgIGNsYXNzPVwiYWNjb3VudC1pbmZvIGNoYW5nZS1hY2NvdW50LWluZm9cIlxyXG4gICAgICAoY2xpY2spPVwiY2hhbmdlQWNjb3VudChhY2NvdW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj5CYW5jbzogPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5iYW5rIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICA8c3Bhbj5DQzogPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgYWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IGFjY291bnQ/LmRvY3VtZW50Rm9ybWF0dGVkIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1vdmVybGF5UGFuZWw+XHJcbiJdfQ==
|