@sam-senior/photo 1.2.8 → 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.
@@ -1,441 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { Component, ViewChild, EventEmitter, ElementRef, ViewEncapsulation } from '@angular/core';
7
- import { Input } from '@angular/core';
8
- import { Output } from '@angular/core';
9
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
10
- import { ImageCropperService } from '@seniorsistemas/angular-components';
11
- import { PhotoCaptureService } from '@sam-senior/photo-capture';
12
- var PhotoComponent = /** @class */ (function () {
13
- function PhotoComponent(imageCropperService, photoCaptureService) {
14
- this.imageCropperService = imageCropperService;
15
- this.photoCaptureService = photoCaptureService;
16
- this.key = 'key';
17
- this.actionIconClass = 'fa fa-camera';
18
- this.photoSize = 'medium';
19
- this.maxPhotoSize = 1;
20
- this.photoWidth = 670;
21
- this.photoHeight = 400;
22
- this.canPhotoUpload = true;
23
- this.canPhotoCapture = true;
24
- this.cropperTitle = "Recortar";
25
- this.cropperActionCancel = "Cancelar";
26
- this.cropperActionCrop = "Recortar";
27
- this.cameraDialogLabel = "Captura";
28
- this.cameraDialogCaptureLabel = "Capturar";
29
- this.selectPhotoTypeLabel = "Selecionar imagem";
30
- this.selectUploadTypeLabel = "Upload";
31
- this.selectUploadTypeDescription = "Selecione uma imagem do seu computador";
32
- this.selectCaptureTypeLabel = "Capturar";
33
- this.selectCaptureTypeLabelDescription = "Capture uma imagem do seu dispositivo";
34
- this.dialogCancelLabel = "Cancelar";
35
- this.photoCrop = new EventEmitter();
36
- this.openCamera = new EventEmitter();
37
- this.closeCamera = new EventEmitter();
38
- this.cameraError = new EventEmitter();
39
- this.invalidPhotoSize = new EventEmitter();
40
- this.isLoading = new EventEmitter();
41
- this.cameraDialog = false;
42
- this.selectPhotoType = false;
43
- this.onChange = (/**
44
- * @param {?} _
45
- * @return {?}
46
- */
47
- function (_) { });
48
- this.onTouched = (/**
49
- * @return {?}
50
- */
51
- function () { });
52
- }
53
- /**
54
- * @return {?}
55
- */
56
- PhotoComponent.prototype.changePhoto = /**
57
- * @return {?}
58
- */
59
- function () {
60
- if (this.canPhotoCapture && this.canPhotoUpload) {
61
- this.selectPhotoType = true;
62
- }
63
- else if (this.canPhotoCapture) {
64
- this.onOpenCamera();
65
- }
66
- else if (this.canPhotoUpload) {
67
- this.onOpenUpload();
68
- }
69
- };
70
- /**
71
- * @param {?} fn
72
- * @return {?}
73
- */
74
- PhotoComponent.prototype.registerOnChange = /**
75
- * @param {?} fn
76
- * @return {?}
77
- */
78
- function (fn) {
79
- this.onChange = fn;
80
- };
81
- /**
82
- * @param {?} fn
83
- * @return {?}
84
- */
85
- PhotoComponent.prototype.registerOnTouched = /**
86
- * @param {?} fn
87
- * @return {?}
88
- */
89
- function (fn) {
90
- this.onTouched = fn;
91
- };
92
- /**
93
- * @param {?} value
94
- * @return {?}
95
- */
96
- PhotoComponent.prototype.writeValue = /**
97
- * @param {?} value
98
- * @return {?}
99
- */
100
- function (value) {
101
- this.photo = value;
102
- };
103
- /**
104
- * @return {?}
105
- */
106
- PhotoComponent.prototype.onOpenCamera = /**
107
- * @return {?}
108
- */
109
- function () {
110
- this.closeSelectPhotoType();
111
- this.cameraDialog = true;
112
- this.photoCaptureService.setKey(this.key);
113
- this.photoCaptureService.start();
114
- this.openCamera.emit();
115
- };
116
- /**
117
- * @return {?}
118
- */
119
- PhotoComponent.prototype.closeSelectPhotoType = /**
120
- * @return {?}
121
- */
122
- function () {
123
- this.selectPhotoType = false;
124
- };
125
- /**
126
- * @return {?}
127
- */
128
- PhotoComponent.prototype.onOpenUpload = /**
129
- * @return {?}
130
- */
131
- function () {
132
- this.closeSelectPhotoType();
133
- ((/** @type {?} */ (this.imageInput.nativeElement))).value = null;
134
- ((/** @type {?} */ (this.imageInput.nativeElement))).click();
135
- };
136
- /**
137
- * @param {?} event
138
- * @return {?}
139
- */
140
- PhotoComponent.prototype.photoSelected = /**
141
- * @param {?} event
142
- * @return {?}
143
- */
144
- function (event) {
145
- var _a = tslib_1.__read(event.srcElement.files, 1), file = _a[0];
146
- this.photoRender(file);
147
- };
148
- /**
149
- * @return {?}
150
- */
151
- PhotoComponent.prototype.onCloseCamera = /**
152
- * @return {?}
153
- */
154
- function () {
155
- this.cameraDialog = false;
156
- this.photoCaptureService.stop();
157
- this.closeCamera.emit();
158
- };
159
- /**
160
- * @return {?}
161
- */
162
- PhotoComponent.prototype.onPhotoCapture = /**
163
- * @return {?}
164
- */
165
- function () {
166
- this.isLoading.emit(true);
167
- this.photoCaptureService.setKey(this.key);
168
- this.photoCaptureService.takePhoto();
169
- };
170
- /**
171
- * @param {?} photo
172
- * @return {?}
173
- */
174
- PhotoComponent.prototype.onPhotoTake = /**
175
- * @param {?} photo
176
- * @return {?}
177
- */
178
- function (photo) {
179
- if (this.photoCaptureService.getKey() === this.key) {
180
- this.photoRender(photo.blob);
181
- this.onCloseCamera();
182
- }
183
- };
184
- /**
185
- * @param {?} error
186
- * @return {?}
187
- */
188
- PhotoComponent.prototype.onCameraError = /**
189
- * @param {?} error
190
- * @return {?}
191
- */
192
- function (error) {
193
- if (this.photoCaptureService.getKey() === this.key) {
194
- this.onCloseCamera();
195
- this.cameraError.emit(error);
196
- }
197
- };
198
- /**
199
- * @private
200
- * @param {?} file
201
- * @return {?}
202
- */
203
- PhotoComponent.prototype.photoRender = /**
204
- * @private
205
- * @param {?} file
206
- * @return {?}
207
- */
208
- function (file) {
209
- var _this = this;
210
- if (file) {
211
- /** @type {?} */
212
- var fileReader = new FileReader();
213
- fileReader.onloadend =
214
- (/**
215
- * @param {?} photoRender
216
- * @return {?}
217
- */
218
- function (photoRender) { return _this.photoChopper(photoRender); });
219
- fileReader.readAsDataURL(file);
220
- }
221
- };
222
- /**
223
- * @private
224
- * @param {?} photoRender
225
- * @return {?}
226
- */
227
- PhotoComponent.prototype.photoChopper = /**
228
- * @private
229
- * @param {?} photoRender
230
- * @return {?}
231
- */
232
- function (photoRender) {
233
- var _this = this;
234
- this.imageCropperService.show({
235
- imageSource: photoRender.target.result,
236
- croppedCanvas: (/**
237
- * @param {?} imageCanvas
238
- * @return {?}
239
- */
240
- function (imageCanvas) {
241
- imageCanvas.toBlob((/**
242
- * @param {?} blob
243
- * @return {?}
244
- */
245
- function (blob) {
246
- _this.setPhotoContent(imageCanvas.toDataURL(), blob);
247
- _this.onCreateBlob();
248
- }));
249
- }),
250
- header: this.cropperTitle,
251
- emptyStateActionLabel: this.cropperActionCancel,
252
- allowSelectAnother: false,
253
- allowRemove: false,
254
- cropLabel: this.cropperActionCrop,
255
- rounded: true,
256
- aspectRatio: 3 / 4
257
- });
258
- this.isLoading.emit(false);
259
- };
260
- /**
261
- * @private
262
- * @return {?}
263
- */
264
- PhotoComponent.prototype.onCreateBlob = /**
265
- * @private
266
- * @return {?}
267
- */
268
- function () {
269
- if (this.getMaxSizeInBites() > this.photoContent.blob.size) {
270
- this.photoCrop.emit(this.photoContent);
271
- this.photo = this.photoContent.image;
272
- this.onChange(this.photo);
273
- }
274
- else {
275
- this.invalidPhotoSize.emit();
276
- }
277
- };
278
- /**
279
- * @private
280
- * @return {?}
281
- */
282
- PhotoComponent.prototype.getMaxSizeInBites = /**
283
- * @private
284
- * @return {?}
285
- */
286
- function () {
287
- return (this.maxPhotoSize * 1000) * 1000;
288
- };
289
- /**
290
- * @private
291
- * @param {?} imageUri
292
- * @param {?} imageBlob
293
- * @return {?}
294
- */
295
- PhotoComponent.prototype.setPhotoContent = /**
296
- * @private
297
- * @param {?} imageUri
298
- * @param {?} imageBlob
299
- * @return {?}
300
- */
301
- function (imageUri, imageBlob) {
302
- this.photoContent = {
303
- image: imageUri,
304
- blob: imageBlob
305
- };
306
- };
307
- PhotoComponent.decorators = [
308
- { type: Component, args: [{
309
- selector: 'sam-photo',
310
- 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 [width]=\"photoWidth + 30\" 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\" [width]=\"400\" 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>",
311
- providers: [
312
- {
313
- provide: NG_VALUE_ACCESSOR,
314
- useExisting: PhotoComponent,
315
- multi: true
316
- }
317
- ],
318
- encapsulation: ViewEncapsulation.None,
319
- 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:1px solid #ccc}.select-photo-type-item i{font-size:80px;margin-left:40px;margin-right:40px}.select-photo-type-item span{margin-top:10px}"]
320
- }] }
321
- ];
322
- /** @nocollapse */
323
- PhotoComponent.ctorParameters = function () { return [
324
- { type: ImageCropperService },
325
- { type: PhotoCaptureService }
326
- ]; };
327
- PhotoComponent.propDecorators = {
328
- imageInput: [{ type: ViewChild, args: ["imageInput",] }],
329
- key: [{ type: Input }],
330
- photo: [{ type: Input }],
331
- actionIconClass: [{ type: Input }],
332
- photoSize: [{ type: Input }],
333
- maxPhotoSize: [{ type: Input }],
334
- photoWidth: [{ type: Input }],
335
- photoHeight: [{ type: Input }],
336
- canPhotoUpload: [{ type: Input }],
337
- canPhotoCapture: [{ type: Input }],
338
- cropperTitle: [{ type: Input }],
339
- cropperActionCancel: [{ type: Input }],
340
- cropperActionCrop: [{ type: Input }],
341
- cameraDialogLabel: [{ type: Input }],
342
- cameraDialogCaptureLabel: [{ type: Input }],
343
- selectPhotoTypeLabel: [{ type: Input }],
344
- selectUploadTypeLabel: [{ type: Input }],
345
- selectUploadTypeDescription: [{ type: Input }],
346
- selectCaptureTypeLabel: [{ type: Input }],
347
- selectCaptureTypeLabelDescription: [{ type: Input }],
348
- dialogCancelLabel: [{ type: Input }],
349
- photoCrop: [{ type: Output }],
350
- openCamera: [{ type: Output }],
351
- closeCamera: [{ type: Output }],
352
- cameraError: [{ type: Output }],
353
- invalidPhotoSize: [{ type: Output }],
354
- isLoading: [{ type: Output }]
355
- };
356
- return PhotoComponent;
357
- }());
358
- export { PhotoComponent };
359
- if (false) {
360
- /** @type {?} */
361
- PhotoComponent.prototype.imageInput;
362
- /** @type {?} */
363
- PhotoComponent.prototype.key;
364
- /** @type {?} */
365
- PhotoComponent.prototype.photo;
366
- /** @type {?} */
367
- PhotoComponent.prototype.actionIconClass;
368
- /** @type {?} */
369
- PhotoComponent.prototype.photoSize;
370
- /** @type {?} */
371
- PhotoComponent.prototype.maxPhotoSize;
372
- /** @type {?} */
373
- PhotoComponent.prototype.photoWidth;
374
- /** @type {?} */
375
- PhotoComponent.prototype.photoHeight;
376
- /** @type {?} */
377
- PhotoComponent.prototype.canPhotoUpload;
378
- /** @type {?} */
379
- PhotoComponent.prototype.canPhotoCapture;
380
- /** @type {?} */
381
- PhotoComponent.prototype.cropperTitle;
382
- /** @type {?} */
383
- PhotoComponent.prototype.cropperActionCancel;
384
- /** @type {?} */
385
- PhotoComponent.prototype.cropperActionCrop;
386
- /** @type {?} */
387
- PhotoComponent.prototype.cameraDialogLabel;
388
- /** @type {?} */
389
- PhotoComponent.prototype.cameraDialogCaptureLabel;
390
- /** @type {?} */
391
- PhotoComponent.prototype.selectPhotoTypeLabel;
392
- /** @type {?} */
393
- PhotoComponent.prototype.selectUploadTypeLabel;
394
- /** @type {?} */
395
- PhotoComponent.prototype.selectUploadTypeDescription;
396
- /** @type {?} */
397
- PhotoComponent.prototype.selectCaptureTypeLabel;
398
- /** @type {?} */
399
- PhotoComponent.prototype.selectCaptureTypeLabelDescription;
400
- /** @type {?} */
401
- PhotoComponent.prototype.dialogCancelLabel;
402
- /** @type {?} */
403
- PhotoComponent.prototype.photoCrop;
404
- /** @type {?} */
405
- PhotoComponent.prototype.openCamera;
406
- /** @type {?} */
407
- PhotoComponent.prototype.closeCamera;
408
- /** @type {?} */
409
- PhotoComponent.prototype.cameraError;
410
- /** @type {?} */
411
- PhotoComponent.prototype.invalidPhotoSize;
412
- /** @type {?} */
413
- PhotoComponent.prototype.isLoading;
414
- /** @type {?} */
415
- PhotoComponent.prototype.photoContent;
416
- /** @type {?} */
417
- PhotoComponent.prototype.cameraDialog;
418
- /** @type {?} */
419
- PhotoComponent.prototype.selectPhotoType;
420
- /**
421
- * @type {?}
422
- * @private
423
- */
424
- PhotoComponent.prototype.onChange;
425
- /**
426
- * @type {?}
427
- * @private
428
- */
429
- PhotoComponent.prototype.onTouched;
430
- /**
431
- * @type {?}
432
- * @private
433
- */
434
- PhotoComponent.prototype.imageCropperService;
435
- /**
436
- * @type {?}
437
- * @private
438
- */
439
- PhotoComponent.prototype.photoCaptureService;
440
- }
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNhbS1zZW5pb3IvcGhvdG8vIiwic291cmNlcyI6WyJsaWIvcGhvdG8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSWhFO0lBcURFLHdCQUNVLG1CQUF3QyxFQUN4QyxtQkFBd0M7UUFEeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdkN6QyxRQUFHLEdBQUcsS0FBSyxDQUFDO1FBRVosb0JBQWUsR0FBRyxjQUFjLENBQUM7UUFDakMsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLFVBQVUsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxVQUFVLENBQUM7UUFFL0Isc0JBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQzlCLDZCQUF3QixHQUFHLFVBQVUsQ0FBQztR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Q3ZCLHlDQUEwQzs7SUFDMUMsbUNBQThCOztJQUM5QixzQ0FBMEI7O0lBQzFCLG9DQUEwQjs7SUFDMUIscUNBQTJCOztJQUMzQix3Q0FBK0I7O0lBQy9CLHlDQUFnQzs7SUFFaEMsc0NBQW1DOztJQUNuQyw2Q0FBMEM7O0lBQzFDLDJDQUF3Qzs7SUFFeEMsMkNBQXVDOztJQUN2QyxrREFBK0M7O0lBQy9DLDhDQUFvRDs7SUFDcEQsK0NBQTBDOztJQUMxQyxxREFBZ0Y7O0lBQ2hGLGdEQUE2Qzs7SUFDN0MsMkRBQXFGOztJQUNyRiwyQ0FBd0M7O0lBRXhDLG1DQUF5Qzs7SUFDekMsb0NBQTBDOztJQUMxQyxxQ0FBMkM7O0lBQzNDLHFDQUEyQzs7SUFDM0MsMENBQWdEOztJQUNoRCxtQ0FBeUM7O0lBRXpDLHNDQUFnQzs7SUFDaEMsc0NBQTRCOztJQUM1Qix5Q0FBK0I7Ozs7O0lBRS9CLGtDQUFtQzs7Ozs7SUFDbkMsbUNBQThCOzs7OztJQUc1Qiw2Q0FBZ0Q7Ozs7O0lBQ2hELDZDQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW1hZ2VDcm9wcGVyU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBQaG90b0NhcHR1cmVTZXJ2aWNlIH0gZnJvbSAnQHNhbS1zZW5pb3IvcGhvdG8tY2FwdHVyZSc7XHJcblxyXG5pbXBvcnQgeyBQaG90b01vZGVsIH0gZnJvbSAnLi9waG90by5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhbS1waG90bycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob3RvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9waG90by5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogUGhvdG9Db21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG90b0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBAVmlld0NoaWxkKGBpbWFnZUlucHV0YCkgaW1hZ2VJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCkga2V5ID0gJ2tleSc7XHJcbiAgQElucHV0KCkgcGhvdG86IHN0cmluZztcclxuICBASW5wdXQoKSBhY3Rpb25JY29uQ2xhc3MgPSAnZmEgZmEtY2FtZXJhJztcclxuICBASW5wdXQoKSBwaG90b1NpemUgPSAnbWVkaXVtJztcclxuICBASW5wdXQoKSBtYXhQaG90b1NpemUgPSAxO1xyXG4gIEBJbnB1dCgpIHBob3RvV2lkdGggPSA2NzA7XHJcbiAgQElucHV0KCkgcGhvdG9IZWlnaHQgPSA0MDA7XHJcbiAgQElucHV0KCkgY2FuUGhvdG9VcGxvYWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhblBob3RvQ2FwdHVyZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGNyb3BwZXJUaXRsZSA9IGBSZWNvcnRhcmA7XHJcbiAgQElucHV0KCkgY3JvcHBlckFjdGlvbkNhbmNlbCA9IGBDYW5jZWxhcmA7XHJcbiAgQElucHV0KCkgY3JvcHBlckFjdGlvbkNyb3AgPSBgUmVjb3J0YXJgO1xyXG5cclxuICBASW5wdXQoKSBjYW1lcmFEaWFsb2dMYWJlbCA9IGBDYXB0dXJhYDtcclxuICBASW5wdXQoKSBjYW1lcmFEaWFsb2dDYXB0dXJlTGFiZWwgPSBgQ2FwdHVyYXJgO1xyXG4gIEBJbnB1dCgpIHNlbGVjdFBob3RvVHlwZUxhYmVsID0gYFNlbGVjaW9uYXIgaW1hZ2VtYDtcclxuICBASW5wdXQoKSBzZWxlY3RVcGxvYWRUeXBlTGFiZWwgPSBgVXBsb2FkYDtcclxuICBASW5wdXQoKSBzZWxlY3RVcGxvYWRUeXBlRGVzY3JpcHRpb24gPSBgU2VsZWNpb25lIHVtYSBpbWFnZW0gZG8gc2V1IGNvbXB1dGFkb3JgO1xyXG4gIEBJbnB1dCgpIHNlbGVjdENhcHR1cmVUeXBlTGFiZWwgPSBgQ2FwdHVyYXJgO1xyXG4gIEBJbnB1dCgpIHNlbGVjdENhcHR1cmVUeXBlTGFiZWxEZXNjcmlwdGlvbiA9IGBDYXB0dXJlIHVtYSBpbWFnZW0gZG8gc2V1IGRpc3Bvc2l0aXZvYDtcclxuICBASW5wdXQoKSBkaWFsb2dDYW5jZWxMYWJlbCA9IGBDYW5jZWxhcmA7XHJcblxyXG4gIEBPdXRwdXQoKSBwaG90b0Nyb3AgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9wZW5DYW1lcmEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ2FtZXJhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW1lcmFFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaW52YWxpZFBob3RvU2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaXNMb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwdWJsaWMgcGhvdG9Db250ZW50OiBQaG90b01vZGVsO1xyXG4gIHB1YmxpYyBjYW1lcmFEaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgc2VsZWN0UGhvdG9UeXBlID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbWFnZUNyb3BwZXJTZXJ2aWNlOiBJbWFnZUNyb3BwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwaG90b0NhcHR1cmVTZXJ2aWNlOiBQaG90b0NhcHR1cmVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVBob3RvKCkge1xyXG4gICAgaWYgKHRoaXMuY2FuUGhvdG9DYXB0dXJlICYmIHRoaXMuY2FuUGhvdG9VcGxvYWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RQaG90b1R5cGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhblBob3RvQ2FwdHVyZSkge1xyXG4gICAgICB0aGlzLm9uT3BlbkNhbWVyYSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhblBob3RvVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMub25PcGVuVXBsb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5waG90byA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uT3BlbkNhbWVyYSgpIHtcclxuICAgIHRoaXMuY2xvc2VTZWxlY3RQaG90b1R5cGUoKTtcclxuICAgIHRoaXMuY2FtZXJhRGlhbG9nID0gdHJ1ZTtcclxuICAgIHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS5zZXRLZXkodGhpcy5rZXkpO1xyXG4gICAgdGhpcy5waG90b0NhcHR1cmVTZXJ2aWNlLnN0YXJ0KCk7XHJcbiAgICB0aGlzLm9wZW5DYW1lcmEuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlU2VsZWN0UGhvdG9UeXBlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RQaG90b1R5cGUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5VcGxvYWQoKSB7XHJcbiAgICB0aGlzLmNsb3NlU2VsZWN0UGhvdG9UeXBlKCk7XHJcbiAgICAodGhpcy5pbWFnZUlucHV0Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBudWxsO1xyXG4gICAgKHRoaXMuaW1hZ2VJbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGhvdG9TZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBbZmlsZV0gPSBldmVudC5zcmNFbGVtZW50LmZpbGVzO1xyXG4gICAgdGhpcy5waG90b1JlbmRlcihmaWxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsb3NlQ2FtZXJhKCkge1xyXG4gICAgdGhpcy5jYW1lcmFEaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS5zdG9wKCk7XHJcbiAgICB0aGlzLmNsb3NlQ2FtZXJhLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBob3RvQ2FwdHVyZSgpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLnBob3RvQ2FwdHVyZVNlcnZpY2Uuc2V0S2V5KHRoaXMua2V5KTtcclxuICAgIHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS50YWtlUGhvdG8oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBob3RvVGFrZShwaG90bykge1xyXG4gICAgaWYgKHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS5nZXRLZXkoKSA9PT0gdGhpcy5rZXkpIHtcclxuICAgICAgdGhpcy5waG90b1JlbmRlcihwaG90by5ibG9iKTtcclxuICAgICAgdGhpcy5vbkNsb3NlQ2FtZXJhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DYW1lcmFFcnJvcihlcnJvcikge1xyXG4gICAgaWYgKHRoaXMucGhvdG9DYXB0dXJlU2VydmljZS5nZXRLZXkoKSA9PT0gdGhpcy5rZXkpIHtcclxuICAgICAgdGhpcy5vbkNsb3NlQ2FtZXJhKCk7XHJcbiAgICAgIHRoaXMuY2FtZXJhRXJyb3IuZW1pdChlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBob3RvUmVuZGVyKGZpbGUpIHtcclxuICAgIGlmIChmaWxlKSB7XHJcbiAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICBmaWxlUmVhZGVyLm9ubG9hZGVuZCA9XHJcbiAgICAgICAgcGhvdG9SZW5kZXIgPT4gdGhpcy5waG90b0Nob3BwZXIocGhvdG9SZW5kZXIpO1xyXG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBob3RvQ2hvcHBlcihwaG90b1JlbmRlcikge1xyXG4gICAgdGhpcy5pbWFnZUNyb3BwZXJTZXJ2aWNlLnNob3coe1xyXG4gICAgICBpbWFnZVNvdXJjZTogcGhvdG9SZW5kZXIudGFyZ2V0LnJlc3VsdCxcclxuICAgICAgY3JvcHBlZENhbnZhczogaW1hZ2VDYW52YXMgPT4ge1xyXG4gICAgICAgIGltYWdlQ2FudmFzLnRvQmxvYihibG9iID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0UGhvdG9Db250ZW50KGltYWdlQ2FudmFzLnRvRGF0YVVSTCgpLCBibG9iKTtcclxuICAgICAgICAgIHRoaXMub25DcmVhdGVCbG9iKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGhlYWRlcjogdGhpcy5jcm9wcGVyVGl0bGUsXHJcbiAgICAgIGVtcHR5U3RhdGVBY3Rpb25MYWJlbDogdGhpcy5jcm9wcGVyQWN0aW9uQ2FuY2VsLFxyXG4gICAgICBhbGxvd1NlbGVjdEFub3RoZXI6IGZhbHNlLFxyXG4gICAgICBhbGxvd1JlbW92ZTogZmFsc2UsXHJcbiAgICAgIGNyb3BMYWJlbDogdGhpcy5jcm9wcGVyQWN0aW9uQ3JvcCxcclxuICAgICAgcm91bmRlZDogdHJ1ZSxcclxuICAgICAgYXNwZWN0UmF0aW86IDMgLyA0XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaXNMb2FkaW5nLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNyZWF0ZUJsb2IoKSB7XHJcbiAgICBpZiAodGhpcy5nZXRNYXhTaXplSW5CaXRlcygpID4gdGhpcy5waG90b0NvbnRlbnQuYmxvYi5zaXplKSB7XHJcbiAgICAgIHRoaXMucGhvdG9Dcm9wLmVtaXQodGhpcy5waG90b0NvbnRlbnQpO1xyXG4gICAgICB0aGlzLnBob3RvID0gdGhpcy5waG90b0NvbnRlbnQuaW1hZ2U7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5waG90byk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRQaG90b1NpemUuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNYXhTaXplSW5CaXRlcygpIHtcclxuICAgIHJldHVybiAodGhpcy5tYXhQaG90b1NpemUgKiAxMDAwKSAqIDEwMDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBob3RvQ29udGVudChpbWFnZVVyaSwgaW1hZ2VCbG9iKSB7XHJcbiAgICB0aGlzLnBob3RvQ29udGVudCA9IHtcclxuICAgICAgaW1hZ2U6IGltYWdlVXJpLFxyXG4gICAgICBibG9iOiBpbWFnZUJsb2JcclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,15 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @record
7
- */
8
- export function PhotoModel() { }
9
- if (false) {
10
- /** @type {?} */
11
- PhotoModel.prototype.image;
12
- /** @type {?} */
13
- PhotoModel.prototype.blob;
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8ubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2FtLXNlbmlvci9waG90by8iLCJzb3VyY2VzIjpbImxpYi9waG90by5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsZ0NBR0M7OztJQUZDLDJCQUFjOztJQUNkLDBCQUFXIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQaG90b01vZGVsIHtcclxuICBpbWFnZTogc3RyaW5nO1xyXG4gIGJsb2I6IEJsb2I7XHJcbn1cclxuIl19
@@ -1,37 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { NgModule } from '@angular/core';
6
- import { ConfirmDialogModule } from 'primeng/confirmdialog';
7
- import { PanelModule } from 'primeng/panel';
8
- import { ImageCropperModule, StepsModule, ObjectCardModule, ButtonModule, TileModule, ImageCropperService, LoadingStateModule } from '@seniorsistemas/angular-components';
9
- import { DialogModule } from 'primeng/dialog';
10
- import { PhotoCaptureModule } from '@sam-senior/photo-capture';
11
- import { PhotoComponent } from './photo.component';
12
- var PhotoModule = /** @class */ (function () {
13
- function PhotoModule() {
14
- }
15
- PhotoModule.decorators = [
16
- { type: NgModule, args: [{
17
- declarations: [PhotoComponent],
18
- imports: [
19
- PanelModule,
20
- DialogModule,
21
- StepsModule,
22
- ObjectCardModule,
23
- ImageCropperModule,
24
- ConfirmDialogModule,
25
- PhotoCaptureModule,
26
- ButtonModule,
27
- TileModule,
28
- LoadingStateModule
29
- ],
30
- providers: [ImageCropperService],
31
- exports: [PhotoComponent]
32
- },] }
33
- ];
34
- return PhotoModule;
35
- }());
36
- export { PhotoModule };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNhbS1zZW5pb3IvcGhvdG8vIiwic291cmNlcyI6WyJsaWIvcGhvdG8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQ7SUFBQTtJQWlCMkIsQ0FBQzs7Z0JBakIzQixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM5QixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLFVBQVU7d0JBQ1Ysa0JBQWtCO3FCQUNuQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQjs7SUFDMEIsa0JBQUM7Q0FBQSxBQWpCNUIsSUFpQjRCO1NBQWYsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFuZWwnO1xyXG5pbXBvcnQge1xyXG4gIEltYWdlQ3JvcHBlck1vZHVsZSxcclxuICBTdGVwc01vZHVsZSxcclxuICBPYmplY3RDYXJkTW9kdWxlLFxyXG4gIEJ1dHRvbk1vZHVsZSxcclxuICBUaWxlTW9kdWxlLFxyXG4gIEltYWdlQ3JvcHBlclNlcnZpY2UsXHJcbiAgTG9hZGluZ1N0YXRlTW9kdWxlXHJcbn0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgUGhvdG9DYXB0dXJlTW9kdWxlIH0gZnJvbSAnQHNhbS1zZW5pb3IvcGhvdG8tY2FwdHVyZSc7XHJcblxyXG5pbXBvcnQgeyBQaG90b0NvbXBvbmVudCB9IGZyb20gJy4vcGhvdG8uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGhvdG9Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFBhbmVsTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgU3RlcHNNb2R1bGUsXHJcbiAgICBPYmplY3RDYXJkTW9kdWxlLFxyXG4gICAgSW1hZ2VDcm9wcGVyTW9kdWxlLFxyXG4gICAgQ29uZmlybURpYWxvZ01vZHVsZSxcclxuICAgIFBob3RvQ2FwdHVyZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIFRpbGVNb2R1bGUsXHJcbiAgICBMb2FkaW5nU3RhdGVNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0ltYWdlQ3JvcHBlclNlcnZpY2VdLFxyXG4gIGV4cG9ydHM6IFtQaG90b0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBob3RvTW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /*
6
- * Public API Surface of photo
7
- */
8
- export {} from './lib/photo.model';
9
- export { PhotoComponent } from './lib/photo.component';
10
- export { PhotoModule } from './lib/photo.module';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzYW0tc2VuaW9yL3Bob3RvLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsZUFBYyxtQkFBbUIsQ0FBQztBQUNsQywrQkFBYyx1QkFBdUIsQ0FBQztBQUN0Qyw0QkFBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwaG90b1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGhvdG8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG90by5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG90by5tb2R1bGUnO1xyXG4iXX0=
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export { PhotoComponent, PhotoModule } from './public_api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtLXNlbmlvci1waG90by5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzYW0tc2VuaW9yL3Bob3RvLyIsInNvdXJjZXMiOlsic2FtLXNlbmlvci1waG90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsNENBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19