keevo-components 1.8.275 → 1.8.277
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/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +41 -47
- package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +5 -7
- package/esm2022/lib/components/kv-avatar/kv-crop-image/kv-crop-image.component.mjs +222 -0
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +9 -4
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +3 -3
- package/esm2022/public-api.mjs +7 -6
- package/fesm2022/keevo-components.mjs +394 -186
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/components/kv-avatar/kv-avatar.component.d.ts +10 -8
- package/lib/components/kv-avatar/kv-avatar.module.d.ts +2 -2
- package/lib/components/kv-avatar/kv-crop-image/kv-crop-image.component.d.ts +39 -0
- package/package.json +1 -1
- package/public-api.d.ts +6 -5
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, input, Input, Output, signal, ViewChild, } from '@angular/core';
|
|
2
2
|
import { BaseComponentCrud } from '../../api/base-components/base-component-crud';
|
|
3
|
+
import { KvCropImageComponent } from './kv-crop-image/kv-crop-image.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../../api/services/imagens.service";
|
|
5
6
|
import * as i2 from "../../api/services/notification.service";
|
|
6
7
|
import * as i3 from "primeng/dynamicdialog";
|
|
7
8
|
import * as i4 from "@angular/common";
|
|
8
|
-
// import { KvCropImageComponent } from './kv-crop-image/kv-crop-image.component';
|
|
9
9
|
export class KvAvatarComponent extends BaseComponentCrud {
|
|
10
|
-
constructor(imageService, notificationService, dialogService
|
|
10
|
+
constructor(imageService, notificationService, dialogService) {
|
|
11
11
|
super(dialogService, notificationService);
|
|
12
12
|
this.imageService = imageService;
|
|
13
13
|
this.notificationService = notificationService;
|
|
14
14
|
this.dialogService = dialogService;
|
|
15
|
-
this.dynamicDialogRef = dynamicDialogRef;
|
|
16
15
|
this.borderColor = '#002542';
|
|
17
16
|
this.btnsColor = '#002542';
|
|
18
17
|
this.width = 135;
|
|
@@ -23,19 +22,24 @@ export class KvAvatarComponent extends BaseComponentCrud {
|
|
|
23
22
|
this.btnAlterarFoto = false;
|
|
24
23
|
this.existeLogo = false;
|
|
25
24
|
this.selectedImage = '';
|
|
25
|
+
this.imageUrl = input(this.imageService.userDefaultImage());
|
|
26
|
+
this.imageSource = signal(this.imageService.userDefaultImage());
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.imageSource.set(this.imageUrl());
|
|
30
|
+
this.getImageSrc();
|
|
26
31
|
}
|
|
27
32
|
getImageSrc() {
|
|
28
|
-
if (this.imageUrl && (this.imageUrl.startsWith('data:image') || this.imageUrl.startsWith('http') || this.imageUrl.startsWith('https'))) {
|
|
33
|
+
if (this.imageUrl && (this.imageUrl().startsWith('data:image') || this.imageUrl().startsWith('http') || this.imageUrl().startsWith('https'))) {
|
|
29
34
|
this.existeLogo = true;
|
|
30
|
-
return this.imageUrl;
|
|
31
35
|
}
|
|
32
|
-
else if (this.imageUrl) {
|
|
36
|
+
else if (this.imageUrl.length > 0) {
|
|
33
37
|
this.existeLogo = true;
|
|
34
|
-
|
|
38
|
+
this.imageSource.set('data:image/jpg;base64,' + this.imageUrl);
|
|
35
39
|
}
|
|
36
40
|
else {
|
|
37
41
|
this.existeLogo = false;
|
|
38
|
-
|
|
42
|
+
this.imageSource.set(this.imageService.userDefaultImage());
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
openFile() {
|
|
@@ -51,8 +55,8 @@ export class KvAvatarComponent extends BaseComponentCrud {
|
|
|
51
55
|
reader.readAsDataURL(file);
|
|
52
56
|
reader.onload = () => {
|
|
53
57
|
this.selectedImage = reader.result;
|
|
54
|
-
this.
|
|
55
|
-
|
|
58
|
+
this.abrirModalRecortarFoto();
|
|
59
|
+
this.existeLogo = false;
|
|
56
60
|
};
|
|
57
61
|
}
|
|
58
62
|
}
|
|
@@ -69,55 +73,45 @@ export class KvAvatarComponent extends BaseComponentCrud {
|
|
|
69
73
|
});
|
|
70
74
|
}
|
|
71
75
|
removerFoto() {
|
|
72
|
-
this.
|
|
76
|
+
this.imageSource.set('');
|
|
73
77
|
this.removerFotoEvent.emit();
|
|
74
78
|
this.existeLogo = false;
|
|
75
|
-
this.imageUrlChange.emit(this.
|
|
79
|
+
this.imageUrlChange.emit(this.imageSource());
|
|
76
80
|
this.fileInput.nativeElement.value = '';
|
|
77
81
|
}
|
|
78
82
|
handleImageError(event) {
|
|
79
83
|
event.target.src = this.imageService.userDefaultImage();
|
|
80
84
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// const [firstKey, firstValue] = firstEntry;
|
|
100
|
-
// const instance = this.dialogService.getInstance(firstKey)
|
|
101
|
-
// instance.config.showHeader = false
|
|
102
|
-
// instance.config.contentStyle = {'border-radius': '12px'}
|
|
103
|
-
// }
|
|
85
|
+
abrirModalRecortarFoto() {
|
|
86
|
+
this.openDialog(KvCropImageComponent, () => {
|
|
87
|
+
this.imageUrl = this.receberDados();
|
|
88
|
+
this.imageSource.set(this.receberDados());
|
|
89
|
+
this.imageUrlChange.emit(this.imageSource());
|
|
90
|
+
this.existeLogo = true;
|
|
91
|
+
}, {
|
|
92
|
+
maximizable: false,
|
|
93
|
+
popup: true,
|
|
94
|
+
width: '60%',
|
|
95
|
+
header: 'Recortar',
|
|
96
|
+
id: { imagemSelecionada: this.selectedImage, imagemCortada: '' }
|
|
97
|
+
});
|
|
98
|
+
const [firstKey] = this.dialogService.dialogComponentRefMap.entries().next().value;
|
|
99
|
+
const instance = this.dialogService.getInstance(firstKey);
|
|
100
|
+
instance.config.showHeader = false;
|
|
101
|
+
instance.config.contentStyle = { 'border-radius': '12px' };
|
|
102
|
+
}
|
|
104
103
|
receberDados() {
|
|
105
|
-
const
|
|
106
|
-
const entries = arr.entries();
|
|
107
|
-
const firstEntry = entries.next().value;
|
|
108
|
-
const [firstKey, firstValue] = firstEntry;
|
|
104
|
+
const [firstKey] = this.dialogService.dialogComponentRefMap.entries().next().value;
|
|
109
105
|
const instance = this.dialogService.getInstance(firstKey);
|
|
110
106
|
return instance.config.data.id.imagemCortada;
|
|
111
107
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, deps: [{ token: i1.ImagensService }, { token: i2.NotificationService }, { token: i3.DialogService }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, deps: [{ token: i1.ImagensService }, { token: i2.NotificationService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvAvatarComponent, selector: "kv-avatar", inputs: { borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: false, isRequired: false, transformFunction: null }, btnsColor: { classPropertyName: "btnsColor", publicName: "btnsColor", isSignal: false, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: false, isRequired: false, transformFunction: null }, btnAlterarFoto: { classPropertyName: "btnAlterarFoto", publicName: "btnAlterarFoto", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { imageUrlChange: "imageUrlChange", removerFotoEvent: "removerFotoEvent", onModalOpen: "onModalOpen" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"image-container\">\r\n <!-- <img [src]=\"getImageSrc() || imageService.userDefaultImage()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\" (click)=\"openFile()\"> -->\r\n\r\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\r\n <div class=\"btn\">\r\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\r\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\r\n <i class=\"material-symbols-outlined\">photo_camera</i>\r\n </button>\r\n \r\n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\r\n class=\"botao-excluir-foto border-circle\r\n hover:shadow-3\r\n active:shadow-5\"\r\n (click)=\"questionRemoverFoto()\">\r\n <i class=\"material-symbols-outlined\">delete</i>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
114
110
|
}
|
|
115
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, decorators: [{
|
|
116
112
|
type: Component,
|
|
117
|
-
args: [{ selector: 'kv-avatar', template: "<div class=\"image-container\">\r\n <img [src]=\"getImageSrc() || imageService.userDefaultImage()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\" (click)=\"openFile()\">\r\n <div class=\"btn\">\r\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\r\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\r\n <i class=\"material-symbols-outlined\">photo_camera</i>\r\n </button>\r\n \r\n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"
|
|
118
|
-
}], ctorParameters: () => [{ type: i1.ImagensService }, { type: i2.NotificationService }, { type: i3.DialogService }
|
|
119
|
-
type: Input
|
|
120
|
-
}], borderColor: [{
|
|
113
|
+
args: [{ selector: 'kv-avatar', template: "<div class=\"image-container\">\r\n <!-- <img [src]=\"getImageSrc() || imageService.userDefaultImage()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\" (click)=\"openFile()\"> -->\r\n\r\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\r\n <div class=\"btn\">\r\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\r\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\r\n <i class=\"material-symbols-outlined\">photo_camera</i>\r\n </button>\r\n \r\n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\r\n class=\"botao-excluir-foto border-circle\r\n hover:shadow-3\r\n active:shadow-5\"\r\n (click)=\"questionRemoverFoto()\">\r\n <i class=\"material-symbols-outlined\">delete</i>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}\n"] }]
|
|
114
|
+
}], ctorParameters: () => [{ type: i1.ImagensService }, { type: i2.NotificationService }, { type: i3.DialogService }], propDecorators: { borderColor: [{
|
|
121
115
|
type: Input
|
|
122
116
|
}], btnsColor: [{
|
|
123
117
|
type: Input
|
|
@@ -137,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
137
131
|
type: ViewChild,
|
|
138
132
|
args: ['fileInput']
|
|
139
133
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7O0FBQ2xGLGtGQUFrRjtBQU9sRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBaUJ0RCxZQUFtQixZQUE0QixFQUMxQixtQkFBd0MsRUFDeEMsYUFBNEIsRUFDOUIsZ0JBQWtDO1FBQ2hELEtBQUssQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUozQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEI1QyxnQkFBVyxHQUFXLFNBQVMsQ0FBQztRQUNoQyxjQUFTLEdBQVcsU0FBUyxDQUFDO1FBQzlCLFVBQUssR0FBVyxHQUFHLENBQUM7UUFDcEIsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksWUFBWSxF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QyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJbWFnZW5zU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9pbWFnZW5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnRDcnVkIH0gZnJvbSAnLi4vLi4vYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1jcnVkJztcclxuLy8gaW1wb3J0IHsgS3ZDcm9wSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2t2LWNyb3AtaW1hZ2Uva3YtY3JvcC1pbWFnZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1hdmF0YXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWF2YXRhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkF2YXRhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnRDcnVkIHtcclxuICBASW5wdXQoKSBpbWFnZVVybCE6IHN0cmluZztcclxuICBASW5wdXQoKSBib3JkZXJDb2xvcjogc3RyaW5nID0gJyMwMDI1NDInO1xyXG4gIEBJbnB1dCgpIGJ0bnNDb2xvcjogc3RyaW5nID0gJyMwMDI1NDInO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSAxMzU7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXIgPSAxMzU7XHJcbiAgQE91dHB1dCgpIGltYWdlVXJsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZXJGb3RvRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uTW9kYWxPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIGJ0bkFsdGVyYXJGb3RvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgZXhpc3RlTG9nbyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSW1hZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGltYWdlU2VydmljZTogSW1hZ2Vuc1NlcnZpY2UsIFxyXG4gICAgICAgICAgICAgIG92ZXJyaWRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsIFxyXG4gICAgICAgICAgICAgIG92ZXJyaWRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGR5bmFtaWNEaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWZcclxuICAgKSB7IHN1cGVyKGRpYWxvZ1NlcnZpY2UsIG5vdGlmaWNhdGlvblNlcnZpY2UpIFxyXG4gICAgXHJcbiAgIH1cclxuXHJcbiAgZ2V0SW1hZ2VTcmMoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmltYWdlVXJsICYmICh0aGlzLmltYWdlVXJsLnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UnKSB8fCB0aGlzLmltYWdlVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCB0aGlzLmltYWdlVXJsLnN0YXJ0c1dpdGgoJ2h0dHBzJykpKSB7XHJcbiAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0aGlzLmltYWdlVXJsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmltYWdlVXJsKSB7XHJcbiAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IHRydWU7XHJcbiAgICAgIHJldHVybiAnZGF0YTppbWFnZS9qcGc7YmFzZTY0LCcgKyB0aGlzLmltYWdlVXJsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5leGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiB0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuRmlsZSgpIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm90b0VzY29saGlkYScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAoaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIGlucHV0RWxlbWVudC5jbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Rm90b1NlbGVjaW9uYWRhKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICB0aGlzLmV4aXN0ZUxvZ28gPSB0cnVlO1xyXG4gICAgICAgIC8vIHRoaXMuYWJyaXJNb2RhbFJlY29ydGFyRm90bygpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcXVlc3Rpb25SZW1vdmVyRm90bygpe1xyXG4gICAgY29uc3QgbXNnID0gJzxoMz5Wb2PDqiB0ZW0gY2VydGV6YSBxdWUgZGVzZWphIHJldGlyYXIgYSBmb3RvIGRlc3NlIHVzdcOhcmlvPzwvaDM+JztcclxuXHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucXVlc3Rpb24oe1xyXG4gICAgICB0eXBlOiAncXVlc3Rpb24nLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjY2VwdDogKGRhdGE6YW55KSA9PlxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVyRm90bygpXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlamVjdDogKGRhdGE6YW55KSA9PiB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlckZvdG8oKSB7XHJcbiAgICB0aGlzLmltYWdlVXJsID0gJyc7XHJcbiAgICB0aGlzLnJlbW92ZXJGb3RvRXZlbnQuZW1pdCgpO1xyXG4gICAgdGhpcy5leGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgICB0aGlzLmltYWdlVXJsQ2hhbmdlLmVtaXQodGhpcy5pbWFnZVVybCk7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbWFnZUVycm9yKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnRhcmdldC5zcmMgPSB0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBhYnJpck1vZGFsUmVjb3J0YXJGb3RvKCkge1xyXG4gIC8vICAgdGhpcy5vcGVuRGlhbG9nKFxyXG4gIC8vICAgICBLdkNyb3BJbWFnZUNvbXBvbmVudCxcclxuICAvLyAgICAgKCkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuaW1hZ2VVcmwgPSB0aGlzLnJlY2ViZXJEYWRvcygpO1xyXG4gIC8vICAgICAgIHRoaXMuaW1hZ2VVcmxDaGFuZ2UuZW1pdCh0aGlzLmltYWdlVXJsKTtcclxuICAvLyAgICAgfSxcclxuICAvLyAgICAge1xyXG4gIC8vICAgICAgIG1heGltaXphYmxlOiBmYWxzZSxcclxuICAvLyAgICAgICBwb3B1cDogdHJ1ZSxcclxuICAvLyAgICAgICB3aWR0aDogJzYwJScsXHJcbiAgLy8gICAgICAgaGVhZGVyOiAnUmVjb3J0YXInLFxyXG4gIC8vICAgICAgIGlkOntpbWFnZW1TZWxlY2lvbmFkYTogdGhpcy5zZWxlY3RlZEltYWdlLCBpbWFnZW1Db3J0YWRhOiAnJ31cclxuICAvLyAgICAgfVxyXG4gICAgICBcclxuICAvLyAgIClcclxuICAvLyAgIGNvbnN0IGFycjogTWFwPER5bmFtaWNEaWFsb2dSZWY8YW55PiwgQ29tcG9uZW50UmVmPGFueT4+ID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcFxyXG4gIC8vICAgY29uc3QgZW50cmllcyA9IGFyci5lbnRyaWVzKCk7XHJcbiAgLy8gICBjb25zdCBmaXJzdEVudHJ5ID0gZW50cmllcy5uZXh0KCkudmFsdWU7XHJcbiAgLy8gICBjb25zdCBbZmlyc3RLZXksIGZpcnN0VmFsdWVdID0gZmlyc3RFbnRyeTtcclxuICAvLyAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEluc3RhbmNlKGZpcnN0S2V5KVxyXG4gIC8vICAgaW5zdGFuY2UuY29uZmlnLnNob3dIZWFkZXIgPSBmYWxzZVxyXG4gIC8vICAgaW5zdGFuY2UuY29uZmlnLmNvbnRlbnRTdHlsZSA9IHsnYm9yZGVyLXJhZGl1cyc6ICcxMnB4J31cclxuICAvLyB9XHJcblxyXG4gIHJlY2ViZXJEYWRvcygpe1xyXG4gICAgY29uc3QgYXJyOiBNYXA8RHluYW1pY0RpYWxvZ1JlZjxhbnk+LCBDb21wb25lbnRSZWY8YW55Pj4gPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwXHJcbiAgICBjb25zdCBlbnRyaWVzID0gYXJyLmVudHJpZXMoKTtcclxuICAgIGNvbnN0IGZpcnN0RW50cnkgPSBlbnRyaWVzLm5leHQoKS52YWx1ZTtcclxuICAgIGNvbnN0IFtmaXJzdEtleSwgZmlyc3RWYWx1ZV0gPSBmaXJzdEVudHJ5O1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0SW5zdGFuY2UoZmlyc3RLZXkpXHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlLmNvbmZpZy5kYXRhLmlkLmltYWdlbUNvcnRhZGFcclxuICB9ICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgPGltZyBbc3JjXT1cImdldEltYWdlU3JjKCkgfHwgaW1hZ2VTZXJ2aWNlLnVzZXJEZWZhdWx0SW1hZ2UoKVwiIGFsdD1cIkZvdG9cIiBjbGFzcz1cImNvbnRhaW5lci1mb3RvXCIgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJib3JkZXJDb2xvclwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCIgKGVycm9yKT1cImhhbmRsZUltYWdlRXJyb3IoJGV2ZW50KVwiIChjbGljayk9XCJvcGVuRmlsZSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImJ0blwiPlxyXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgKm5nSWY9XCJidG5BbHRlcmFyRm90b1wiIGlkPVwiZm90b0VzY29saGlkYVwiIHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIHN0eWxlPVwiZGlzcGxheTpub25lXCIgKGNoYW5nZSk9XCJzZWxlY3RGb3RvU2VsZWNpb25hZGEoJGFueSgkZXZlbnQpKVwiPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImJ0bkFsdGVyYXJGb3RvICYmICFleGlzdGVMb2dvXCIgY2xhc3M9XCJib3Rhby1hbHRlcmFyLWZvdG8gYm9yZGVyLWNpcmNsZVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJ0bnNDb2xvclwiIChjbGljayk9XCJvcGVuRmlsZSgpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnBob3RvX2NhbWVyYTwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG8gJiYgZXhpc3RlTG9nb1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJ0bnNDb2xvclwiIGNsYXNzPVwiYm90YW8tZXhjbHVpci1mb3RvIGJvcmRlci1jaXJjbGVcIiAoY2xpY2spPVwicXVlc3Rpb25SZW1vdmVyRm90bygpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmRlbGV0ZTwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQWV0RCxZQUFtQixZQUE0QixFQUMxQixtQkFBd0MsRUFDeEMsYUFBNEI7UUFDNUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBSDNCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUMxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBaEJ4QyxnQkFBVyxHQUFXLFNBQVMsQ0FBQztRQUNoQyxjQUFTLEdBQVcsU0FBUyxDQUFDO1FBQzlCLFVBQUssR0FBVyxHQUFHLENBQUM7UUFDcEIsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFekMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQWMxQixhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBQzlELGdCQUFXLEdBQUcsTUFBTSxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0lBUnBCLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNwQixDQUFDO0lBS0QsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3SSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFlBQVksR0FBNEIsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQXFCLENBQUM7UUFDM0csSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzlCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQWdCLENBQUM7Z0JBRTdDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLEdBQUcsR0FBRyxvRUFBb0UsQ0FBQztRQUVqRixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSxVQUFVO1lBQ2hCLE9BQU8sRUFBRSxHQUFHO1lBQ1osTUFBTSxFQUFFLENBQUMsSUFBUSxFQUFFLEVBQUU7Z0JBRW5CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNwQixDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsSUFBUSxFQUFFLEVBQUU7WUFFckIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FDYixvQkFBb0IsRUFDcEIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBWSxDQUFDLENBQUE7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxFQUNEO1lBQ0UsV0FBVyxFQUFFLEtBQUs7WUFDbEIsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLEVBQUUsRUFBQyxFQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBQztTQUM5RCxDQUVGLENBQUE7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDbkYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ25GLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQTtJQUM5QyxDQUFDOzhHQXRIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1a0NDMUI5QixpeUNBbUJBOzsyRkRPYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsV0FBVztpSkFNWixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJbWFnZW5zU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9pbWFnZW5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnRDcnVkIH0gZnJvbSAnLi4vLi4vYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1jcnVkJztcclxuaW1wb3J0IHsgS3ZDcm9wSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2t2LWNyb3AtaW1hZ2Uva3YtY3JvcC1pbWFnZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1hdmF0YXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWF2YXRhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEt2QXZhdGFyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudENydWQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGJvcmRlckNvbG9yOiBzdHJpbmcgPSAnIzAwMjU0Mic7XHJcbiAgQElucHV0KCkgYnRuc0NvbG9yOiBzdHJpbmcgPSAnIzAwMjU0Mic7XHJcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciA9IDEzNTtcclxuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlciA9IDEzNTtcclxuICBAT3V0cHV0KCkgaW1hZ2VVcmxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgcmVtb3ZlckZvdG9FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25Nb2RhbE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgYnRuQWx0ZXJhckZvdG86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBleGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRJbWFnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbWFnZVNlcnZpY2U6IEltYWdlbnNTZXJ2aWNlLCBcclxuICAgICAgICAgICAgICBvdmVycmlkZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBcclxuICAgICAgICAgICAgICBvdmVycmlkZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICApIHsgc3VwZXIoZGlhbG9nU2VydmljZSwgbm90aWZpY2F0aW9uU2VydmljZSkgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KHRoaXMuaW1hZ2VVcmwoKSlcclxuICAgIHRoaXMuZ2V0SW1hZ2VTcmMoKVxyXG4gIH1cclxuXHJcbiAgIGltYWdlVXJsID0gaW5wdXQ8c3RyaW5nPih0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCkpXHJcbiAgIGltYWdlU291cmNlID0gc2lnbmFsPHN0cmluZz4odGhpcy5pbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpKVxyXG5cclxuICBnZXRJbWFnZVNyYygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmltYWdlVXJsICYmICh0aGlzLmltYWdlVXJsKCkuc3RhcnRzV2l0aCgnZGF0YTppbWFnZScpIHx8IHRoaXMuaW1hZ2VVcmwoKS5zdGFydHNXaXRoKCdodHRwJykgfHwgdGhpcy5pbWFnZVVybCgpLnN0YXJ0c1dpdGgoJ2h0dHBzJykpKSB7XHJcbiAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VVcmwubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmV4aXN0ZUxvZ28gPSB0cnVlO1xyXG4gICAgICB0aGlzLmltYWdlU291cmNlLnNldCgnZGF0YTppbWFnZS9qcGc7YmFzZTY0LCcgKyB0aGlzLmltYWdlVXJsKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5leGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KHRoaXMuaW1hZ2VTZXJ2aWNlLnVzZXJEZWZhdWx0SW1hZ2UoKSlcclxuICAgIH0gIFxyXG4gIH1cclxuXHJcbiAgb3BlbkZpbGUoKSB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvdG9Fc2NvbGhpZGEnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKGlucHV0RWxlbWVudCkge1xyXG4gICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEZvdG9TZWxlY2lvbmFkYShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEltYWdlID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5hYnJpck1vZGFsUmVjb3J0YXJGb3RvKCk7XHJcbiAgICAgICAgdGhpcy5leGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBxdWVzdGlvblJlbW92ZXJGb3RvKCl7XHJcbiAgICBjb25zdCBtc2cgPSAnPGgzPlZvY8OqIHRlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgcmV0aXJhciBhIGZvdG8gZGVzc2UgdXN1w6FyaW8/PC9oMz4nO1xyXG5cclxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5xdWVzdGlvbih7XHJcbiAgICAgIHR5cGU6ICdxdWVzdGlvbicsXHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgYWNjZXB0OiAoZGF0YTphbnkpID0+XHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLnJlbW92ZXJGb3RvKClcclxuICAgICAgfSxcclxuICAgICAgcmVqZWN0OiAoZGF0YTphbnkpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZW1vdmVyRm90bygpIHtcclxuICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KCcnKVxyXG4gICAgdGhpcy5yZW1vdmVyRm90b0V2ZW50LmVtaXQoKTtcclxuICAgIHRoaXMuZXhpc3RlTG9nbyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbWFnZVVybENoYW5nZS5lbWl0KHRoaXMuaW1hZ2VTb3VyY2UoKSk7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbWFnZUVycm9yKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnRhcmdldC5zcmMgPSB0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBhYnJpck1vZGFsUmVjb3J0YXJGb3RvKCkge1xyXG4gICAgdGhpcy5vcGVuRGlhbG9nKFxyXG4gICAgICBLdkNyb3BJbWFnZUNvbXBvbmVudCxcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW1hZ2VVcmwgPSB0aGlzLnJlY2ViZXJEYWRvcygpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KHRoaXMucmVjZWJlckRhZG9zKCkgYXMgc3RyaW5nKVxyXG4gICAgICAgIHRoaXMuaW1hZ2VVcmxDaGFuZ2UuZW1pdCh0aGlzLmltYWdlU291cmNlKCkpO1xyXG4gICAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgcG9wdXA6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICc2MCUnLFxyXG4gICAgICAgIGhlYWRlcjogJ1JlY29ydGFyJyxcclxuICAgICAgICBpZDp7aW1hZ2VtU2VsZWNpb25hZGE6IHRoaXMuc2VsZWN0ZWRJbWFnZSwgaW1hZ2VtQ29ydGFkYTogJyd9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICApXHJcbiAgICBjb25zdCBbZmlyc3RLZXldID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5lbnRyaWVzKCkubmV4dCgpLnZhbHVlO1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0SW5zdGFuY2UoZmlyc3RLZXkpO1xyXG4gICAgaW5zdGFuY2UuY29uZmlnLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAgIGluc3RhbmNlLmNvbmZpZy5jb250ZW50U3R5bGUgPSB7ICdib3JkZXItcmFkaXVzJzogJzEycHgnIH07XHJcbiAgfVxyXG5cclxuICByZWNlYmVyRGFkb3MoKXtcclxuICAgIGNvbnN0IFtmaXJzdEtleV0gPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmVudHJpZXMoKS5uZXh0KCkudmFsdWU7XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRJbnN0YW5jZShmaXJzdEtleSk7XHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlLmNvbmZpZy5kYXRhLmlkLmltYWdlbUNvcnRhZGFcclxuICB9ICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgPCEtLSA8aW1nIFtzcmNdPVwiZ2V0SW1hZ2VTcmMoKSB8fCBpbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpXCIgYWx0PVwiRm90b1wiIGNsYXNzPVwiY29udGFpbmVyLWZvdG9cIiBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cImJvcmRlckNvbG9yXCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIiAoZXJyb3IpPVwiaGFuZGxlSW1hZ2VFcnJvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9wZW5GaWxlKClcIj4gLS0+XHJcblxyXG4gIDxpbWcgW3NyY109XCJpbWFnZVNvdXJjZSgpXCIgYWx0PVwiRm90b1wiIGNsYXNzPVwiY29udGFpbmVyLWZvdG9cIiBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cImJvcmRlckNvbG9yXCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIiAoZXJyb3IpPVwiaGFuZGxlSW1hZ2VFcnJvcigkZXZlbnQpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImJ0blwiPlxyXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgKm5nSWY9XCJidG5BbHRlcmFyRm90b1wiIGlkPVwiZm90b0VzY29saGlkYVwiIHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIHN0eWxlPVwiZGlzcGxheTpub25lXCIgKGNoYW5nZSk9XCJzZWxlY3RGb3RvU2VsZWNpb25hZGEoJGFueSgkZXZlbnQpKVwiPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImJ0bkFsdGVyYXJGb3RvICYmICFleGlzdGVMb2dvXCIgY2xhc3M9XCJib3Rhby1hbHRlcmFyLWZvdG8gYm9yZGVyLWNpcmNsZVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJ0bnNDb2xvclwiIChjbGljayk9XCJvcGVuRmlsZSgpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnBob3RvX2NhbWVyYTwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG8gJiYgZXhpc3RlTG9nb1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJ0bnNDb2xvclwiXHJcbiAgICAgY2xhc3M9XCJib3Rhby1leGNsdWlyLWZvdG8gYm9yZGVyLWNpcmNsZVxyXG4gICAgICAgICAgICBob3ZlcjpzaGFkb3ctM1xyXG4gICAgICAgICAgICBhY3RpdmU6c2hhZG93LTVcIlxyXG4gICAgIChjbGljayk9XCJxdWVzdGlvblJlbW92ZXJGb3RvKClcIj5cclxuICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+ZGVsZXRlPC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -7,9 +7,8 @@ import { KvAvatarComponent } from "./kv-avatar.component";
|
|
|
7
7
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
8
|
import { KvButtonModule } from '../kv-button/kv-button.module';
|
|
9
9
|
import { KvLabelModule } from '../kv-label/kv-label.module';
|
|
10
|
-
import {
|
|
10
|
+
import { KvCropImageComponent } from './kv-crop-image/kv-crop-image.component';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
|
-
// import { KvCropImageComponent } from './kv-crop-image/kv-crop-image.component';
|
|
13
12
|
export class KvAvatarModule {
|
|
14
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
14
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarModule, declarations: [KvAvatarComponent], imports: [CommonModule,
|
|
@@ -20,7 +19,7 @@ export class KvAvatarModule {
|
|
|
20
19
|
ReactiveFormsModule,
|
|
21
20
|
KvButtonModule,
|
|
22
21
|
KvLabelModule,
|
|
23
|
-
|
|
22
|
+
KvCropImageComponent], exports: [KvAvatarComponent] }); }
|
|
24
23
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarModule, imports: [CommonModule,
|
|
25
24
|
ButtonModule,
|
|
26
25
|
FileUploadModule,
|
|
@@ -29,14 +28,13 @@ export class KvAvatarModule {
|
|
|
29
28
|
ReactiveFormsModule,
|
|
30
29
|
KvButtonModule,
|
|
31
30
|
KvLabelModule,
|
|
32
|
-
|
|
31
|
+
KvCropImageComponent] }); }
|
|
33
32
|
}
|
|
34
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarModule, decorators: [{
|
|
35
34
|
type: NgModule,
|
|
36
35
|
args: [{
|
|
37
36
|
declarations: [
|
|
38
37
|
KvAvatarComponent,
|
|
39
|
-
// KvCropImageComponent
|
|
40
38
|
],
|
|
41
39
|
imports: [
|
|
42
40
|
CommonModule,
|
|
@@ -47,11 +45,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
47
45
|
ReactiveFormsModule,
|
|
48
46
|
KvButtonModule,
|
|
49
47
|
KvLabelModule,
|
|
50
|
-
|
|
48
|
+
KvCropImageComponent
|
|
51
49
|
],
|
|
52
50
|
exports: [
|
|
53
51
|
KvAvatarComponent
|
|
54
52
|
]
|
|
55
53
|
}]
|
|
56
54
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBcUIvRSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBakJ2QixpQkFBaUIsYUFHakIsWUFBWTtZQUNaLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGFBQWE7WUFDYixvQkFBb0IsYUFHcEIsaUJBQWlCOytHQUdSLGNBQWMsWUFkdkIsWUFBWTtZQUNaLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGFBQWE7WUFDYixvQkFBb0I7OzJGQU1YLGNBQWM7a0JBbkIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isb0JBQW9CO3FCQUN2QjtvQkFDQyxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2xpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zbGlkZXInO1xyXG5cclxuaW1wb3J0IHsgS3ZBdmF0YXJDb21wb25lbnQgfSBmcm9tIFwiLi9rdi1hdmF0YXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2t2LWJ1dHRvbi9rdi1idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZMYWJlbE1vZHVsZSB9IGZyb20gJy4uL2t2LWxhYmVsL2t2LWxhYmVsLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2Q3JvcEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1jcm9wLWltYWdlL2t2LWNyb3AtaW1hZ2UuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBLdkF2YXRhckNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXHJcbiAgICBTbGlkZXJNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbk1vZHVsZSxcclxuICAgIEt2TGFiZWxNb2R1bGUsXHJcbiAgICBLdkNyb3BJbWFnZUNvbXBvbmVudFxyXG5dLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEt2QXZhdGFyQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZBdmF0YXJNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, HostListener, ViewChild } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { BaseComponentCrud, KvModalModule, PrimeNgModule } from 'projects/keevo-components/src/public-api';
|
|
5
|
+
import { KvLabelModule } from '../../kv-label/kv-label.module';
|
|
6
|
+
import { SliderModule } from 'primeng/slider';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "projects/keevo-components/src/public-api";
|
|
9
|
+
import * as i2 from "primeng/dynamicdialog";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "../../kv-modal/kv-modal.component";
|
|
12
|
+
import * as i5 from "../../kv-label/kv-label.component";
|
|
13
|
+
import * as i6 from "primeng/slider";
|
|
14
|
+
export class KvCropImageComponent extends BaseComponentCrud {
|
|
15
|
+
onWindowResize() {
|
|
16
|
+
this.widthTela = window.innerWidth;
|
|
17
|
+
this.updateCanvasSize();
|
|
18
|
+
}
|
|
19
|
+
constructor(imageService, notificationService, dialogService, dynamicDialogRef, dynamicDialogConfig) {
|
|
20
|
+
super(dialogService, notificationService);
|
|
21
|
+
this.imageService = imageService;
|
|
22
|
+
this.notificationService = notificationService;
|
|
23
|
+
this.dialogService = dialogService;
|
|
24
|
+
this.dynamicDialogRef = dynamicDialogRef;
|
|
25
|
+
this.dynamicDialogConfig = dynamicDialogConfig;
|
|
26
|
+
this.imageLoaded = false;
|
|
27
|
+
this.imageX = 0;
|
|
28
|
+
this.imageY = 0;
|
|
29
|
+
this.startX = 0;
|
|
30
|
+
this.startY = 0;
|
|
31
|
+
this.valueZoom = 50;
|
|
32
|
+
this.scaleFactor = 1;
|
|
33
|
+
this.selectedImage = '';
|
|
34
|
+
this.actionsModal = [
|
|
35
|
+
{
|
|
36
|
+
label: 'Cancelar',
|
|
37
|
+
severity: 'tertiary',
|
|
38
|
+
icon: 'cancel',
|
|
39
|
+
command: (e) => {
|
|
40
|
+
this.dynamicDialogRef.close();
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: 'Recortar',
|
|
45
|
+
severity: 'primary',
|
|
46
|
+
icon: 'crop',
|
|
47
|
+
command: (e) => {
|
|
48
|
+
this.cropImage();
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
this.widthTela = window.innerWidth;
|
|
53
|
+
this.selectedImage = this.dynamicDialogConfig.data.id.imagemSelecionada;
|
|
54
|
+
this.openCropModal();
|
|
55
|
+
}
|
|
56
|
+
openCropModal() {
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
const canvas = this.cropCanvas.nativeElement;
|
|
59
|
+
const ctx = canvas.getContext('2d');
|
|
60
|
+
const img = new Image();
|
|
61
|
+
img.src = this.selectedImage;
|
|
62
|
+
img.onload = () => {
|
|
63
|
+
this.imageLoaded = true;
|
|
64
|
+
this.imageX = (canvas.width - img.width * this.scaleFactor) / 2;
|
|
65
|
+
this.imageY = (canvas.height - img.height * this.scaleFactor) / 2;
|
|
66
|
+
canvas.width = this.retornaTamanhoCanvas();
|
|
67
|
+
canvas.height = 400;
|
|
68
|
+
this.redrawCanvas(ctx, img);
|
|
69
|
+
this.initializeImageMove(canvas, ctx, img);
|
|
70
|
+
this.initializeMouseWheel(canvas, ctx, img);
|
|
71
|
+
};
|
|
72
|
+
}, 0);
|
|
73
|
+
}
|
|
74
|
+
redrawCanvas(ctx, img) {
|
|
75
|
+
if (!ctx)
|
|
76
|
+
return;
|
|
77
|
+
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
|
78
|
+
ctx.filter = 'blur(5px) opacity(0.9)';
|
|
79
|
+
ctx.drawImage(img, this.imageX, this.imageY, img.width * this.scaleFactor, img.height * this.scaleFactor);
|
|
80
|
+
ctx.filter = 'none';
|
|
81
|
+
this.drawImageInCropArea(ctx, img);
|
|
82
|
+
this.drawCropArea(ctx);
|
|
83
|
+
}
|
|
84
|
+
initializeImageMove(canvas, ctx, img) {
|
|
85
|
+
let isDragging = false;
|
|
86
|
+
canvas.style.cursor = 'grab';
|
|
87
|
+
canvas.onmousedown = (e) => {
|
|
88
|
+
isDragging = true;
|
|
89
|
+
canvas.style.cursor = 'grabbing';
|
|
90
|
+
this.startX = e.offsetX - this.imageX;
|
|
91
|
+
this.startY = e.offsetY - this.imageY;
|
|
92
|
+
};
|
|
93
|
+
canvas.onmousemove = (e) => {
|
|
94
|
+
if (isDragging) {
|
|
95
|
+
this.imageX = e.offsetX - this.startX;
|
|
96
|
+
this.imageY = e.offsetY - this.startY;
|
|
97
|
+
this.redrawCanvas(ctx, img);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
canvas.onmouseup = () => {
|
|
101
|
+
isDragging = false;
|
|
102
|
+
canvas.style.cursor = 'grab';
|
|
103
|
+
};
|
|
104
|
+
canvas.onmouseout = () => {
|
|
105
|
+
isDragging = false;
|
|
106
|
+
canvas.style.cursor = 'grab';
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
initializeMouseWheel(canvas, ctx, img) {
|
|
110
|
+
canvas.onwheel = (e) => {
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
const delta = e.deltaY > 0 ? -0.1 : 0.1;
|
|
113
|
+
this.scaleFactor = Math.min(Math.max(this.scaleFactor + delta, 0.1), 5); // limita o fator de escala entre 0.1 e 5
|
|
114
|
+
this.redrawCanvas(ctx, img);
|
|
115
|
+
this.valueZoom = this.scaleFactor * 50;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
drawImageInCropArea(ctx, img) {
|
|
119
|
+
if (!ctx)
|
|
120
|
+
return;
|
|
121
|
+
// Calcula a posição da área de corte
|
|
122
|
+
const cropX = (ctx.canvas.width - 225) / 2;
|
|
123
|
+
const cropY = (ctx.canvas.height - 225) / 2;
|
|
124
|
+
// Desenha a imagem de não desfocada dentro da área de corte
|
|
125
|
+
ctx.save();
|
|
126
|
+
ctx.beginPath();
|
|
127
|
+
ctx.arc(cropX + 112.5, cropY + 112.5, 112.5, 0, Math.PI * 2, true);
|
|
128
|
+
ctx.clip();
|
|
129
|
+
ctx.drawImage(img, this.imageX, this.imageY, img.width * this.scaleFactor, img.height * this.scaleFactor);
|
|
130
|
+
ctx.restore();
|
|
131
|
+
}
|
|
132
|
+
drawCropArea(ctx) {
|
|
133
|
+
if (!ctx)
|
|
134
|
+
return;
|
|
135
|
+
ctx.beginPath();
|
|
136
|
+
const cropX = (ctx.canvas.width - 225) / 2;
|
|
137
|
+
const cropY = (ctx.canvas.height - 225) / 2;
|
|
138
|
+
ctx.arc(cropX + 112.5, cropY + 112.5, 112.5, 0, Math.PI * 2, true);
|
|
139
|
+
ctx.strokeStyle = 'transparent';
|
|
140
|
+
ctx.lineWidth = 2;
|
|
141
|
+
ctx.stroke();
|
|
142
|
+
}
|
|
143
|
+
updateCanvasSize() {
|
|
144
|
+
const canvas = this.cropCanvas.nativeElement;
|
|
145
|
+
const ctx = canvas.getContext('2d');
|
|
146
|
+
const img = new Image();
|
|
147
|
+
img.src = this.selectedImage;
|
|
148
|
+
img.onload = () => {
|
|
149
|
+
this.imageLoaded = true;
|
|
150
|
+
this.imageX = (canvas.width - img.width * this.scaleFactor) / 2;
|
|
151
|
+
this.imageY = (canvas.height - img.height * this.scaleFactor) / 2;
|
|
152
|
+
canvas.width = this.retornaTamanhoCanvas();
|
|
153
|
+
canvas.height = 400;
|
|
154
|
+
this.redrawCanvas(ctx, img);
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
onZoomChange(event) {
|
|
158
|
+
const canvas = this.cropCanvas.nativeElement;
|
|
159
|
+
const ctx = canvas.getContext('2d');
|
|
160
|
+
const img = new Image();
|
|
161
|
+
img.src = this.selectedImage;
|
|
162
|
+
img.onload = () => {
|
|
163
|
+
this.scaleFactor = event.value / 50;
|
|
164
|
+
this.redrawCanvas(ctx, img);
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
cropImage() {
|
|
168
|
+
const canvas = this.cropCanvas.nativeElement;
|
|
169
|
+
const ctx = canvas.getContext('2d');
|
|
170
|
+
if (ctx) {
|
|
171
|
+
const centerX = canvas.width / 2;
|
|
172
|
+
const centerY = canvas.height / 2;
|
|
173
|
+
const radius = 100;
|
|
174
|
+
const imageData = ctx.getImageData(centerX - radius, centerY - radius, radius * 2, radius * 2);
|
|
175
|
+
const newCanvas = document.createElement('canvas');
|
|
176
|
+
const newCtx = newCanvas.getContext('2d');
|
|
177
|
+
newCanvas.width = radius * 2;
|
|
178
|
+
newCanvas.height = radius * 2;
|
|
179
|
+
newCtx?.putImageData(imageData, 0, 0);
|
|
180
|
+
this.selectedImage = newCanvas.toDataURL();
|
|
181
|
+
this.enviarDados();
|
|
182
|
+
this.dynamicDialogRef.close(this.selectedImage);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
enviarDados() {
|
|
186
|
+
const arr = this.dialogService.dialogComponentRefMap;
|
|
187
|
+
const entries = arr.entries();
|
|
188
|
+
const firstEntry = entries.next().value;
|
|
189
|
+
const [firstKey, firstValue] = firstEntry;
|
|
190
|
+
const instance = this.dialogService.getInstance(firstKey);
|
|
191
|
+
instance.config.data.id.imagemCortada = this.selectedImage;
|
|
192
|
+
}
|
|
193
|
+
retornaTamanhoCanvas() {
|
|
194
|
+
if (this.widthTela < 500) {
|
|
195
|
+
return this.widthTela * 0.7;
|
|
196
|
+
}
|
|
197
|
+
return this.widthTela * 0.4;
|
|
198
|
+
}
|
|
199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCropImageComponent, deps: [{ token: i1.ImagensService }, { token: i1.NotificationService }, { token: i2.DialogService }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
200
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvCropImageComponent, isStandalone: true, selector: "kv-crop-image", host: { listeners: { "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "cropCanvas", first: true, predicate: ["cropCanvas"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<kv-modal [actions]=\"actionsModal\">\r\n <div class=\"crop-container\">\r\n <canvas #cropCanvas class=\"crop-canvas\"></canvas>\r\n <div class=\"crop-border\"></div>\r\n </div>\r\n \r\n <div class=\"w-full zoom-container\">\r\n <kv-label label=\"Zoom\" style=\"text-align: left;\"/>\r\n <p-slider [(ngModel)]=\"valueZoom\" (onChange)=\"onZoomChange($event)\"></p-slider>\r\n </div>\r\n</kv-modal>\r\n", styles: [".crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid black;border-radius:12px}.crop-border{position:absolute;width:225px;height:225px;border:2px solid black;border-radius:50%;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: KvModalModule }, { kind: "component", type: i4.KvModalComponent, selector: "kv-modal", inputs: ["actions", "actionsPosition", "subtitle", "subHeader"] }, { kind: "ngmodule", type: PrimeNgModule }, { kind: "ngmodule", type: KvLabelModule }, { kind: "component", type: i5.KvLabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i6.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }] }); }
|
|
201
|
+
}
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCropImageComponent, decorators: [{
|
|
203
|
+
type: Component,
|
|
204
|
+
args: [{ selector: 'kv-crop-image', standalone: true, imports: [
|
|
205
|
+
CommonModule,
|
|
206
|
+
FormsModule,
|
|
207
|
+
KvModalModule,
|
|
208
|
+
PrimeNgModule,
|
|
209
|
+
KvLabelModule,
|
|
210
|
+
SliderModule
|
|
211
|
+
], template: "<kv-modal [actions]=\"actionsModal\">\r\n <div class=\"crop-container\">\r\n <canvas #cropCanvas class=\"crop-canvas\"></canvas>\r\n <div class=\"crop-border\"></div>\r\n </div>\r\n \r\n <div class=\"w-full zoom-container\">\r\n <kv-label label=\"Zoom\" style=\"text-align: left;\"/>\r\n <p-slider [(ngModel)]=\"valueZoom\" (onChange)=\"onZoomChange($event)\"></p-slider>\r\n </div>\r\n</kv-modal>\r\n", styles: [".crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid black;border-radius:12px}.crop-border{position:absolute;width:225px;height:225px;border:2px solid black;border-radius:50%;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}\n"] }]
|
|
212
|
+
}], ctorParameters: () => [{ type: i1.ImagensService }, { type: i1.NotificationService }, { type: i2.DialogService }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }], propDecorators: { onWindowResize: [{
|
|
213
|
+
type: HostListener,
|
|
214
|
+
args: ['window:resize', ['$event']]
|
|
215
|
+
}], cropCanvas: [{
|
|
216
|
+
type: ViewChild,
|
|
217
|
+
args: ['cropCanvas']
|
|
218
|
+
}], fileInput: [{
|
|
219
|
+
type: ViewChild,
|
|
220
|
+
args: ['fileInput']
|
|
221
|
+
}] } });
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY3JvcC1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1hdmF0YXIva3YtY3JvcC1pbWFnZS9rdi1jcm9wLWltYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1jcm9wLWltYWdlL2t2LWNyb3AtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQTBDLFlBQVksRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQWMsaUJBQWlCLEVBQWtCLGFBQWEsRUFBdUIsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUosT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFnQjlDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFHekQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBbUIsWUFBNEIsRUFDekIsbUJBQXdDLEVBQ3hDLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxtQkFBd0M7UUFDMUQsS0FBSyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBTDFC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O0lBQzlCLENBQUM7OEdBeE5VLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVXQ3RCakMsb2JBV0EsbVdER0ksWUFBWSw4QkFDWixXQUFXLDhWQUNYLGFBQWEsdUtBQ2IsYUFBYSw4QkFDYixhQUFhLHdJQUNiLFlBQVk7OzJGQUdILG9CQUFvQjtrQkFkaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixZQUFZO3FCQUNiO2tOQUtELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBOEJoQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0MsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtLCBCYXNlQ29tcG9uZW50Q3J1ZCwgSW1hZ2Vuc1NlcnZpY2UsIEt2TW9kYWxNb2R1bGUsIE5vdGlmaWNhdGlvblNlcnZpY2UsIFByaW1lTmdNb2R1bGUgfSBmcm9tICdwcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgS3ZMYWJlbE1vZHVsZSB9IGZyb20gJy4uLy4uL2t2LWxhYmVsL2t2LWxhYmVsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNsaWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2xpZGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtY3JvcC1pbWFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWNyb3AtaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1jcm9wLWltYWdlLmNvbXBvbmVudC5zY3NzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLCBcclxuICAgIEt2TW9kYWxNb2R1bGUsXHJcbiAgICBQcmltZU5nTW9kdWxlLFxyXG4gICAgS3ZMYWJlbE1vZHVsZSxcclxuICAgIFNsaWRlck1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2Q3JvcEltYWdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudENydWQge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMud2lkdGhUZWxhID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB0aGlzLnVwZGF0ZUNhbnZhc1NpemUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbWFnZVNlcnZpY2U6IEltYWdlbnNTZXJ2aWNlLCBcclxuICAgICAgb3ZlcnJpZGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSwgXHJcbiAgICAgIG92ZXJyaWRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgIHJlYWRvbmx5IGR5bmFtaWNEaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICAgIHByaXZhdGUgIHJlYWRvbmx5IGR5bmFtaWNEaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgKSB7IHN1cGVyKGRpYWxvZ1NlcnZpY2UsIG5vdGlmaWNhdGlvblNlcnZpY2UpIFxyXG5cclxuICAgIHRoaXMud2lkdGhUZWxhID0gd2luZG93LmlubmVyV2lkdGg7IFxyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlID0gdGhpcy5keW5hbWljRGlhbG9nQ29uZmlnLmRhdGEuaWQuaW1hZ2VtU2VsZWNpb25hZGE7XHJcbiAgICB0aGlzLm9wZW5Dcm9wTW9kYWwoKTtcclxuICB9XHJcblxyXG4gIHdpZHRoVGVsYSE6IG51bWJlcjtcclxuICBoZWlnaHRUZWxhITogbnVtYmVyO1xyXG4gIGltYWdlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW1hZ2VYOiBudW1iZXIgPSAwO1xyXG4gIGltYWdlWTogbnVtYmVyID0gMDtcclxuICBzdGFydFg6IG51bWJlciA9IDA7XHJcbiAgc3RhcnRZOiBudW1iZXIgPSAwO1xyXG4gIHZhbHVlWm9vbTogbnVtYmVyID0gNTA7XHJcbiAgc2NhbGVGYWN0b3I6IG51bWJlciA9IDE7XHJcblxyXG4gIHNlbGVjdGVkSW1hZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdjcm9wQ2FudmFzJykgY3JvcENhbnZhcyE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGFjdGlvbnNNb2RhbDogQWN0aW9uSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ0NhbmNlbGFyJyxcclxuICAgICAgc2V2ZXJpdHk6ICd0ZXJ0aWFyeScsXHJcbiAgICAgIGljb246ICdjYW5jZWwnLFxyXG4gICAgICBjb21tYW5kOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGlhbG9nUmVmLmNsb3NlKClcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnUmVjb3J0YXInLFxyXG4gICAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgICBpY29uOiAnY3JvcCcsXHJcbiAgICAgIGNvbW1hbmQ6IChlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNyb3BJbWFnZSgpXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICBcclxuICBdO1xyXG5cclxuICBvcGVuQ3JvcE1vZGFsKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICAgICAgaW1nLnNyYyA9IHRoaXMuc2VsZWN0ZWRJbWFnZTtcclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZVggPSAoY2FudmFzLndpZHRoIC0gaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvcikgLyAyO1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlWSA9IChjYW52YXMuaGVpZ2h0IC0gaW1nLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3IpIC8gMjtcclxuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5yZXRvcm5hVGFtYW5ob0NhbnZhcygpO1xyXG4gICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gNDAwO1xyXG4gICAgICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUltYWdlTW92ZShjYW52YXMsIGN0eCwgaW1nKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplTW91c2VXaGVlbChjYW52YXMsIGN0eCwgaW1nKTtcclxuICAgICAgICB9O1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICByZWRyYXdDYW52YXMoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsLCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGlmICghY3R4KSByZXR1cm47XHJcbiAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGN0eC5jYW52YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTtcclxuXHJcbiAgICBjdHguZmlsdGVyID0gJ2JsdXIoNXB4KSBvcGFjaXR5KDAuOSknO1xyXG4gICAgXHJcbiAgICBjdHguZHJhd0ltYWdlKGltZywgdGhpcy5pbWFnZVgsIHRoaXMuaW1hZ2VZLCBpbWcud2lkdGggKiB0aGlzLnNjYWxlRmFjdG9yLCBpbWcuaGVpZ2h0ICogdGhpcy5zY2FsZUZhY3Rvcik7XHJcbiAgICBjdHguZmlsdGVyID0gJ25vbmUnO1xyXG4gICAgXHJcbiAgICB0aGlzLmRyYXdJbWFnZUluQ3JvcEFyZWEoY3R4LCBpbWcpO1xyXG5cclxuICAgIHRoaXMuZHJhd0Nyb3BBcmVhKGN0eCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplSW1hZ2VNb3ZlKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBsZXQgaXNEcmFnZ2luZyA9IGZhbHNlO1xyXG5cclxuICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XHJcblxyXG4gICAgY2FudmFzLm9ubW91c2Vkb3duID0gKGUpID0+IHtcclxuICAgICAgICBpc0RyYWdnaW5nID0gdHJ1ZTtcclxuICAgICAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJzsgXHJcbiAgICAgICAgdGhpcy5zdGFydFggPSBlLm9mZnNldFggLSB0aGlzLmltYWdlWDtcclxuICAgICAgICB0aGlzLnN0YXJ0WSA9IGUub2Zmc2V0WSAtIHRoaXMuaW1hZ2VZO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYW52YXMub25tb3VzZW1vdmUgPSAoZSkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RyYWdnaW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VYID0gZS5vZmZzZXRYIC0gdGhpcy5zdGFydFg7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VZID0gZS5vZmZzZXRZIC0gdGhpcy5zdGFydFk7XHJcbiAgICAgICAgICAgIHRoaXMucmVkcmF3Q2FudmFzKGN0eCwgaW1nKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNhbnZhcy5vbm1vdXNldXAgPSAoKSA9PiB7XHJcbiAgICAgICAgaXNEcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhbnZhcy5vbm1vdXNlb3V0ID0gKCkgPT4ge1xyXG4gICAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVNb3VzZVdoZWVsKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBjYW52YXMub253aGVlbCA9IChlKSA9PiB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZS5kZWx0YVkgPiAwID8gLTAuMSA6IDAuMTtcclxuICAgICAgICB0aGlzLnNjYWxlRmFjdG9yID0gTWF0aC5taW4oTWF0aC5tYXgodGhpcy5zY2FsZUZhY3RvciArIGRlbHRhLCAwLjEpLCA1KTsgLy8gbGltaXRhIG8gZmF0b3IgZGUgZXNjYWxhIGVudHJlIDAuMSBlIDVcclxuICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICAgICAgdGhpcy52YWx1ZVpvb20gPSB0aGlzLnNjYWxlRmFjdG9yICogNTA7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZHJhd0ltYWdlSW5Dcm9wQXJlYShjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwsIGltZzogSFRNTEltYWdlRWxlbWVudCkge1xyXG4gICAgICBpZiAoIWN0eCkgcmV0dXJuO1xyXG5cclxuICAgICAgLy8gQ2FsY3VsYSBhIHBvc2nDp8OjbyBkYSDDoXJlYSBkZSBjb3J0ZVxyXG4gICAgICBjb25zdCBjcm9wWCA9IChjdHguY2FudmFzLndpZHRoIC0gMjI1KSAvIDI7XHJcbiAgICAgIGNvbnN0IGNyb3BZID0gKGN0eC5jYW52YXMuaGVpZ2h0IC0gMjI1KSAvIDI7XHJcblxyXG4gICAgICAvLyBEZXNlbmhhIGEgaW1hZ2VtIGRlIG7Do28gZGVzZm9jYWRhIGRlbnRybyBkYSDDoXJlYSBkZSBjb3J0ZVxyXG4gICAgICBjdHguc2F2ZSgpO1xyXG4gICAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICAgIGN0eC5hcmMoY3JvcFggKyAxMTIuNSwgY3JvcFkgKyAxMTIuNSwgMTEyLjUsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTtcclxuICAgICAgY3R4LmNsaXAoKTtcclxuICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIHRoaXMuaW1hZ2VYLCB0aGlzLmltYWdlWSwgaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvciwgaW1nLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3IpO1xyXG4gICAgICBjdHgucmVzdG9yZSgpO1xyXG4gIH1cclxuXHJcbiAgZHJhd0Nyb3BBcmVhKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCkge1xyXG4gICAgICBpZiAoIWN0eCkgcmV0dXJuO1xyXG4gICAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnN0IGNyb3BYID0gKGN0eC5jYW52YXMud2lkdGggLSAyMjUpIC8gMjtcclxuICAgICAgY29uc3QgY3JvcFkgPSAoY3R4LmNhbnZhcy5oZWlnaHQgLSAyMjUpIC8gMjtcclxuICAgICAgY3R4LmFyYyhjcm9wWCArIDExMi41LCBjcm9wWSArIDExMi41LCAxMTIuNSwgMCwgTWF0aC5QSSAqIDIsIHRydWUpO1xyXG4gICAgICBjdHguc3Ryb2tlU3R5bGUgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICBjdHgubGluZVdpZHRoID0gMjtcclxuICAgICAgY3R4LnN0cm9rZSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2FudmFzU2l6ZSgpIHtcclxuICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgaW1nLnNyYyA9IHRoaXMuc2VsZWN0ZWRJbWFnZTtcclxuICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZVggPSAoY2FudmFzLndpZHRoIC0gaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvcikgLyAyO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZVkgPSAoY2FudmFzLmhlaWdodCAtIGltZy5oZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yKSAvIDI7XHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLnJldG9ybmFUYW1hbmhvQ2FudmFzKCk7XHJcbiAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gNDAwO1xyXG4gICAgICAgICAgdGhpcy5yZWRyYXdDYW52YXMoY3R4LCBpbWcpO1xyXG4gICAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25ab29tQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuY3JvcENhbnZhcy5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLnNlbGVjdGVkSW1hZ2U7XHJcbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2NhbGVGYWN0b3IgPSBldmVudC52YWx1ZSAvIDUwO1xyXG4gICAgICAgIHRoaXMucmVkcmF3Q2FudmFzKGN0eCwgaW1nKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjcm9wSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNyb3BDYW52YXMubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgaWYgKGN0eCkge1xyXG4gICAgICBjb25zdCBjZW50ZXJYID0gY2FudmFzLndpZHRoIC8gMjtcclxuICAgICAgY29uc3QgY2VudGVyWSA9IGNhbnZhcy5oZWlnaHQgLyAyO1xyXG4gICAgICBjb25zdCByYWRpdXMgPSAxMDA7XHJcbiAgICAgIGNvbnN0IGltYWdlRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoY2VudGVyWCAtIHJhZGl1cywgY2VudGVyWSAtIHJhZGl1cywgcmFkaXVzICogMiwgcmFkaXVzICogMik7XHJcbiAgICAgIGNvbnN0IG5ld0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgICBjb25zdCBuZXdDdHggPSBuZXdDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgbmV3Q2FudmFzLndpZHRoID0gcmFkaXVzICogMjtcclxuICAgICAgbmV3Q2FudmFzLmhlaWdodCA9IHJhZGl1cyAqIDI7XHJcbiAgICAgIG5ld0N0eD8ucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbWFnZSA9IG5ld0NhbnZhcy50b0RhdGFVUkwoKTtcclxuICAgICAgdGhpcy5lbnZpYXJEYWRvcygpXHJcbiAgICAgIHRoaXMuZHluYW1pY0RpYWxvZ1JlZi5jbG9zZSh0aGlzLnNlbGVjdGVkSW1hZ2UpXHJcbiAgICB9XHJcbiAgfSAgICBcclxuXHJcbiAgZW52aWFyRGFkb3MoKXtcclxuICAgIGNvbnN0IGFycjogTWFwPER5bmFtaWNEaWFsb2dSZWY8YW55PiwgQ29tcG9uZW50UmVmPGFueT4+ID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcFxyXG4gICAgY29uc3QgZW50cmllcyA9IGFyci5lbnRyaWVzKCk7XHJcbiAgICBjb25zdCBmaXJzdEVudHJ5ID0gZW50cmllcy5uZXh0KCkudmFsdWU7XHJcbiAgICBjb25zdCBbZmlyc3RLZXksIGZpcnN0VmFsdWVdID0gZmlyc3RFbnRyeTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEluc3RhbmNlKGZpcnN0S2V5KVxyXG5cclxuICAgIGluc3RhbmNlLmNvbmZpZy5kYXRhLmlkLmltYWdlbUNvcnRhZGEgPSB0aGlzLnNlbGVjdGVkSW1hZ2VcclxuICB9IFxyXG5cclxuICByZXRvcm5hVGFtYW5ob0NhbnZhcygpOiBudW1iZXIge1xyXG4gICAgaWYodGhpcy53aWR0aFRlbGEgPCA1MDApIHtcclxuICAgIHJldHVybiAgdGhpcy53aWR0aFRlbGEgKiAwLjc7XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHRoaXMud2lkdGhUZWxhICogMC40O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGt2LW1vZGFsIFthY3Rpb25zXT1cImFjdGlvbnNNb2RhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNyb3AtY29udGFpbmVyXCI+XHJcbiAgICAgIDxjYW52YXMgI2Nyb3BDYW52YXMgY2xhc3M9XCJjcm9wLWNhbnZhc1wiPjwvY2FudmFzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY3JvcC1ib3JkZXJcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCB6b29tLWNvbnRhaW5lclwiPlxyXG4gICAgICA8a3YtbGFiZWwgbGFiZWw9XCJab29tXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiLz5cclxuICAgICAgPHAtc2xpZGVyIFsobmdNb2RlbCldPVwidmFsdWVab29tXCIgKG9uQ2hhbmdlKT1cIm9uWm9vbUNoYW5nZSgkZXZlbnQpXCI+PC9wLXNsaWRlcj5cclxuICAgIDwvZGl2PlxyXG48L2t2LW1vZGFsPlxyXG4iXX0=
|