@sam-senior/photo 1.2.9 → 2.0.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/esm2022/lib/photo.component.mjs +233 -0
- package/esm2022/lib/photo.model.mjs +2 -0
- package/esm2022/lib/photo.module.mjs +57 -0
- package/esm2022/public_api.mjs +7 -0
- package/esm2022/sam-senior-photo.mjs +5 -0
- package/fesm2022/sam-senior-photo.mjs +296 -0
- package/fesm2022/sam-senior-photo.mjs.map +1 -0
- package/{sam-senior-photo.d.ts → index.d.ts} +5 -4
- package/lib/photo.component.d.ts +62 -59
- package/lib/photo.model.d.ts +4 -4
- package/lib/photo.module.d.ts +17 -2
- package/package.json +26 -29
- package/public_api.d.ts +3 -3
- package/bundles/sam-senior-photo.umd.js +0 -435
- package/bundles/sam-senior-photo.umd.js.map +0 -1
- package/bundles/sam-senior-photo.umd.min.js +0 -2
- package/bundles/sam-senior-photo.umd.min.js.map +0 -1
- package/esm2015/lib/photo.component.js +0 -374
- package/esm2015/lib/photo.model.js +0 -15
- package/esm2015/lib/photo.module.js +0 -33
- package/esm2015/public_api.js +0 -11
- package/esm2015/sam-senior-photo.js +0 -9
- package/esm5/lib/photo.component.js +0 -441
- package/esm5/lib/photo.model.js +0 -15
- package/esm5/lib/photo.module.js +0 -37
- package/esm5/public_api.js +0 -11
- package/esm5/sam-senior-photo.js +0 -9
- package/fesm2015/sam-senior-photo.js +0 -338
- package/fesm2015/sam-senior-photo.js.map +0 -1
- package/fesm5/sam-senior-photo.js +0 -407
- package/fesm5/sam-senior-photo.js.map +0 -1
- package/sam-senior-photo.metadata.json +0 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Component, ViewChild, EventEmitter, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { Input } from '@angular/core';
|
|
3
|
+
import { Output } from '@angular/core';
|
|
4
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@seniorsistemas/angular-components/image-cropper";
|
|
7
|
+
import * as i2 from "@sam-senior/photo-capture";
|
|
8
|
+
import * as i3 from "primeng/api";
|
|
9
|
+
import * as i4 from "primeng/dialog";
|
|
10
|
+
import * as i5 from "@seniorsistemas/angular-components/thumbnail";
|
|
11
|
+
import * as i6 from "@seniorsistemas/angular-components/button";
|
|
12
|
+
import * as i7 from "@seniorsistemas/angular-components/tile";
|
|
13
|
+
export class PhotoComponent {
|
|
14
|
+
imageCropperService;
|
|
15
|
+
photoCaptureService;
|
|
16
|
+
imageInput;
|
|
17
|
+
key = 'key';
|
|
18
|
+
photo;
|
|
19
|
+
actionIconClass = 'fa fa-camera';
|
|
20
|
+
photoSize = 'medium';
|
|
21
|
+
maxPhotoSize = 1;
|
|
22
|
+
photoWidth = 670;
|
|
23
|
+
photoHeight = 400;
|
|
24
|
+
canPhotoUpload = true;
|
|
25
|
+
canPhotoCapture = true;
|
|
26
|
+
cropperTitle = `Recortar`;
|
|
27
|
+
cropperActionCancel = `Cancelar`;
|
|
28
|
+
cropperActionCrop = `Recortar`;
|
|
29
|
+
cameraDialogLabel = `Captura`;
|
|
30
|
+
cameraDialogCaptureLabel = `Capturar`;
|
|
31
|
+
selectPhotoTypeLabel = `Selecionar imagem`;
|
|
32
|
+
selectUploadTypeLabel = `Upload`;
|
|
33
|
+
selectUploadTypeDescription = `Selecione uma imagem do seu computador`;
|
|
34
|
+
selectCaptureTypeLabel = `Capturar`;
|
|
35
|
+
selectCaptureTypeLabelDescription = `Capture uma imagem do seu dispositivo`;
|
|
36
|
+
dialogCancelLabel = `Cancelar`;
|
|
37
|
+
photoCrop = new EventEmitter();
|
|
38
|
+
openCamera = new EventEmitter();
|
|
39
|
+
closeCamera = new EventEmitter();
|
|
40
|
+
cameraError = new EventEmitter();
|
|
41
|
+
invalidPhotoSize = new EventEmitter();
|
|
42
|
+
isLoading = new EventEmitter();
|
|
43
|
+
photoContent;
|
|
44
|
+
cameraDialog = false;
|
|
45
|
+
selectPhotoType = false;
|
|
46
|
+
onChange = (_) => { };
|
|
47
|
+
onTouched = () => { };
|
|
48
|
+
constructor(imageCropperService, photoCaptureService) {
|
|
49
|
+
this.imageCropperService = imageCropperService;
|
|
50
|
+
this.photoCaptureService = photoCaptureService;
|
|
51
|
+
}
|
|
52
|
+
changePhoto() {
|
|
53
|
+
if (this.canPhotoCapture && this.canPhotoUpload) {
|
|
54
|
+
this.selectPhotoType = true;
|
|
55
|
+
}
|
|
56
|
+
else if (this.canPhotoCapture) {
|
|
57
|
+
this.onOpenCamera();
|
|
58
|
+
}
|
|
59
|
+
else if (this.canPhotoUpload) {
|
|
60
|
+
this.onOpenUpload();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
registerOnChange(fn) {
|
|
64
|
+
this.onChange = fn;
|
|
65
|
+
}
|
|
66
|
+
registerOnTouched(fn) {
|
|
67
|
+
this.onTouched = fn;
|
|
68
|
+
}
|
|
69
|
+
writeValue(value) {
|
|
70
|
+
this.photo = value;
|
|
71
|
+
}
|
|
72
|
+
onOpenCamera() {
|
|
73
|
+
this.closeSelectPhotoType();
|
|
74
|
+
this.cameraDialog = true;
|
|
75
|
+
this.photoCaptureService.setKey(this.key);
|
|
76
|
+
this.photoCaptureService.start();
|
|
77
|
+
this.openCamera.emit();
|
|
78
|
+
}
|
|
79
|
+
closeSelectPhotoType() {
|
|
80
|
+
this.selectPhotoType = false;
|
|
81
|
+
}
|
|
82
|
+
onOpenUpload() {
|
|
83
|
+
this.closeSelectPhotoType();
|
|
84
|
+
this.imageInput.nativeElement.value = null;
|
|
85
|
+
this.imageInput.nativeElement.click();
|
|
86
|
+
}
|
|
87
|
+
photoSelected(event) {
|
|
88
|
+
const [file] = event.srcElement.files;
|
|
89
|
+
this.photoRender(file);
|
|
90
|
+
}
|
|
91
|
+
onCloseCamera() {
|
|
92
|
+
this.cameraDialog = false;
|
|
93
|
+
this.photoCaptureService.stop();
|
|
94
|
+
this.closeCamera.emit();
|
|
95
|
+
}
|
|
96
|
+
onPhotoCapture() {
|
|
97
|
+
this.isLoading.emit(true);
|
|
98
|
+
this.photoCaptureService.setKey(this.key);
|
|
99
|
+
this.photoCaptureService.takePhoto();
|
|
100
|
+
}
|
|
101
|
+
onPhotoTake(photo) {
|
|
102
|
+
if (this.photoCaptureService.getKey() === this.key) {
|
|
103
|
+
this.photoRender(photo.blob);
|
|
104
|
+
this.onCloseCamera();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
onCameraError(error) {
|
|
108
|
+
if (this.photoCaptureService.getKey() === this.key) {
|
|
109
|
+
this.onCloseCamera();
|
|
110
|
+
this.cameraError.emit(error);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
photoRender(file) {
|
|
114
|
+
if (file) {
|
|
115
|
+
const fileReader = new FileReader();
|
|
116
|
+
fileReader.onloadend =
|
|
117
|
+
photoRender => this.photoChopper(photoRender);
|
|
118
|
+
fileReader.readAsDataURL(file);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
photoChopper(photoRender) {
|
|
122
|
+
this.imageCropperService.show({
|
|
123
|
+
imageSource: photoRender.target.result,
|
|
124
|
+
croppedCanvas: imageCanvas => {
|
|
125
|
+
imageCanvas.toBlob(blob => {
|
|
126
|
+
this.setPhotoContent(imageCanvas.toDataURL(), blob);
|
|
127
|
+
this.onCreateBlob();
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
header: this.cropperTitle,
|
|
131
|
+
emptyStateActionLabel: this.cropperActionCancel,
|
|
132
|
+
allowSelectAnother: false,
|
|
133
|
+
allowRemove: false,
|
|
134
|
+
cropLabel: this.cropperActionCrop,
|
|
135
|
+
rounded: true,
|
|
136
|
+
aspectRatio: 3 / 4
|
|
137
|
+
});
|
|
138
|
+
this.isLoading.emit(false);
|
|
139
|
+
}
|
|
140
|
+
onCreateBlob() {
|
|
141
|
+
if (this.getMaxSizeInBites() > this.photoContent.blob.size) {
|
|
142
|
+
this.photoCrop.emit(this.photoContent);
|
|
143
|
+
this.photo = this.photoContent.image;
|
|
144
|
+
this.onChange(this.photo);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.invalidPhotoSize.emit();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
getMaxSizeInBites() {
|
|
151
|
+
return (this.maxPhotoSize * 1000) * 1000;
|
|
152
|
+
}
|
|
153
|
+
setPhotoContent(imageUri, imageBlob) {
|
|
154
|
+
this.photoContent = {
|
|
155
|
+
image: imageUri,
|
|
156
|
+
blob: imageBlob
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhotoComponent, deps: [{ token: i1.ImageCropperService }, { token: i2.PhotoCaptureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PhotoComponent, selector: "sam-photo", inputs: { key: "key", photo: "photo", actionIconClass: "actionIconClass", photoSize: "photoSize", maxPhotoSize: "maxPhotoSize", photoWidth: "photoWidth", photoHeight: "photoHeight", canPhotoUpload: "canPhotoUpload", canPhotoCapture: "canPhotoCapture", cropperTitle: "cropperTitle", cropperActionCancel: "cropperActionCancel", cropperActionCrop: "cropperActionCrop", cameraDialogLabel: "cameraDialogLabel", cameraDialogCaptureLabel: "cameraDialogCaptureLabel", selectPhotoTypeLabel: "selectPhotoTypeLabel", selectUploadTypeLabel: "selectUploadTypeLabel", selectUploadTypeDescription: "selectUploadTypeDescription", selectCaptureTypeLabel: "selectCaptureTypeLabel", selectCaptureTypeLabelDescription: "selectCaptureTypeLabelDescription", dialogCancelLabel: "dialogCancelLabel" }, outputs: { photoCrop: "photoCrop", openCamera: "openCamera", closeCamera: "closeCamera", cameraError: "cameraError", invalidPhotoSize: "invalidPhotoSize", isLoading: "isLoading" }, providers: [
|
|
161
|
+
{
|
|
162
|
+
provide: NG_VALUE_ACCESSOR,
|
|
163
|
+
useExisting: PhotoComponent,
|
|
164
|
+
multi: true
|
|
165
|
+
}
|
|
166
|
+
], viewQueries: [{ propertyName: "imageInput", first: true, predicate: ["imageInput"], descendants: true }], ngImport: i0, template: "<input #imageInput type=\"file\" class=\"photo__input-file--hidden\" (change)=\"photoSelected($event)\" accept=\"image/*\">\r\n<s-thumbnail [size]=\"photoSize\" iconClass=\"fa fa-user\" (click)=\"changePhoto()\"\r\n [hasAction]=\"canPhotoUpload || canPhotoCapture\" [imageSource]=\"photo\" [actionIconClass]=\"actionIconClass\">\r\n</s-thumbnail>\r\n\r\n<p-dialog styleClass=\"photo-capture-custom\" [(visible)]=\"cameraDialog\" [header]=\"cameraDialogLabel\"\r\n [style]=\"{width: '700px'}\" appendTo='body' [modal]=\"true\">\r\n <sam-photo-capture [width]=\"photoWidth\" [height]=\"photoHeight\" (photoTake)=\"onPhotoTake($event)\"\r\n (error)=\"onCameraError($event)\"></sam-photo-capture>\r\n <p-footer>\r\n <s-button id=\"takePhotoBtn\" priority=\"primary\" [label]=\"cameraDialogCaptureLabel\" (click)=\"onPhotoCapture()\">\r\n </s-button>\r\n <s-button id=\"cancelBtn\" priority=\"link\" [label]=\"dialogCancelLabel\" (click)=\"onCloseCamera()\"></s-button>\r\n </p-footer>\r\n</p-dialog>\r\n\r\n<p-dialog [(visible)]=\"selectPhotoType\" [header]=\"selectPhotoTypeLabel\" [style]=\"{width: '400px'}\" appendTo='body' [modal]=\"true\"\r\n [closable]=\"false\">\r\n <s-tile [label]=\"selectUploadTypeLabel\" [description]=\"selectUploadTypeDescription\" iconClass=\"fa fa-upload\"\r\n (click)=\"onOpenUpload()\"></s-tile>\r\n <br>\r\n <s-tile [label]=\"selectCaptureTypeLabel\" [description]=\"selectCaptureTypeLabelDescription\" iconClass=\"fa fa-camera\"\r\n (click)=\"onOpenCamera()\"></s-tile>\r\n <p-footer>\r\n <s-button id=\"cancelBtn\" priority=\"link\" [label]=\"dialogCancelLabel\" (click)=\"closeSelectPhotoType()\"></s-button>\r\n </p-footer>\r\n</p-dialog>\r\n", styles: [".photo__input-file--hidden{position:fixed;top:-100em}.select-photo-type-container{display:flex;flex-direction:row;align-items:center;justify-content:center}.select-photo-type-item{color:gray;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.select-photo-type-item:nth-child(1){border-right:solid 1px #cccccc}.select-photo-type-item i{font-size:80px;margin-left:40px;margin-right:40px}.select-photo-type-item span{margin-top:10px}\n"], dependencies: [{ kind: "component", type: i3.Footer, selector: "p-footer" }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i5.ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: i2.PhotoCaptureComponent, selector: "sam-photo-capture", inputs: ["width", "height"], outputs: ["error", "open", "photoTake"] }, { kind: "component", type: i6.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "component", type: i7.TileComponent, selector: "s-tile", inputs: ["id", "label", "description", "iconClass", "imageSource", "imageAlt", "disabled", "tabIndex", "thumbnail"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhotoComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'sam-photo', providers: [
|
|
171
|
+
{
|
|
172
|
+
provide: NG_VALUE_ACCESSOR,
|
|
173
|
+
useExisting: PhotoComponent,
|
|
174
|
+
multi: true
|
|
175
|
+
}
|
|
176
|
+
], encapsulation: ViewEncapsulation.None, template: "<input #imageInput type=\"file\" class=\"photo__input-file--hidden\" (change)=\"photoSelected($event)\" accept=\"image/*\">\r\n<s-thumbnail [size]=\"photoSize\" iconClass=\"fa fa-user\" (click)=\"changePhoto()\"\r\n [hasAction]=\"canPhotoUpload || canPhotoCapture\" [imageSource]=\"photo\" [actionIconClass]=\"actionIconClass\">\r\n</s-thumbnail>\r\n\r\n<p-dialog styleClass=\"photo-capture-custom\" [(visible)]=\"cameraDialog\" [header]=\"cameraDialogLabel\"\r\n [style]=\"{width: '700px'}\" appendTo='body' [modal]=\"true\">\r\n <sam-photo-capture [width]=\"photoWidth\" [height]=\"photoHeight\" (photoTake)=\"onPhotoTake($event)\"\r\n (error)=\"onCameraError($event)\"></sam-photo-capture>\r\n <p-footer>\r\n <s-button id=\"takePhotoBtn\" priority=\"primary\" [label]=\"cameraDialogCaptureLabel\" (click)=\"onPhotoCapture()\">\r\n </s-button>\r\n <s-button id=\"cancelBtn\" priority=\"link\" [label]=\"dialogCancelLabel\" (click)=\"onCloseCamera()\"></s-button>\r\n </p-footer>\r\n</p-dialog>\r\n\r\n<p-dialog [(visible)]=\"selectPhotoType\" [header]=\"selectPhotoTypeLabel\" [style]=\"{width: '400px'}\" appendTo='body' [modal]=\"true\"\r\n [closable]=\"false\">\r\n <s-tile [label]=\"selectUploadTypeLabel\" [description]=\"selectUploadTypeDescription\" iconClass=\"fa fa-upload\"\r\n (click)=\"onOpenUpload()\"></s-tile>\r\n <br>\r\n <s-tile [label]=\"selectCaptureTypeLabel\" [description]=\"selectCaptureTypeLabelDescription\" iconClass=\"fa fa-camera\"\r\n (click)=\"onOpenCamera()\"></s-tile>\r\n <p-footer>\r\n <s-button id=\"cancelBtn\" priority=\"link\" [label]=\"dialogCancelLabel\" (click)=\"closeSelectPhotoType()\"></s-button>\r\n </p-footer>\r\n</p-dialog>\r\n", styles: [".photo__input-file--hidden{position:fixed;top:-100em}.select-photo-type-container{display:flex;flex-direction:row;align-items:center;justify-content:center}.select-photo-type-item{color:gray;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.select-photo-type-item:nth-child(1){border-right:solid 1px #cccccc}.select-photo-type-item i{font-size:80px;margin-left:40px;margin-right:40px}.select-photo-type-item span{margin-top:10px}\n"] }]
|
|
177
|
+
}], ctorParameters: () => [{ type: i1.ImageCropperService }, { type: i2.PhotoCaptureService }], propDecorators: { imageInput: [{
|
|
178
|
+
type: ViewChild,
|
|
179
|
+
args: [`imageInput`]
|
|
180
|
+
}], key: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], photo: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], actionIconClass: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], photoSize: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], maxPhotoSize: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], photoWidth: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], photoHeight: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], canPhotoUpload: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], canPhotoCapture: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], cropperTitle: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], cropperActionCancel: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], cropperActionCrop: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], cameraDialogLabel: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], cameraDialogCaptureLabel: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], selectPhotoTypeLabel: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], selectUploadTypeLabel: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], selectUploadTypeDescription: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], selectCaptureTypeLabel: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], selectCaptureTypeLabelDescription: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], dialogCancelLabel: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}], photoCrop: [{
|
|
221
|
+
type: Output
|
|
222
|
+
}], openCamera: [{
|
|
223
|
+
type: Output
|
|
224
|
+
}], closeCamera: [{
|
|
225
|
+
type: Output
|
|
226
|
+
}], cameraError: [{
|
|
227
|
+
type: Output
|
|
228
|
+
}], invalidPhotoSize: [{
|
|
229
|
+
type: Output
|
|
230
|
+
}], isLoading: [{
|
|
231
|
+
type: Output
|
|
232
|
+
}] } });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob3RvL3NyYy9saWIvcGhvdG8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob3RvL3NyYy9saWIvcGhvdG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLGlCQUFpQixFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQW1CekUsTUFBTSxPQUFPLGNBQWM7SUF5Q2Y7SUFDQTtJQXpDZSxVQUFVLENBQWE7SUFFdkMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNaLEtBQUssQ0FBUztJQUNkLGVBQWUsR0FBRyxjQUFjLENBQUM7SUFDakMsU0FBUyxHQUFpQyxRQUFRLENBQUM7SUFDbkQsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDbEIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRXZCLFlBQVksR0FBRyxVQUFVLENBQUM7SUFDMUIsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUUvQixpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDOUIsd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0lBQ3RDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQzNDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztJQUNqQywyQkFB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QkFBekIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbWFnZS1jcm9wcGVyJztcclxuaW1wb3J0IHsgUGhvdG9DYXB0dXJlU2VydmljZSB9IGZyb20gJ0BzYW0tc2VuaW9yL3Bob3RvLWNhcHR1cmUnO1xyXG5cclxuaW1wb3J0IHsgUGhvdG9Nb2RlbCB9IGZyb20gJy4vcGhvdG8ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYW0tcGhvdG8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9waG90by5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGhvdG8uY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IFBob3RvQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGhvdG9Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQFZpZXdDaGlsZChgaW1hZ2VJbnB1dGApIGltYWdlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIGtleSA9ICdrZXknO1xyXG4gIEBJbnB1dCgpIHBob3RvOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbkNsYXNzID0gJ2ZhIGZhLWNhbWVyYSc7XHJcbiAgQElucHV0KCkgcGhvdG9TaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnID0gJ21lZGl1bSc7XHJcbiAgQElucHV0KCkgbWF4UGhvdG9TaXplID0gMTtcclxuICBASW5wdXQoKSBwaG90b1dpZHRoID0gNjcwO1xyXG4gIEBJbnB1dCgpIHBob3RvSGVpZ2h0ID0gNDAwO1xyXG4gIEBJbnB1dCgpIGNhblBob3RvVXBsb2FkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjYW5QaG90b0NhcHR1cmUgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBjcm9wcGVyVGl0bGUgPSBgUmVjb3J0YXJgO1xyXG4gIEBJbnB1dCgpIGNyb3BwZXJBY3Rpb25DYW5jZWwgPSBgQ2FuY2VsYXJgO1xyXG4gIEBJbnB1dCgpIGNyb3BwZXJBY3Rpb25Dcm9wID0gYFJlY29ydGFyYDtcclxuXHJcbiAgQElucHV0KCkgY2FtZXJhRGlhbG9nTGFiZWwgPSBgQ2FwdHVyYWA7XHJcbiAgQElucHV0KCkgY2FtZXJhRGlhbG9nQ2FwdHVyZUxhYmVsID0gYENhcHR1cmFyYDtcclxuICBASW5wdXQoKSBzZWxlY3RQaG90b1R5cGVMYWJlbCA9IGBTZWxlY2lvbmFyIGltYWdlbWA7XHJcbiAgQElucHV0KCkgc2VsZWN0VXBsb2FkVHlwZUxhYmVsID0gYFVwbG9hZGA7XHJcbiAgQElucHV0KCkgc2VsZWN0VXBsb2FkVHlwZURlc2NyaXB0aW9uID0gYFNlbGVjaW9uZSB1bWEgaW1hZ2VtIGRvIHNldSBjb21wdXRhZG9yYDtcclxuICBASW5wdXQoKSBzZWxlY3RDYXB0dXJlVHlwZUxhYmVsID0gYENhcHR1cmFyYDtcclxuICBASW5wdXQoKSBzZWxlY3RDYXB0dXJlVHlwZUxhYmVsRGVzY3JpcHRpb24gPSBgQ2FwdHVyZSB1bWEgaW1hZ2VtIGRvIHNldSBkaXNwb3NpdGl2b2A7XHJcbiAgQElucHV0KCkgZGlhbG9nQ2FuY2VsTGFiZWwgPSBgQ2FuY2VsYXJgO1xyXG5cclxuICBAT3V0cHV0KCkgcGhvdG9Dcm9wID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuQ2FtZXJhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNhbWVyYSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FtZXJhRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGludmFsaWRQaG90b1NpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlzTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHVibGljIHBob3RvQ29udGVudDogUGhvdG9Nb2RlbDtcclxuICBwdWJsaWMgY2FtZXJhRGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdFBob3RvVHlwZSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW1hZ2VDcm9wcGVyU2VydmljZTogSW1hZ2VDcm9wcGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcGhvdG9DYXB0dXJlU2VydmljZTogUGhvdG9DYXB0dXJlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VQaG90bygpIHtcclxuICAgIGlmICh0aGlzLmNhblBob3RvQ2FwdHVyZSAmJiB0aGlzLmNhblBob3RvVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0UGhvdG9UeXBlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYW5QaG90b0NhcHR1cmUpIHtcclxuICAgICAgdGhpcy5vbk9wZW5DYW1lcmEoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYW5QaG90b1VwbG9hZCkge1xyXG4gICAgICB0aGlzLm9uT3BlblVwbG9hZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMucGhvdG8gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5DYW1lcmEoKSB7XHJcbiAgICB0aGlzLmNsb3NlU2VsZWN0UGhvdG9UeXBlKCk7XHJcbiAgICB0aGlzLmNhbWVyYURpYWxvZyA9IHRydWU7XHJcbiAgICB0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2Uuc2V0S2V5KHRoaXMua2V5KTtcclxuICAgIHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS5zdGFydCgpO1xyXG4gICAgdGhpcy5vcGVuQ2FtZXJhLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVNlbGVjdFBob3RvVHlwZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0UGhvdG9UeXBlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PcGVuVXBsb2FkKCkge1xyXG4gICAgdGhpcy5jbG9zZVNlbGVjdFBob3RvVHlwZSgpO1xyXG4gICAgKHRoaXMuaW1hZ2VJbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gbnVsbDtcclxuICAgICh0aGlzLmltYWdlSW5wdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBob3RvU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgW2ZpbGVdID0gZXZlbnQuc3JjRWxlbWVudC5maWxlcztcclxuICAgIHRoaXMucGhvdG9SZW5kZXIoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbG9zZUNhbWVyYSgpIHtcclxuICAgIHRoaXMuY2FtZXJhRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2Uuc3RvcCgpO1xyXG4gICAgdGhpcy5jbG9zZUNhbWVyYS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QaG90b0NhcHR1cmUoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5waG90b0NhcHR1cmVTZXJ2aWNlLnNldEtleSh0aGlzLmtleSk7XHJcbiAgICB0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2UudGFrZVBob3RvKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QaG90b1Rha2UocGhvdG8pIHtcclxuICAgIGlmICh0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2UuZ2V0S2V5KCkgPT09IHRoaXMua2V5KSB7XHJcbiAgICAgIHRoaXMucGhvdG9SZW5kZXIocGhvdG8uYmxvYik7XHJcbiAgICAgIHRoaXMub25DbG9zZUNhbWVyYSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2FtZXJhRXJyb3IoZXJyb3IpIHtcclxuICAgIGlmICh0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2UuZ2V0S2V5KCkgPT09IHRoaXMua2V5KSB7XHJcbiAgICAgIHRoaXMub25DbG9zZUNhbWVyYSgpO1xyXG4gICAgICB0aGlzLmNhbWVyYUVycm9yLmVtaXQoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaG90b1JlbmRlcihmaWxlKSB7XHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgZmlsZVJlYWRlci5vbmxvYWRlbmQgPVxyXG4gICAgICAgIHBob3RvUmVuZGVyID0+IHRoaXMucGhvdG9DaG9wcGVyKHBob3RvUmVuZGVyKTtcclxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaG90b0Nob3BwZXIocGhvdG9SZW5kZXIpIHtcclxuICAgIHRoaXMuaW1hZ2VDcm9wcGVyU2VydmljZS5zaG93KHtcclxuICAgICAgaW1hZ2VTb3VyY2U6IHBob3RvUmVuZGVyLnRhcmdldC5yZXN1bHQsXHJcbiAgICAgIGNyb3BwZWRDYW52YXM6IGltYWdlQ2FudmFzID0+IHtcclxuICAgICAgICBpbWFnZUNhbnZhcy50b0Jsb2IoYmxvYiA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFBob3RvQ29udGVudChpbWFnZUNhbnZhcy50b0RhdGFVUkwoKSwgYmxvYik7XHJcbiAgICAgICAgICB0aGlzLm9uQ3JlYXRlQmxvYigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBoZWFkZXI6IHRoaXMuY3JvcHBlclRpdGxlLFxyXG4gICAgICBlbXB0eVN0YXRlQWN0aW9uTGFiZWw6IHRoaXMuY3JvcHBlckFjdGlvbkNhbmNlbCxcclxuICAgICAgYWxsb3dTZWxlY3RBbm90aGVyOiBmYWxzZSxcclxuICAgICAgYWxsb3dSZW1vdmU6IGZhbHNlLFxyXG4gICAgICBjcm9wTGFiZWw6IHRoaXMuY3JvcHBlckFjdGlvbkNyb3AsXHJcbiAgICAgIHJvdW5kZWQ6IHRydWUsXHJcbiAgICAgIGFzcGVjdFJhdGlvOiAzIC8gNFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DcmVhdGVCbG9iKCkge1xyXG4gICAgaWYgKHRoaXMuZ2V0TWF4U2l6ZUluQml0ZXMoKSA+IHRoaXMucGhvdG9Db250ZW50LmJsb2Iuc2l6ZSkge1xyXG4gICAgICB0aGlzLnBob3RvQ3JvcC5lbWl0KHRoaXMucGhvdG9Db250ZW50KTtcclxuICAgICAgdGhpcy5waG90byA9IHRoaXMucGhvdG9Db250ZW50LmltYWdlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGhvdG8pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnZhbGlkUGhvdG9TaXplLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWF4U2l6ZUluQml0ZXMoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMubWF4UGhvdG9TaXplICogMTAwMCkgKiAxMDAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRQaG90b0NvbnRlbnQoaW1hZ2VVcmksIGltYWdlQmxvYikge1xyXG4gICAgdGhpcy5waG90b0NvbnRlbnQgPSB7XHJcbiAgICAgIGltYWdlOiBpbWFnZVVyaSxcclxuICAgICAgYmxvYjogaW1hZ2VCbG9iXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlucHV0ICNpbWFnZUlucHV0IHR5cGU9XCJmaWxlXCIgY2xhc3M9XCJwaG90b19faW5wdXQtZmlsZS0taGlkZGVuXCIgKGNoYW5nZSk9XCJwaG90b1NlbGVjdGVkKCRldmVudClcIiBhY2NlcHQ9XCJpbWFnZS8qXCI+XHJcbjxzLXRodW1ibmFpbCBbc2l6ZV09XCJwaG90b1NpemVcIiBpY29uQ2xhc3M9XCJmYSBmYS11c2VyXCIgKGNsaWNrKT1cImNoYW5nZVBob3RvKClcIlxyXG4gIFtoYXNBY3Rpb25dPVwiY2FuUGhvdG9VcGxvYWQgfHwgY2FuUGhvdG9DYXB0dXJlXCIgW2ltYWdlU291cmNlXT1cInBob3RvXCIgW2FjdGlvbkljb25DbGFzc109XCJhY3Rpb25JY29uQ2xhc3NcIj5cclxuPC9zLXRodW1ibmFpbD5cclxuXHJcbjxwLWRpYWxvZyBzdHlsZUNsYXNzPVwicGhvdG8tY2FwdHVyZS1jdXN0b21cIiBbKHZpc2libGUpXT1cImNhbWVyYURpYWxvZ1wiIFtoZWFkZXJdPVwiY2FtZXJhRGlhbG9nTGFiZWxcIlxyXG4gIFtzdHlsZV09XCJ7d2lkdGg6ICc3MDBweCd9XCIgYXBwZW5kVG89J2JvZHknIFttb2RhbF09XCJ0cnVlXCI+XHJcbiAgPHNhbS1waG90by1jYXB0dXJlIFt3aWR0aF09XCJwaG90b1dpZHRoXCIgW2hlaWdodF09XCJwaG90b0hlaWdodFwiIChwaG90b1Rha2UpPVwib25QaG90b1Rha2UoJGV2ZW50KVwiXHJcbiAgICAoZXJyb3IpPVwib25DYW1lcmFFcnJvcigkZXZlbnQpXCI+PC9zYW0tcGhvdG8tY2FwdHVyZT5cclxuICA8cC1mb290ZXI+XHJcbiAgICA8cy1idXR0b24gaWQ9XCJ0YWtlUGhvdG9CdG5cIiBwcmlvcml0eT1cInByaW1hcnlcIiBbbGFiZWxdPVwiY2FtZXJhRGlhbG9nQ2FwdHVyZUxhYmVsXCIgKGNsaWNrKT1cIm9uUGhvdG9DYXB0dXJlKClcIj5cclxuICAgIDwvcy1idXR0b24+XHJcbiAgICA8cy1idXR0b24gaWQ9XCJjYW5jZWxCdG5cIiBwcmlvcml0eT1cImxpbmtcIiBbbGFiZWxdPVwiZGlhbG9nQ2FuY2VsTGFiZWxcIiAoY2xpY2spPVwib25DbG9zZUNhbWVyYSgpXCI+PC9zLWJ1dHRvbj5cclxuICA8L3AtZm9vdGVyPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuPHAtZGlhbG9nIFsodmlzaWJsZSldPVwic2VsZWN0UGhvdG9UeXBlXCIgW2hlYWRlcl09XCJzZWxlY3RQaG90b1R5cGVMYWJlbFwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0MDBweCd9XCIgYXBwZW5kVG89J2JvZHknIFttb2RhbF09XCJ0cnVlXCJcclxuICBbY2xvc2FibGVdPVwiZmFsc2VcIj5cclxuICA8cy10aWxlIFtsYWJlbF09XCJzZWxlY3RVcGxvYWRUeXBlTGFiZWxcIiBbZGVzY3JpcHRpb25dPVwic2VsZWN0VXBsb2FkVHlwZURlc2NyaXB0aW9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtdXBsb2FkXCJcclxuICAgIChjbGljayk9XCJvbk9wZW5VcGxvYWQoKVwiPjwvcy10aWxlPlxyXG4gIDxicj5cclxuICA8cy10aWxlIFtsYWJlbF09XCJzZWxlY3RDYXB0dXJlVHlwZUxhYmVsXCIgW2Rlc2NyaXB0aW9uXT1cInNlbGVjdENhcHR1cmVUeXBlTGFiZWxEZXNjcmlwdGlvblwiIGljb25DbGFzcz1cImZhIGZhLWNhbWVyYVwiXHJcbiAgICAoY2xpY2spPVwib25PcGVuQ2FtZXJhKClcIj48L3MtdGlsZT5cclxuICA8cC1mb290ZXI+XHJcbiAgICA8cy1idXR0b24gaWQ9XCJjYW5jZWxCdG5cIiBwcmlvcml0eT1cImxpbmtcIiBbbGFiZWxdPVwiZGlhbG9nQ2FuY2VsTGFiZWxcIiAoY2xpY2spPVwiY2xvc2VTZWxlY3RQaG90b1R5cGUoKVwiPjwvcy1idXR0b24+XHJcbiAgPC9wLWZvb3Rlcj5cclxuPC9wLWRpYWxvZz5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYW0tcGhvdG8vc3JjL2xpYi9waG90by5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQaG90b01vZGVsIHtcclxuICBpbWFnZTogc3RyaW5nO1xyXG4gIGJsb2I6IEJsb2I7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
3
|
+
import { PanelModule } from 'primeng/panel';
|
|
4
|
+
import { ImageCropperModule, ImageCropperService } from '@seniorsistemas/angular-components/image-cropper';
|
|
5
|
+
import { StepsModule } from '@seniorsistemas/angular-components/steps';
|
|
6
|
+
import { ObjectCardModule } from '@seniorsistemas/angular-components/object-card';
|
|
7
|
+
import { ButtonModule } from '@seniorsistemas/angular-components/button';
|
|
8
|
+
import { TileModule } from '@seniorsistemas/angular-components/tile';
|
|
9
|
+
import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
|
|
10
|
+
import { DialogModule } from 'primeng/dialog';
|
|
11
|
+
import { PhotoCaptureModule } from '@sam-senior/photo-capture';
|
|
12
|
+
import { PhotoComponent } from './photo.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class PhotoModule {
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhotoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PhotoModule, declarations: [PhotoComponent], imports: [PanelModule,
|
|
17
|
+
DialogModule,
|
|
18
|
+
StepsModule,
|
|
19
|
+
ObjectCardModule,
|
|
20
|
+
ImageCropperModule,
|
|
21
|
+
ConfirmDialogModule,
|
|
22
|
+
PhotoCaptureModule,
|
|
23
|
+
ButtonModule,
|
|
24
|
+
TileModule,
|
|
25
|
+
LoadingStateModule], exports: [PhotoComponent] });
|
|
26
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhotoModule, providers: [ImageCropperService], imports: [PanelModule,
|
|
27
|
+
DialogModule,
|
|
28
|
+
StepsModule,
|
|
29
|
+
ObjectCardModule,
|
|
30
|
+
ImageCropperModule,
|
|
31
|
+
ConfirmDialogModule,
|
|
32
|
+
PhotoCaptureModule,
|
|
33
|
+
ButtonModule,
|
|
34
|
+
TileModule,
|
|
35
|
+
LoadingStateModule] });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhotoModule, decorators: [{
|
|
38
|
+
type: NgModule,
|
|
39
|
+
args: [{
|
|
40
|
+
declarations: [PhotoComponent],
|
|
41
|
+
imports: [
|
|
42
|
+
PanelModule,
|
|
43
|
+
DialogModule,
|
|
44
|
+
StepsModule,
|
|
45
|
+
ObjectCardModule,
|
|
46
|
+
ImageCropperModule,
|
|
47
|
+
ConfirmDialogModule,
|
|
48
|
+
PhotoCaptureModule,
|
|
49
|
+
ButtonModule,
|
|
50
|
+
TileModule,
|
|
51
|
+
LoadingStateModule
|
|
52
|
+
],
|
|
53
|
+
providers: [ImageCropperService],
|
|
54
|
+
exports: [PhotoComponent]
|
|
55
|
+
}]
|
|
56
|
+
}] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob3RvL3NyYy9saWIvcGhvdG8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQW1CbkQsTUFBTSxPQUFPLFdBQVc7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQWhCUCxjQUFjLGFBRTNCLFdBQVc7WUFDWCxZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixZQUFZO1lBQ1osVUFBVTtZQUNWLGtCQUFrQixhQUdWLGNBQWM7eUdBRWIsV0FBVyxhQUhYLENBQUMsbUJBQW1CLENBQUMsWUFYOUIsV0FBVztZQUNYLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWixVQUFVO1lBQ1Ysa0JBQWtCOzs0RkFLVCxXQUFXO2tCQWpCdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixrQkFBa0I7cUJBQ25CO29CQUNELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYW5lbCc7XHJcbmltcG9ydCB7IEltYWdlQ3JvcHBlck1vZHVsZSwgSW1hZ2VDcm9wcGVyU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW1hZ2UtY3JvcHBlcic7XHJcbmltcG9ydCB7IFN0ZXBzTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zdGVwcyc7XHJcbmltcG9ydCB7IE9iamVjdENhcmRNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL29iamVjdC1jYXJkJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBUaWxlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90aWxlJztcclxuaW1wb3J0IHsgTG9hZGluZ1N0YXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBQaG90b0NhcHR1cmVNb2R1bGUgfSBmcm9tICdAc2FtLXNlbmlvci9waG90by1jYXB0dXJlJztcclxuXHJcbmltcG9ydCB7IFBob3RvQ29tcG9uZW50IH0gZnJvbSAnLi9waG90by5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtQaG90b0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUGFuZWxNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBTdGVwc01vZHVsZSxcclxuICAgIE9iamVjdENhcmRNb2R1bGUsXHJcbiAgICBJbWFnZUNyb3BwZXJNb2R1bGUsXHJcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxyXG4gICAgUGhvdG9DYXB0dXJlTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgVGlsZU1vZHVsZSxcclxuICAgIExvYWRpbmdTdGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbSW1hZ2VDcm9wcGVyU2VydmljZV0sXHJcbiAgZXhwb3J0czogW1Bob3RvQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGhvdG9Nb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of photo
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/photo.model';
|
|
5
|
+
export * from './lib/photo.component';
|
|
6
|
+
export * from './lib/photo.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NhbS1waG90by9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHBob3RvXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG90by5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob3RvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob3RvLm1vZHVsZSc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtLXNlbmlvci1waG90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NhbS1waG90by9zcmMvc2FtLXNlbmlvci1waG90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|