ngx-scandoc 0.0.1 → 1.0.1
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/core/app.worker.d.ts +1 -0
- package/core/components/components.module.d.ts +8 -0
- package/core/components/webcam/domain/webcam-image.d.ts +35 -0
- package/core/components/webcam/domain/webcam-init-error.d.ts +4 -0
- package/core/components/webcam/domain/webcam-mirror-properties.d.ts +3 -0
- package/core/components/webcam/util/webcam.util.d.ts +8 -0
- package/core/components/webcam/webcam/webcam.component.d.ts +202 -0
- package/core/components/webcam/webcam.module.d.ts +9 -0
- package/core/pipes/pipes.module.d.ts +7 -0
- package/core/pipes/safeResourceUrl.pipe.d.ts +10 -0
- package/core/shared/material.module.d.ts +28 -0
- package/dialogs/components/blank/blank.component.d.ts +17 -0
- package/dialogs/components/confirm/confirm.component.d.ts +30 -0
- package/dialogs/components/loading/loading.component.d.ts +5 -0
- package/dialogs/components/scan-mobile/scan-mobile.component.d.ts +16 -0
- package/dialogs/components/scan-profile/scan-profile.component.d.ts +124 -0
- package/dialogs/components/scan-selfie/scan-selfie.component.d.ts +83 -0
- package/dialogs/dialogs.core.provider.d.ts +18 -0
- package/dialogs/dialogs.module.d.ts +21 -0
- package/esm2020/core/app.worker.mjs +236 -0
- package/esm2020/core/components/components.module.mjs +18 -0
- package/esm2020/core/components/webcam/domain/webcam-image.mjs +58 -0
- package/esm2020/core/components/webcam/domain/webcam-init-error.mjs +3 -0
- package/esm2020/core/components/webcam/domain/webcam-mirror-properties.mjs +3 -0
- package/esm2020/core/components/webcam/util/webcam.util.mjs +48 -0
- package/esm2020/core/components/webcam/webcam/webcam.component.mjs +861 -0
- package/esm2020/core/components/webcam/webcam.module.mjs +22 -0
- package/esm2020/core/pipes/pipes.module.mjs +19 -0
- package/esm2020/core/pipes/safeResourceUrl.pipe.mjs +20 -0
- package/esm2020/core/shared/material.module.mjs +162 -0
- package/esm2020/dialogs/components/blank/blank.component.mjs +47 -0
- package/esm2020/dialogs/components/confirm/confirm.component.mjs +53 -0
- package/esm2020/dialogs/components/loading/loading.component.mjs +12 -0
- package/esm2020/dialogs/components/scan-mobile/scan-mobile.component.mjs +43 -0
- package/esm2020/dialogs/components/scan-profile/scan-profile.component.mjs +756 -0
- package/esm2020/dialogs/components/scan-selfie/scan-selfie.component.mjs +392 -0
- package/esm2020/dialogs/dialogs.core.provider.mjs +100 -0
- package/esm2020/dialogs/dialogs.module.mjs +89 -0
- package/esm2020/forms/form.module.mjs +87 -0
- package/esm2020/forms/types/avatar.type.mjs +53 -0
- package/esm2020/forms/types/profile.image.type.mjs +54 -0
- package/esm2020/forms/types/title.type.mjs +60 -0
- package/esm2020/lib/ngx-scandoc.module.mjs +28 -11
- package/esm2020/providers/auth.provider.mjs +57 -0
- package/esm2020/providers/interceptor.provider.mjs +61 -0
- package/esm2020/providers/scan.form.mjs +386 -0
- package/esm2020/providers/scan.provider.mjs +490 -0
- package/esm2020/providers/translation.provider.mjs +50 -0
- package/esm2020/providers/webrtc.provider.mjs +58 -0
- package/esm2020/public-api.mjs +22 -4
- package/fesm2015/ngx-scandoc.mjs +4178 -32
- package/fesm2015/ngx-scandoc.mjs.map +1 -1
- package/fesm2020/ngx-scandoc.mjs +4154 -32
- package/fesm2020/ngx-scandoc.mjs.map +1 -1
- package/forms/form.module.d.ts +18 -0
- package/forms/types/avatar.type.d.ts +14 -0
- package/forms/types/profile.image.type.d.ts +14 -0
- package/forms/types/title.type.d.ts +12 -0
- package/lib/ngx-scandoc.module.d.ts +20 -2
- package/package.json +6 -2
- package/providers/auth.provider.d.ts +21 -0
- package/providers/interceptor.provider.d.ts +13 -0
- package/providers/scan.form.d.ts +13 -0
- package/providers/scan.provider.d.ts +239 -0
- package/providers/translation.provider.d.ts +9 -0
- package/providers/webrtc.provider.d.ts +11 -0
- package/public-api.d.ts +21 -3
- package/esm2020/lib/ngx-scandoc.component.mjs +0 -22
- package/esm2020/lib/ngx-scandoc.service.mjs +0 -14
- package/lib/ngx-scandoc.component.d.ts +0 -8
- package/lib/ngx-scandoc.service.d.ts +0 -6
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { Component, ViewChild, EventEmitter, Output, HostListener, ChangeDetectionStrategy, Input, } from '@angular/core';
|
|
2
|
+
import { Subject, Observable, of } from 'rxjs';
|
|
3
|
+
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { switchMap } from 'rxjs/operators';
|
|
5
|
+
import { WebcamUtil } from '../../../core/components/webcam/util/webcam.util';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../providers/scan.provider";
|
|
8
|
+
import * as i2 from "../../../dialogs/dialogs.core.provider";
|
|
9
|
+
import * as i3 from "@ngx-translate/core";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "@angular/common";
|
|
12
|
+
import * as i6 from "@angular/material/form-field";
|
|
13
|
+
import * as i7 from "@angular/material/select";
|
|
14
|
+
import * as i8 from "@angular/material/core";
|
|
15
|
+
import * as i9 from "@angular/material/icon";
|
|
16
|
+
import * as i10 from "@angular/material/button";
|
|
17
|
+
import * as i11 from "@angular/material/progress-bar";
|
|
18
|
+
import * as i12 from "../../../core/components/webcam/webcam/webcam.component";
|
|
19
|
+
import * as i13 from "@angular/flex-layout";
|
|
20
|
+
import * as i14 from "@angular/flex-layout/extended";
|
|
21
|
+
export class ScanSelfieComponent {
|
|
22
|
+
constructor(cd, scanProvider, dialogs,
|
|
23
|
+
// private formProvider: ScanFieldsProvider,
|
|
24
|
+
translate) {
|
|
25
|
+
this.cd = cd;
|
|
26
|
+
this.scanProvider = scanProvider;
|
|
27
|
+
this.dialogs = dialogs;
|
|
28
|
+
this.translate = translate;
|
|
29
|
+
this.scanBlastData = [
|
|
30
|
+
{
|
|
31
|
+
title: 'pms.dialogs.components.scanProfile.front',
|
|
32
|
+
description: 'pms.dialogs.components.scanProfile.frontDescription',
|
|
33
|
+
side: 'FRONT',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: 'pms.dialogs.components.scanProfile.back',
|
|
37
|
+
description: 'pms.dialogs.components.scanProfile.backDescription',
|
|
38
|
+
disabled: true,
|
|
39
|
+
side: 'BACK',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
this.type = 'desktop';
|
|
43
|
+
this.actions = new EventEmitter();
|
|
44
|
+
this.mediaDevices = [];
|
|
45
|
+
this.videoOptions = {
|
|
46
|
+
width: 1920,
|
|
47
|
+
height: 1080,
|
|
48
|
+
facingMode: 'environment',
|
|
49
|
+
};
|
|
50
|
+
this.multipleWebcamsAvailable = false;
|
|
51
|
+
// webcam snapshot trigger
|
|
52
|
+
this.documentTypeSelected = false;
|
|
53
|
+
this.preview = null;
|
|
54
|
+
this.allowCameraSwitch = true;
|
|
55
|
+
this.error = false;
|
|
56
|
+
this.cameraReady = false;
|
|
57
|
+
this.scaning = false;
|
|
58
|
+
this.scanDatas = [];
|
|
59
|
+
this.trigger = new Subject();
|
|
60
|
+
// switch to next / previous / specific webcam; true/false: forward/backwards, string: deviceId
|
|
61
|
+
this.nextWebcam = new Subject();
|
|
62
|
+
this.form = new FormGroup({});
|
|
63
|
+
}
|
|
64
|
+
onResize() {
|
|
65
|
+
if (this.wraper) {
|
|
66
|
+
this.width = this.wraper.nativeElement.clientWidth;
|
|
67
|
+
this.height = this.wraper.nativeElement.clientHeight;
|
|
68
|
+
console.log(this.width, this.height);
|
|
69
|
+
setTimeout(() => {
|
|
70
|
+
const video = this.wraper?.nativeElement.querySelector('video');
|
|
71
|
+
if (video) {
|
|
72
|
+
// console.log(video.clientWidth, video.clientHeight);
|
|
73
|
+
this.videoWidth = video.clientWidth;
|
|
74
|
+
this.videoHeight = video.clientHeight;
|
|
75
|
+
}
|
|
76
|
+
}, 100);
|
|
77
|
+
this.cd.detectChanges();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
init() {
|
|
81
|
+
console.log('HAS MULTI');
|
|
82
|
+
// this.result=true;
|
|
83
|
+
// this.result ={};
|
|
84
|
+
this.fields = []; //this.formProvider.document();
|
|
85
|
+
WebcamUtil.getAvailableVideoInputs().subscribe((mediaDevices) => {
|
|
86
|
+
console.log('[DEVICES]', mediaDevices);
|
|
87
|
+
this.mediaDevices = mediaDevices;
|
|
88
|
+
this.multipleWebcamsAvailable = mediaDevices && mediaDevices.length > 1;
|
|
89
|
+
this.singleScan(this.scanBlastData[0]);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
handleImage(webcamImage) {
|
|
93
|
+
console.log('[received webcam image]', webcamImage);
|
|
94
|
+
this.webcamImage = webcamImage;
|
|
95
|
+
this.preview = webcamImage.imageAsDataUrl;
|
|
96
|
+
this.cd.detectChanges();
|
|
97
|
+
}
|
|
98
|
+
handleInitError(error) {
|
|
99
|
+
console.log(error);
|
|
100
|
+
}
|
|
101
|
+
get scanBlastCanUpload() {
|
|
102
|
+
return this.scanBlastData[0].image ? true : false;
|
|
103
|
+
}
|
|
104
|
+
cameraWasSwitched(deviceId) {
|
|
105
|
+
console.log('active device: ' + deviceId);
|
|
106
|
+
this.deviceId = deviceId;
|
|
107
|
+
this.cameraReady = true;
|
|
108
|
+
this.defaultDevice = deviceId;
|
|
109
|
+
this.onResize();
|
|
110
|
+
}
|
|
111
|
+
get nextWebcamObservable() {
|
|
112
|
+
return this.nextWebcam.asObservable();
|
|
113
|
+
}
|
|
114
|
+
ngAfterViewInit() {
|
|
115
|
+
this.cd.detectChanges();
|
|
116
|
+
}
|
|
117
|
+
selectCamera(event) {
|
|
118
|
+
console.log(event);
|
|
119
|
+
this.nextWebcam.next(event.value);
|
|
120
|
+
}
|
|
121
|
+
close() {
|
|
122
|
+
this.dialogRef?.close();
|
|
123
|
+
}
|
|
124
|
+
singleScan(side) {
|
|
125
|
+
this.scanType = side.side;
|
|
126
|
+
this.preview = null;
|
|
127
|
+
this.selectedSide = side;
|
|
128
|
+
this.selectedSide.image = null;
|
|
129
|
+
this.documentTypeSelected = true;
|
|
130
|
+
this.scanBlastData[1].disabled = false;
|
|
131
|
+
this.cd.detectChanges();
|
|
132
|
+
setTimeout(() => {
|
|
133
|
+
this.onResize();
|
|
134
|
+
}, 10);
|
|
135
|
+
}
|
|
136
|
+
getBase64(file) {
|
|
137
|
+
return new Observable((observer) => {
|
|
138
|
+
const reader = new FileReader();
|
|
139
|
+
reader.readAsDataURL(file);
|
|
140
|
+
reader.onload = () => {
|
|
141
|
+
observer.next(reader.result);
|
|
142
|
+
};
|
|
143
|
+
reader.onerror = (error) => {
|
|
144
|
+
observer.error(error);
|
|
145
|
+
};
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
handleFileInput(target, event, side) {
|
|
149
|
+
const files = target.files;
|
|
150
|
+
this.selectedSide = side;
|
|
151
|
+
console.log(files);
|
|
152
|
+
const file = files.item(0);
|
|
153
|
+
this.resolutionLimit(file)
|
|
154
|
+
.pipe(switchMap((valid) => {
|
|
155
|
+
return valid ? this.getBase64(file) : of(false);
|
|
156
|
+
}))
|
|
157
|
+
.subscribe((imageAsDataUrl) => {
|
|
158
|
+
// console.log(imageAsDataUrl);
|
|
159
|
+
event.target.value = null;
|
|
160
|
+
if (!imageAsDataUrl) {
|
|
161
|
+
this.dialogs.alert('core.page.error', this.translate.instant('pms.dialogs.components.scanProfile.minResolution'));
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
side.image = {
|
|
165
|
+
imageAsDataUrl,
|
|
166
|
+
};
|
|
167
|
+
if (this.selectedSide.side === 'FRONT') {
|
|
168
|
+
this.scanBlastData[1].disabled = false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
this.cd.detectChanges();
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
rotateBase64Image(base64data) {
|
|
175
|
+
return new Observable((observer) => {
|
|
176
|
+
const canvas = document.createElement('canvas');
|
|
177
|
+
const ctx = canvas.getContext('2d');
|
|
178
|
+
var image = new Image();
|
|
179
|
+
image.src = base64data;
|
|
180
|
+
image.onload = () => {
|
|
181
|
+
console.log(canvas);
|
|
182
|
+
canvas.width = image.height;
|
|
183
|
+
canvas.height = image.width;
|
|
184
|
+
if (ctx) {
|
|
185
|
+
ctx.rotate((90 * Math.PI) / 180);
|
|
186
|
+
ctx.translate(0, -canvas.width);
|
|
187
|
+
ctx.drawImage(image, 0, 0);
|
|
188
|
+
observer.next(canvas.toDataURL());
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
observer.error({ type: 'generic error' });
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
image.onerror = (e) => {
|
|
195
|
+
observer.error(e);
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
sendMobile() {
|
|
200
|
+
this.dialogs.scanMobile({ id: 1 });
|
|
201
|
+
}
|
|
202
|
+
singleScanRotate(side) {
|
|
203
|
+
console.log(side);
|
|
204
|
+
this.rotateBase64Image(side.image.imageAsDataUrl).subscribe((data) => {
|
|
205
|
+
side.image = { imageAsDataUrl: data };
|
|
206
|
+
this.cd.detectChanges();
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
singleScanRemove(side) {
|
|
210
|
+
side.image = null;
|
|
211
|
+
if (side.side === 'FRONT') {
|
|
212
|
+
this.scanBlastData[1].disabled = true;
|
|
213
|
+
}
|
|
214
|
+
this.cd.detectChanges();
|
|
215
|
+
}
|
|
216
|
+
resolutionLimit(file) {
|
|
217
|
+
const minWidth = 1280;
|
|
218
|
+
const minHeight = 720;
|
|
219
|
+
return new Observable((observer) => {
|
|
220
|
+
const img = new Image();
|
|
221
|
+
img.src = window.URL.createObjectURL(file);
|
|
222
|
+
img.onload = () => {
|
|
223
|
+
const width = img.naturalWidth;
|
|
224
|
+
const height = img.naturalHeight;
|
|
225
|
+
let valid = false;
|
|
226
|
+
if (width > height) {
|
|
227
|
+
valid = width >= minWidth && height >= minHeight;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
valid = width >= minHeight && height >= minWidth;
|
|
231
|
+
}
|
|
232
|
+
observer.next(valid);
|
|
233
|
+
};
|
|
234
|
+
img.onerror = (error) => {
|
|
235
|
+
observer.error(error);
|
|
236
|
+
};
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
getImgBase64(num) {
|
|
240
|
+
return this.scanBlastData[num].image.dataUrl.split(',')[1];
|
|
241
|
+
}
|
|
242
|
+
scanBlastFinish() {
|
|
243
|
+
if (this.type === 'mobile') {
|
|
244
|
+
this.actions.emit({ data: this.scanBlastData });
|
|
245
|
+
this.retake();
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const loading = this.dialogs.loading();
|
|
249
|
+
this.scaning = true;
|
|
250
|
+
const payload = {
|
|
251
|
+
AcceptTermsAndConditions: true,
|
|
252
|
+
DataFields: {
|
|
253
|
+
FrontImageType: 'base64',
|
|
254
|
+
FrontImageCropped: false,
|
|
255
|
+
BackImageType: 'base64',
|
|
256
|
+
BackImageCropped: false,
|
|
257
|
+
FrontImage: this.getImgBase64(0),
|
|
258
|
+
BackImage: this.scanBlastData[1].image ? this.getImgBase64(1) : null,
|
|
259
|
+
},
|
|
260
|
+
Settings: {
|
|
261
|
+
ShouldValidate: true,
|
|
262
|
+
ShouldReturnDocumentImage: true,
|
|
263
|
+
ShouldReturnFaceIfDetected: true,
|
|
264
|
+
SkipImageSizeCheck: true,
|
|
265
|
+
CanStoreImages: this.scanProvider.canStoreImages,
|
|
266
|
+
},
|
|
267
|
+
// CallBackUrl: 'http://demo:5000/report/extracted/',
|
|
268
|
+
};
|
|
269
|
+
if (!this.scanBlastData[1].image) {
|
|
270
|
+
payload.Settings.IgnoreBackImage = true;
|
|
271
|
+
}
|
|
272
|
+
this.scanProvider.blastPost(payload).subscribe((data) => {
|
|
273
|
+
const results = data.Data;
|
|
274
|
+
loading.close();
|
|
275
|
+
this.documentTypeSelected = true;
|
|
276
|
+
this.scaning = false;
|
|
277
|
+
if (results && data.Metadata.length > 0) {
|
|
278
|
+
if (data.ImageData?.Documents) {
|
|
279
|
+
const { Documents } = data.ImageData;
|
|
280
|
+
this.images = Documents.map((image, i) => {
|
|
281
|
+
return { data: 'data:image/jpeg;base64,' + Documents[i] };
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
this.result = this.scanProvider.parseBlast(results);
|
|
285
|
+
console.log('RES', this.result);
|
|
286
|
+
this.model = this.result.model;
|
|
287
|
+
if (data.ImageData?.FaceImage) {
|
|
288
|
+
this.model._avatar =
|
|
289
|
+
'data:image/jpeg;base64,' + data.ImageData?.FaceImage;
|
|
290
|
+
}
|
|
291
|
+
console.log('MODEL', this.model);
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
console.log('ERROR');
|
|
295
|
+
// this.scanSide = 0;
|
|
296
|
+
this.error = true;
|
|
297
|
+
this.preview = true;
|
|
298
|
+
// this.documentTypeSelected = false;
|
|
299
|
+
// this.retry();
|
|
300
|
+
}
|
|
301
|
+
this.cd.detectChanges();
|
|
302
|
+
}, (err) => {
|
|
303
|
+
loading.close();
|
|
304
|
+
// this.scanSide = 0;
|
|
305
|
+
this.error = true;
|
|
306
|
+
this.preview = true;
|
|
307
|
+
this.documentTypeSelected = true;
|
|
308
|
+
this.scaning = false;
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
cameraOff(ev) {
|
|
312
|
+
this.cameraReady = false;
|
|
313
|
+
this.cd.detectChanges();
|
|
314
|
+
}
|
|
315
|
+
continue() {
|
|
316
|
+
if (this.scanProvider.enableVerification) {
|
|
317
|
+
const loading = this.dialogs.loading();
|
|
318
|
+
console.log(this.data.avatar);
|
|
319
|
+
this.scanProvider
|
|
320
|
+
.stateless(this.data.avatar.split(',')[1], this.webcamImage?.imageAsDataUrl.split(',')[1])
|
|
321
|
+
.subscribe((resp) => {
|
|
322
|
+
loading.close();
|
|
323
|
+
if (resp.Data?.Verified) {
|
|
324
|
+
this.dialogRef?.close(this.webcamImage);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
this.dialogs.alert('Verification failed!', "We can't verify that your selfie is same as image on document.");
|
|
328
|
+
}
|
|
329
|
+
console.log(resp);
|
|
330
|
+
}, (err) => {
|
|
331
|
+
loading.close();
|
|
332
|
+
this.dialogRef?.close(this.webcamImage);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
this.dialogRef?.close(this.webcamImage);
|
|
337
|
+
}
|
|
338
|
+
// this.dialogRef.close(this.webcamImage)
|
|
339
|
+
}
|
|
340
|
+
retry() {
|
|
341
|
+
this.preview = false;
|
|
342
|
+
this.result = false;
|
|
343
|
+
if (this.error) {
|
|
344
|
+
this.documentTypeSelected = false;
|
|
345
|
+
this.scanBlastData.forEach((element) => {
|
|
346
|
+
element.image = null;
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
this.error = false;
|
|
350
|
+
}
|
|
351
|
+
triggerSnapshot() {
|
|
352
|
+
this.trigger.next(0);
|
|
353
|
+
}
|
|
354
|
+
scan() {
|
|
355
|
+
console.log('SCAN');
|
|
356
|
+
this.triggerSnapshot();
|
|
357
|
+
this.scanDatas[0] = true;
|
|
358
|
+
}
|
|
359
|
+
retake() {
|
|
360
|
+
this.preview = false;
|
|
361
|
+
this.error = false;
|
|
362
|
+
this.result = false;
|
|
363
|
+
this.scanSide = 0;
|
|
364
|
+
this.scanDatas = [];
|
|
365
|
+
this.scaning = false;
|
|
366
|
+
this.images = [];
|
|
367
|
+
this.documentTypeSelected = false;
|
|
368
|
+
this.scanBlastData.forEach((m) => {
|
|
369
|
+
m.image = null;
|
|
370
|
+
});
|
|
371
|
+
this.cd.detectChanges();
|
|
372
|
+
}
|
|
373
|
+
use() { }
|
|
374
|
+
selfie() { }
|
|
375
|
+
}
|
|
376
|
+
ScanSelfieComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanSelfieComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScanProvider }, { token: i2.DialogsCoreProvider }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
377
|
+
ScanSelfieComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScanSelfieComponent, selector: "app-scan-selfie", inputs: { type: "type" }, outputs: { actions: "actions" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "wraper", first: true, predicate: ["wraper"], descendants: true }], ngImport: i0, template: "<header class=\"page-header\" fxLayout=\"row\">\n <div class=\"title\" ngClass.lt-sm=\"title-small\">Selfie</div>\n\n <span fxFlex></span>\n <ng-container\n *ngIf=\"\n documentTypeSelected &&\n !result &&\n !error &&\n multipleWebcamsAvailable &&\n !preview\n \"\n >\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <mat-form-field\n style=\"font-size: 14px; width: 200px; margin-top: 8px\"\n class=\"w-200 mr-16 mt-8\"\n >\n <mat-label> Camera </mat-label>\n <mat-select\n (selectionChange)=\"selectCamera($event)\"\n [(ngModel)]=\"deviceId\"\n >\n <mat-option\n *ngFor=\"let device of mediaDevices\"\n [value]=\"device.deviceId\"\n >\n {{ device.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n <!-- <ng-container *ngIf=\"type === 'desktop'\">\n <div class=\"separator\"></div>\n <button mat-button (click)=\"sendMobile()\">\n <mat-icon>tablet_mac</mat-icon>\n </button>\n\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container> -->\n</header>\n\n<div *ngIf=\"!result\" fxFlex fxLayout=\"column\">\n <div fxFlex #wraper class=\"wraper\" fxLayout=\"row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container *ngIf=\"!error\">\n <!-- <div\n class=\"rectangle\"\n [ngStyle]=\"{\n 'width.px': videoHeight * 0.75 * 1.588,\n 'height.px': videoHeight * 0.75\n }\"\n ></div>\n <svg\n *ngIf=\"videoWidth\"\n style=\"position: absolute; left: 0px; top: 0px\"\n width=\"0\"\n height=\"0\"\n >\n <defs>\n <clipPath id=\"myClip\">\n <rect\n stroke-width=\"6\"\n stroke-color=\"red\"\n [attr.x]=\"(videoWidth - videoHeight * 0.75 * 1.588) / 2\"\n [attr.y]=\"(videoHeight * 0.25) / 2\"\n [attr.width]=\"videoHeight * 0.75 * 1.588\"\n [attr.height]=\"videoHeight * 0.75\"\n rx=\"25\"\n />\n </clipPath>\n </defs>\n </svg> -->\n\n <app-webcam\n *ngIf=\"!preview && !scaning\"\n class=\"main\"\n [imageQuality]=\"1\"\n #webcam\n fxFlex\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n [allowCameraSwitch]=\"allowCameraSwitch\"\n [videoOptions]=\"videoOptions\"\n [switchCamera]=\"nextWebcamObservable\"\n (cameraSwitched)=\"cameraWasSwitched($event)\"\n (initError)=\"handleInitError($event)\"\n type=\"selfie\"\n [width]=\"width\"\n [height]=\"height\"\n (destroyed)=\"cameraOff($event)\"\n >\n </app-webcam>\n </ng-container>\n <div\n fxLayout=\"row\"\n fxFlex\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"z-index: 20; position: absolute; width: 100%; height: 100%\"\n >\n <div\n class=\"scanPreview\"\n fxFlex\n fxLayout=\"column\"\n *ngIf=\"!error && !scaning\"\n >\n <div\n fxFlex\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer fxLayout=\"row\" class=\"p-8\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container>\n TAKE SELFIE\n </ng-container>\n </button>\n\n <div\n class=\"w-100-p\"\n *ngIf=\"preview\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxFlex\n >\n <button fxFlex class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n RETRY\n </button>\n\n <button\n [disabled]=\"error\"\n fxFlex\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n CONTINUE\n\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.element{margin-bottom:8px}.element label{font-size:14px}.element div{font-size:18px}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.documentTypeWraper{width:400px}.documentTypeWraper .label{font-size:14px;margin-bottom:20px}.documentTypeWraper button{box-shadow:none}.overPane{position:absolute;width:100%;height:100%;top:0;left:0}.overPane app-webcam{clip-path:url(#myClip)}.subhead{height:55px;padding-top:8px}.rectangle{z-index:2;position:absolute;top:50%;left:50%;width:85.6mm;height:53.98mm;transform:translate(-50%,-50%);box-sizing:border-box;border:2px dashed #459be5;border-radius:3mm}.mask{z-index:1;position:absolute;width:100%;height:100%;background-position:center center;background-size:380mm;background-repeat:no-repeat}.label{font-size:11px;margin-top:4px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}h4{font-size:16px}.images label{font-size:11px;color:#888;line-height:20px}.images .title{padding:8px 0;font-weight:600}.images img{margin-bottom:16px}.error .title{font-size:22px}.error ul{font-size:18px}.photo{width:120px;height:120px;overflow:hidden}.signature{width:200px}mat-card{box-shadow:none!important}.scanBlastWraper button{text-transform:uppercase}.scanBlastWraper.mobile mat-card{margin:4px!important}.scanBlastWraper.mobile .description{font-size:12px;flex-direction:row!important}.scanBlastWraper.mobile .description .imgWrap{padding:0!important}.scanBlastWraper.mobile .description .btnActions{position:absolute;right:0}.scanBlastWraper.mobile .description button{font-size:11px!important;margin:0!important;position:absolute;right:16px}.scanBlastWraper.mobile .description button.rotateButton{top:58px}.scanBlastWraper.mobile .description button.remButton{top:8px}.scanBlastWraper.mobile .description button mat-icon{margin:0!important}.scanBlastWraper.mobile .description button div.label{display:none}.mobile .scanBlast button{font-size:11px!important}.scanBlast{display:flex;flex-direction:row;flex:1;padding:0 4px}.scanBlast mat-card{padding:0;box-shadow:none;margin:8px 4px;flex:1}.scanBlast mat-card .head{display:flex;flex-direction:row;align-items:center;justify-items:center;border-bottom:1px solid rgba(0,0,0,.12);height:60px;padding:8px}.scanBlast mat-card .head.small{height:30px!important;padding:4px 8px!important}.scanBlast mat-card .head.small .title{font-size:12px!important;margin-left:4px!important}.scanBlast mat-card .head button{max-width:120px;height:40px;box-shadow:none;border:1px solid rgba(0,0,0,.12)}.scanBlast mat-card .head .title{margin-left:16px;color:#459ae5;font-size:16px}.scanBlast mat-card .content{margin:8px;flex:1}.scanBlast mat-card .description{text-align:center;color:#888;font-size:14px}.scanBlast mat-card .actions{background-color:#e9e9e9;display:flex;flex-direction:row}.scanBlast mat-card .actions .mat-button-disabled{background-color:#fff!important}.scanBlast mat-card .actions button{box-shadow:none;width:50%;margin:8px;height:40px;font-size:12px}.scanBlast mat-card .actions button mat-icon{margin-right:8px}.scanBlast mat-card .previewPlaceholder{flex:1;border-radius:6px;display:flex;flex-direction:column}.scanBlast mat-card .previewPlaceholder .description{display:flex;flex:1;flex-direction:column;justify-content:center}.scanBlast mat-card .previewPlaceholder button{box-shadow:none;margin-top:8px;height:40px;font-size:12px}.scanBlast mat-card .previewPlaceholder button mat-icon{margin-right:8px}.scanBlast mat-card .previewPlaceholder .imgWrap{flex-direction:column;flex:1;padding:8px;background-color:#f5f5f5;border-radius:4px}.scanBlast mat-card .previewPlaceholder .imgWrap img{width:100%;border-radius:4px}.scanBlast mat-card .previewPlaceholder .imgWrap .image{background-position:center;background-repeat:no-repeat;background-size:contain}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.summary label{font-size:12px;color:#888;margin-top:2px}.summary .name{font-size:14px}.selfieContainer{display:flex;flex-direction:column;margin-bottom:20px}.selfieContainer button{box-shadow:none;border:1px solid rgba(0,0,0,.12)}.selfieContainer .selfie{margin:8px auto;width:120px;height:120px;border-radius:60px;border:1px solid rgba(0,0,0,.12)}\n", ".page-header{z-index:2000;height:64px;padding:0;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i12.WebcamComponent, selector: "app-webcam", inputs: ["imageHandler", "id", "type", "width", "height", "videoOptions", "allowCameraSwitch", "mirrorImage", "captureImageData", "imageType", "imageQuality", "trigger", "switchCamera"], outputs: ["imageCapture", "initError", "imageClick", "cameraSwitched", "videoReady", "destroyed"] }, { kind: "directive", type: i13.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i13.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i13.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i14.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanSelfieComponent, decorators: [{
|
|
379
|
+
type: Component,
|
|
380
|
+
args: [{ selector: 'app-scan-selfie', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"page-header\" fxLayout=\"row\">\n <div class=\"title\" ngClass.lt-sm=\"title-small\">Selfie</div>\n\n <span fxFlex></span>\n <ng-container\n *ngIf=\"\n documentTypeSelected &&\n !result &&\n !error &&\n multipleWebcamsAvailable &&\n !preview\n \"\n >\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <mat-form-field\n style=\"font-size: 14px; width: 200px; margin-top: 8px\"\n class=\"w-200 mr-16 mt-8\"\n >\n <mat-label> Camera </mat-label>\n <mat-select\n (selectionChange)=\"selectCamera($event)\"\n [(ngModel)]=\"deviceId\"\n >\n <mat-option\n *ngFor=\"let device of mediaDevices\"\n [value]=\"device.deviceId\"\n >\n {{ device.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n <!-- <ng-container *ngIf=\"type === 'desktop'\">\n <div class=\"separator\"></div>\n <button mat-button (click)=\"sendMobile()\">\n <mat-icon>tablet_mac</mat-icon>\n </button>\n\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container> -->\n</header>\n\n<div *ngIf=\"!result\" fxFlex fxLayout=\"column\">\n <div fxFlex #wraper class=\"wraper\" fxLayout=\"row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container *ngIf=\"!error\">\n <!-- <div\n class=\"rectangle\"\n [ngStyle]=\"{\n 'width.px': videoHeight * 0.75 * 1.588,\n 'height.px': videoHeight * 0.75\n }\"\n ></div>\n <svg\n *ngIf=\"videoWidth\"\n style=\"position: absolute; left: 0px; top: 0px\"\n width=\"0\"\n height=\"0\"\n >\n <defs>\n <clipPath id=\"myClip\">\n <rect\n stroke-width=\"6\"\n stroke-color=\"red\"\n [attr.x]=\"(videoWidth - videoHeight * 0.75 * 1.588) / 2\"\n [attr.y]=\"(videoHeight * 0.25) / 2\"\n [attr.width]=\"videoHeight * 0.75 * 1.588\"\n [attr.height]=\"videoHeight * 0.75\"\n rx=\"25\"\n />\n </clipPath>\n </defs>\n </svg> -->\n\n <app-webcam\n *ngIf=\"!preview && !scaning\"\n class=\"main\"\n [imageQuality]=\"1\"\n #webcam\n fxFlex\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n [allowCameraSwitch]=\"allowCameraSwitch\"\n [videoOptions]=\"videoOptions\"\n [switchCamera]=\"nextWebcamObservable\"\n (cameraSwitched)=\"cameraWasSwitched($event)\"\n (initError)=\"handleInitError($event)\"\n type=\"selfie\"\n [width]=\"width\"\n [height]=\"height\"\n (destroyed)=\"cameraOff($event)\"\n >\n </app-webcam>\n </ng-container>\n <div\n fxLayout=\"row\"\n fxFlex\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"z-index: 20; position: absolute; width: 100%; height: 100%\"\n >\n <div\n class=\"scanPreview\"\n fxFlex\n fxLayout=\"column\"\n *ngIf=\"!error && !scaning\"\n >\n <div\n fxFlex\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer fxLayout=\"row\" class=\"p-8\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container>\n TAKE SELFIE\n </ng-container>\n </button>\n\n <div\n class=\"w-100-p\"\n *ngIf=\"preview\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxFlex\n >\n <button fxFlex class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n RETRY\n </button>\n\n <button\n [disabled]=\"error\"\n fxFlex\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n CONTINUE\n\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.element{margin-bottom:8px}.element label{font-size:14px}.element div{font-size:18px}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.documentTypeWraper{width:400px}.documentTypeWraper .label{font-size:14px;margin-bottom:20px}.documentTypeWraper button{box-shadow:none}.overPane{position:absolute;width:100%;height:100%;top:0;left:0}.overPane app-webcam{clip-path:url(#myClip)}.subhead{height:55px;padding-top:8px}.rectangle{z-index:2;position:absolute;top:50%;left:50%;width:85.6mm;height:53.98mm;transform:translate(-50%,-50%);box-sizing:border-box;border:2px dashed #459be5;border-radius:3mm}.mask{z-index:1;position:absolute;width:100%;height:100%;background-position:center center;background-size:380mm;background-repeat:no-repeat}.label{font-size:11px;margin-top:4px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}h4{font-size:16px}.images label{font-size:11px;color:#888;line-height:20px}.images .title{padding:8px 0;font-weight:600}.images img{margin-bottom:16px}.error .title{font-size:22px}.error ul{font-size:18px}.photo{width:120px;height:120px;overflow:hidden}.signature{width:200px}mat-card{box-shadow:none!important}.scanBlastWraper button{text-transform:uppercase}.scanBlastWraper.mobile mat-card{margin:4px!important}.scanBlastWraper.mobile .description{font-size:12px;flex-direction:row!important}.scanBlastWraper.mobile .description .imgWrap{padding:0!important}.scanBlastWraper.mobile .description .btnActions{position:absolute;right:0}.scanBlastWraper.mobile .description button{font-size:11px!important;margin:0!important;position:absolute;right:16px}.scanBlastWraper.mobile .description button.rotateButton{top:58px}.scanBlastWraper.mobile .description button.remButton{top:8px}.scanBlastWraper.mobile .description button mat-icon{margin:0!important}.scanBlastWraper.mobile .description button div.label{display:none}.mobile .scanBlast button{font-size:11px!important}.scanBlast{display:flex;flex-direction:row;flex:1;padding:0 4px}.scanBlast mat-card{padding:0;box-shadow:none;margin:8px 4px;flex:1}.scanBlast mat-card .head{display:flex;flex-direction:row;align-items:center;justify-items:center;border-bottom:1px solid rgba(0,0,0,.12);height:60px;padding:8px}.scanBlast mat-card .head.small{height:30px!important;padding:4px 8px!important}.scanBlast mat-card .head.small .title{font-size:12px!important;margin-left:4px!important}.scanBlast mat-card .head button{max-width:120px;height:40px;box-shadow:none;border:1px solid rgba(0,0,0,.12)}.scanBlast mat-card .head .title{margin-left:16px;color:#459ae5;font-size:16px}.scanBlast mat-card .content{margin:8px;flex:1}.scanBlast mat-card .description{text-align:center;color:#888;font-size:14px}.scanBlast mat-card .actions{background-color:#e9e9e9;display:flex;flex-direction:row}.scanBlast mat-card .actions .mat-button-disabled{background-color:#fff!important}.scanBlast mat-card .actions button{box-shadow:none;width:50%;margin:8px;height:40px;font-size:12px}.scanBlast mat-card .actions button mat-icon{margin-right:8px}.scanBlast mat-card .previewPlaceholder{flex:1;border-radius:6px;display:flex;flex-direction:column}.scanBlast mat-card .previewPlaceholder .description{display:flex;flex:1;flex-direction:column;justify-content:center}.scanBlast mat-card .previewPlaceholder button{box-shadow:none;margin-top:8px;height:40px;font-size:12px}.scanBlast mat-card .previewPlaceholder button mat-icon{margin-right:8px}.scanBlast mat-card .previewPlaceholder .imgWrap{flex-direction:column;flex:1;padding:8px;background-color:#f5f5f5;border-radius:4px}.scanBlast mat-card .previewPlaceholder .imgWrap img{width:100%;border-radius:4px}.scanBlast mat-card .previewPlaceholder .imgWrap .image{background-position:center;background-repeat:no-repeat;background-size:contain}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.summary label{font-size:12px;color:#888;margin-top:2px}.summary .name{font-size:14px}.selfieContainer{display:flex;flex-direction:column;margin-bottom:20px}.selfieContainer button{box-shadow:none;border:1px solid rgba(0,0,0,.12)}.selfieContainer .selfie{margin:8px auto;width:120px;height:120px;border-radius:60px;border:1px solid rgba(0,0,0,.12)}\n", ".page-header{z-index:2000;height:64px;padding:0;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"] }]
|
|
381
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ScanProvider }, { type: i2.DialogsCoreProvider }, { type: i3.TranslateService }]; }, propDecorators: { type: [{
|
|
382
|
+
type: Input
|
|
383
|
+
}], actions: [{
|
|
384
|
+
type: Output
|
|
385
|
+
}], wraper: [{
|
|
386
|
+
type: ViewChild,
|
|
387
|
+
args: ['wraper']
|
|
388
|
+
}], onResize: [{
|
|
389
|
+
type: HostListener,
|
|
390
|
+
args: ['window:resize', ['$event']]
|
|
391
|
+
}] } });
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi1zZWxmaWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL2RpYWxvZ3MvY29tcG9uZW50cy9zY2FuLXNlbGZpZS9zY2FuLXNlbGZpZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvZGlhbG9ncy9jb21wb25lbnRzL3NjYW4tc2VsZmllL3NjYW4tc2VsZmllLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUlaLHVCQUF1QixFQUN2QixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUUvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQW9COUUsTUFBTSxPQUFPLG1CQUFtQjtJQXlFOUIsWUFDUyxFQUFxQixFQUNyQixZQUEwQixFQUN6QixPQUE0QjtJQUNwQyw4Q0FBOEM7SUFDdEMsU0FBMkI7UUFKNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFFNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE3RXJDLGtCQUFhLEdBQVE7WUFDbkI7Z0JBQ0UsS0FBSyxFQUFFLDBDQUEwQztnQkFDakQsV0FBVyxFQUFFLHFEQUFxRDtnQkFDbEUsSUFBSSxFQUFFLE9B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S0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNwQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELEdBQUcsS0FBSSxDQUFDO0lBQ1IsTUFBTSxLQUFJLENBQUM7O2dIQWxhQSxtQkFBbUI7b0dBQW5CLG1CQUFtQixrUkN0Q2hDLHVvSkF1TEE7MkZEakphLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtvTUFnQnRDLElBQUk7c0JBQVosS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQXVDYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBR25CLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2luLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgc3dpdGNoTWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBXZWJjYW1VdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL3dlYmNhbS91dGlsL3dlYmNhbS51dGlsJztcbmltcG9ydCB7IFdlYmNhbUltYWdlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL3dlYmNhbS9kb21haW4vd2ViY2FtLWltYWdlJztcbmltcG9ydCB7IFdlYmNhbUluaXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy93ZWJjYW0vZG9tYWluL3dlYmNhbS1pbml0LWVycm9yJztcblxuaW1wb3J0IHsgRGlhbG9nc0NvcmVQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL2RpYWxvZ3MvZGlhbG9ncy5jb3JlLnByb3ZpZGVyJztcbi8vaW1wb3J0IHsgU2NhbkZpZWxkc1Byb3ZpZGVyIH0gZnJvbSAnYXBwL3Byb3ZpZGVycy9zY2FuLmZvcm0nO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2NhblByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjYW4ucHJvdmlkZXInO1xuLy8gaW1wb3J0IHsgU2VydmVyUHJvdmlkZXIgfSBmcm9tICcvZGF0YS9wcm92aWRlcnMvc2VydmVyLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJV2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgVGV4dERldGVjdG9yOiBhbnk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zY2FuLXNlbGZpZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2FuLXNlbGZpZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjYW4tc2VsZmllLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uL3Njc3MvZGlhbG9nLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjYW5TZWxmaWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgc2NhbkJsYXN0RGF0YTogYW55ID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAncG1zLmRpYWxvZ3MuY29tcG9uZW50cy5zY2FuUHJvZmlsZS5mcm9udCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ3Btcy5kaWFsb2dzLmNvbXBvbmVudHMuc2NhblByb2ZpbGUuZnJvbnREZXNjcmlwdGlvbicsXG4gICAgICBzaWRlOiAnRlJPTlQnLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdwbXMuZGlhbG9ncy5jb21wb25lbnRzLnNjYW5Qcm9maWxlLmJhY2snLFxuICAgICAgZGVzY3JpcHRpb246ICdwbXMuZGlhbG9ncy5jb21wb25lbnRzLnNjYW5Qcm9maWxlLmJhY2tEZXNjcmlwdGlvbicsXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgIHNpZGU6ICdCQUNLJyxcbiAgICB9LFxuICBdO1xuICBASW5wdXQoKSB0eXBlID0gJ2Rlc2t0b3AnO1xuICBAT3V0cHV0KCkgYWN0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgbWVkaWFEZXZpY2VzOiBhbnkgPSBbXTtcbiAgcHVibGljIGRldmljZUlkPzogc3RyaW5nO1xuICBwdWJsaWMgdmlkZW9PcHRpb25zOiBNZWRpYVRyYWNrQ29uc3RyYWludHMgPSB7XG4gICAgd2lkdGg6IDE5MjAsXG4gICAgaGVpZ2h0OiAxMDgwLFxuICAgIGZhY2luZ01vZGU6ICdlbnZpcm9ubWVudCcsXG4gIH07XG4gIGRpYWxvZ1JlZj86IE1hdERpYWxvZ1JlZjxhbnk+O1xuICBkYXRhOiBhbnk7XG4gIG11bHRpcGxlV2ViY2Ftc0F2YWlsYWJsZSA9IGZhbHNlO1xuICBmaWVsZHM6IGFueTtcbiAgLy8gd2ViY2FtIHNuYXBzaG90IHRyaWdnZXJcbiAgZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcblxuICBzZWxlY3RlZFNpZGU6IGFueTtcbiAgaW1hZ2VzOiBhbnk7XG4gIHByZXZpZXc6IGFueSA9IG51bGw7XG4gIHNjYW5UeXBlOiBhbnk7XG4gIHdpZHRoOiBhbnk7XG4gIGhlaWdodDogYW55O1xuICB2aWRlb1dpZHRoOiBhbnk7XG4gIHZpZGVvSGVpZ2h0OiBhbnk7XG4gIGFsbG93Q2FtZXJhU3dpdGNoID0gdHJ1ZTtcbiAgZXJyb3IgPSBmYWxzZTtcbiAgY2FtZXJhUmVhZHkgPSBmYWxzZTtcbiAgcmVzdWx0OiBhbnk7XG4gIHNjYW5pbmcgPSBmYWxzZTtcbiAgZGVmYXVsdERldmljZTogYW55O1xuICBzY2FuRGF0YXM6IGFueSA9IFtdO1xuICBzY2FuU2lkZTogYW55O1xuICB3ZWJjYW1JbWFnZT86IFdlYmNhbUltYWdlO1xuICBtb2RlbDogYW55O1xuICBwdWJsaWMgdHJpZ2dlcjogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAvLyBzd2l0Y2ggdG8gbmV4dCAvIHByZXZpb3VzIC8gc3BlY2lmaWMgd2ViY2FtOyB0cnVlL2ZhbHNlOiBmb3J3YXJkL2JhY2t3YXJkcywgc3RyaW5nOiBkZXZpY2VJZFxuICBwdWJsaWMgbmV4dFdlYmNhbTogU3ViamVjdDxib29sZWFuIHwgc3RyaW5nPiA9IG5ldyBTdWJqZWN0PFxuICAgIGJvb2xlYW4gfCBzdHJpbmdcbiAgPigpO1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIEBWaWV3Q2hpbGQoJ3dyYXBlcicpIHdyYXBlcj86IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKCkge1xuICAgIGlmICh0aGlzLndyYXBlcikge1xuICAgICAgdGhpcy53aWR0aCA9IHRoaXMud3JhcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IHRoaXMud3JhcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgY29uc29sZS5sb2codGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZpZGVvID0gdGhpcy53cmFwZXI/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKTtcbiAgICAgICAgaWYgKHZpZGVvKSB7XG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyh2aWRlby5jbGllbnRXaWR0aCwgdmlkZW8uY2xpZW50SGVpZ2h0KTtcbiAgICAgICAgICB0aGlzLnZpZGVvV2lkdGggPSB2aWRlby5jbGllbnRXaWR0aDtcbiAgICAgICAgICB0aGlzLnZpZGVvSGVpZ2h0ID0gdmlkZW8uY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHNjYW5Qcm92aWRlcjogU2NhblByb3ZpZGVyLFxuICAgIHByaXZhdGUgZGlhbG9nczogRGlhbG9nc0NvcmVQcm92aWRlcixcbiAgICAvLyAgIHByaXZhdGUgZm9ybVByb3ZpZGVyOiBTY2FuRmllbGRzUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuICBpbml0KCkge1xuICAgIGNvbnNvbGUubG9nKCdIQVMgTVVMVEknKTtcbiAgICAvLyB0aGlzLnJlc3VsdD10cnVlO1xuICAgIC8vIHRoaXMucmVzdWx0ID17fTtcblxuICAgIHRoaXMuZmllbGRzID0gW107IC8vdGhpcy5mb3JtUHJvdmlkZXIuZG9jdW1lbnQoKTtcblxuICAgIFdlYmNhbVV0aWwuZ2V0QXZhaWxhYmxlVmlkZW9JbnB1dHMoKS5zdWJzY3JpYmUoXG4gICAgICAobWVkaWFEZXZpY2VzOiBNZWRpYURldmljZUluZm9bXSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnW0RFVklDRVNdJywgbWVkaWFEZXZpY2VzKTtcbiAgICAgICAgdGhpcy5tZWRpYURldmljZXMgPSBtZWRpYURldmljZXM7XG4gICAgICAgIHRoaXMubXVsdGlwbGVXZWJjYW1zQXZhaWxhYmxlID0gbWVkaWFEZXZpY2VzICYmIG1lZGlhRGV2aWNlcy5sZW5ndGggPiAxO1xuXG4gICAgICAgIHRoaXMuc2luZ2xlU2Nhbih0aGlzLnNjYW5CbGFzdERhdGFbMF0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcHVibGljIGhhbmRsZUltYWdlKHdlYmNhbUltYWdlOiBXZWJjYW1JbWFnZSk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdbcmVjZWl2ZWQgd2ViY2FtIGltYWdlXScsIHdlYmNhbUltYWdlKTtcblxuICAgIHRoaXMud2ViY2FtSW1hZ2UgPSB3ZWJjYW1JbWFnZTtcbiAgICB0aGlzLnByZXZpZXcgPSB3ZWJjYW1JbWFnZS5pbWFnZUFzRGF0YVVybDtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwdWJsaWMgaGFuZGxlSW5pdEVycm9yKGVycm9yOiBXZWJjYW1Jbml0RXJyb3IpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gIH1cblxuICBnZXQgc2NhbkJsYXN0Q2FuVXBsb2FkKCkge1xuICAgIHJldHVybiB0aGlzLnNjYW5CbGFzdERhdGFbMF0uaW1hZ2UgPyB0cnVlIDogZmFsc2U7XG4gIH1cbiAgcHVibGljIGNhbWVyYVdhc1N3aXRjaGVkKGRldmljZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnYWN0aXZlIGRldmljZTogJyArIGRldmljZUlkKTtcbiAgICB0aGlzLmRldmljZUlkID0gZGV2aWNlSWQ7XG4gICAgdGhpcy5jYW1lcmFSZWFkeSA9IHRydWU7XG4gICAgdGhpcy5kZWZhdWx0RGV2aWNlID0gZGV2aWNlSWQ7XG4gICAgdGhpcy5vblJlc2l6ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBuZXh0V2ViY2FtT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5uZXh0V2ViY2FtLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHNlbGVjdENhbWVyYShldmVudDogYW55KSB7XG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xuICAgIHRoaXMubmV4dFdlYmNhbS5uZXh0KGV2ZW50LnZhbHVlKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxuICBzaW5nbGVTY2FuKHNpZGU6IGFueSkge1xuICAgIHRoaXMuc2NhblR5cGUgPSBzaWRlLnNpZGU7XG4gICAgdGhpcy5wcmV2aWV3ID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkU2lkZSA9IHNpZGU7XG5cbiAgICB0aGlzLnNlbGVjdGVkU2lkZS5pbWFnZSA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zY2FuQmxhc3REYXRhWzFdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfSwgMTApO1xuICB9XG4gIGdldEJhc2U2NChmaWxlOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KHJlYWRlci5yZXN1bHQpO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQodGFyZ2V0OiBhbnksIGV2ZW50OiBhbnksIHNpZGU6IGFueSkge1xuICAgIGNvbnN0IGZpbGVzOiBGaWxlTGlzdCA9IHRhcmdldC5maWxlcztcbiAgICB0aGlzLnNlbGVjdGVkU2lkZSA9IHNpZGU7XG4gICAgY29uc29sZS5sb2coZmlsZXMpO1xuICAgIGNvbnN0IGZpbGUgPSBmaWxlcy5pdGVtKDApO1xuXG4gICAgdGhpcy5yZXNvbHV0aW9uTGltaXQoZmlsZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbGlkOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gdmFsaWQgPyB0aGlzLmdldEJhc2U2NChmaWxlKSA6IG9mKGZhbHNlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGltYWdlQXNEYXRhVXJsKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGltYWdlQXNEYXRhVXJsKTtcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgaWYgKCFpbWFnZUFzRGF0YVVybCkge1xuICAgICAgICAgIHRoaXMuZGlhbG9ncy5hbGVydChcbiAgICAgICAgICAgICdjb3JlLnBhZ2UuZXJyb3InLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ3Btcy5kaWFsb2dzLmNvbXBvbmVudHMuc2NhblByb2ZpbGUubWluUmVzb2x1dGlvbidcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNpZGUuaW1hZ2UgPSB7XG4gICAgICAgICAgICBpbWFnZUFzRGF0YVVybCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2lkZS5zaWRlID09PSAnRlJPTlQnKSB7XG4gICAgICAgICAgICB0aGlzLnNjYW5CbGFzdERhdGFbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuICByb3RhdGVCYXNlNjRJbWFnZShiYXNlNjRkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWFnZS5zcmMgPSBiYXNlNjRkYXRhO1xuICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhjYW52YXMpO1xuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS5oZWlnaHQ7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS53aWR0aDtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgIGN0eC5yb3RhdGUoKDkwICogTWF0aC5QSSkgLyAxODApO1xuICAgICAgICAgIGN0eC50cmFuc2xhdGUoMCwgLWNhbnZhcy53aWR0aCk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChjYW52YXMudG9EYXRhVVJMKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKHsgdHlwZTogJ2dlbmVyaWMgZXJyb3InIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaW1hZ2Uub25lcnJvciA9IChlKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbmRNb2JpbGUoKSB7XG4gICAgdGhpcy5kaWFsb2dzLnNjYW5Nb2JpbGUoeyBpZDogMSB9KTtcbiAgfVxuICBzaW5nbGVTY2FuUm90YXRlKHNpZGU6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKHNpZGUpO1xuICAgIHRoaXMucm90YXRlQmFzZTY0SW1hZ2Uoc2lkZS5pbWFnZS5pbWFnZUFzRGF0YVVybCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICBzaWRlLmltYWdlID0geyBpbWFnZUFzRGF0YVVybDogZGF0YSB9O1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBzaW5nbGVTY2FuUmVtb3ZlKHNpZGU6IGFueSkge1xuICAgIHNpZGUuaW1hZ2UgPSBudWxsO1xuICAgIGlmIChzaWRlLnNpZGUgPT09ICdGUk9OVCcpIHtcbiAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YVsxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZXNvbHV0aW9uTGltaXQoZmlsZTogYW55KSB7XG4gICAgY29uc3QgbWluV2lkdGggPSAxMjgwO1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IDcyMDtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgIGltZy5zcmMgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gaW1nLm5hdHVyYWxIZWlnaHQ7XG5cbiAgICAgICAgbGV0IHZhbGlkID0gZmFsc2U7XG4gICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xuICAgICAgICAgIHZhbGlkID0gd2lkdGggPj0gbWluV2lkdGggJiYgaGVpZ2h0ID49IG1pbkhlaWdodDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZCA9IHdpZHRoID49IG1pbkhlaWdodCAmJiBoZWlnaHQgPj0gbWluV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBvYnNlcnZlci5uZXh0KHZhbGlkKTtcbiAgICAgIH07XG4gICAgICBpbWcub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgZ2V0SW1nQmFzZTY0KG51bTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbkJsYXN0RGF0YVtudW1dLmltYWdlLmRhdGFVcmwuc3BsaXQoJywnKVsxXTtcbiAgfVxuICBzY2FuQmxhc3RGaW5pc2goKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5lbWl0KHsgZGF0YTogdGhpcy5zY2FuQmxhc3REYXRhIH0pO1xuICAgICAgdGhpcy5yZXRha2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkaW5nID0gdGhpcy5kaWFsb2dzLmxvYWRpbmcoKTtcbiAgICB0aGlzLnNjYW5pbmcgPSB0cnVlO1xuXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiB0cnVlLFxuICAgICAgRGF0YUZpZWxkczoge1xuICAgICAgICBGcm9udEltYWdlVHlwZTogJ2Jhc2U2NCcsXG4gICAgICAgIEZyb250SW1hZ2VDcm9wcGVkOiBmYWxzZSxcbiAgICAgICAgQmFja0ltYWdlVHlwZTogJ2Jhc2U2NCcsXG4gICAgICAgIEJhY2tJbWFnZUNyb3BwZWQ6IGZhbHNlLFxuICAgICAgICBGcm9udEltYWdlOiB0aGlzLmdldEltZ0Jhc2U2NCgwKSxcbiAgICAgICAgQmFja0ltYWdlOiB0aGlzLnNjYW5CbGFzdERhdGFbMV0uaW1hZ2UgPyB0aGlzLmdldEltZ0Jhc2U2NCgxKSA6IG51bGwsXG4gICAgICB9LFxuICAgICAgU2V0dGluZ3M6IHtcbiAgICAgICAgU2hvdWxkVmFsaWRhdGU6IHRydWUsXG4gICAgICAgIFNob3VsZFJldHVybkRvY3VtZW50SW1hZ2U6IHRydWUsXG4gICAgICAgIFNob3VsZFJldHVybkZhY2VJZkRldGVjdGVkOiB0cnVlLFxuICAgICAgICBTa2lwSW1hZ2VTaXplQ2hlY2s6IHRydWUsXG4gICAgICAgIENhblN0b3JlSW1hZ2VzOiB0aGlzLnNjYW5Qcm92aWRlci5jYW5TdG9yZUltYWdlcyxcbiAgICAgIH0sXG4gICAgICAvLyBDYWxsQmFja1VybDogJ2h0dHA6Ly9kZW1vOjUwMDAvcmVwb3J0L2V4dHJhY3RlZC8nLFxuICAgIH07XG4gICAgaWYgKCF0aGlzLnNjYW5CbGFzdERhdGFbMV0uaW1hZ2UpIHtcbiAgICAgIHBheWxvYWQuU2V0dGluZ3MuSWdub3JlQmFja0ltYWdlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnNjYW5Qcm92aWRlci5ibGFzdFBvc3QocGF5bG9hZCkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gZGF0YS5EYXRhO1xuICAgICAgICBsb2FkaW5nLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNjYW5pbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgZGF0YS5NZXRhZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKGRhdGEuSW1hZ2VEYXRhPy5Eb2N1bWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgRG9jdW1lbnRzIH0gPSBkYXRhLkltYWdlRGF0YTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VzID0gRG9jdW1lbnRzLm1hcCgoaW1hZ2U6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBEb2N1bWVudHNbaV0gfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVzdWx0ID0gdGhpcy5zY2FuUHJvdmlkZXIucGFyc2VCbGFzdChyZXN1bHRzKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUkVTJywgdGhpcy5yZXN1bHQpO1xuXG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMucmVzdWx0Lm1vZGVsO1xuICAgICAgICAgIGlmIChkYXRhLkltYWdlRGF0YT8uRmFjZUltYWdlKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLl9hdmF0YXIgPVxuICAgICAgICAgICAgICAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZGF0YS5JbWFnZURhdGE/LkZhY2VJbWFnZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc29sZS5sb2coJ01PREVMJywgdGhpcy5tb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0VSUk9SJyk7XG4gICAgICAgICAgLy8gdGhpcy5zY2FuU2lkZSA9IDA7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5wcmV2aWV3ID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIHRoaXMucmV0cnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgbG9hZGluZy5jbG9zZSgpO1xuICAgICAgICAvLyB0aGlzLnNjYW5TaWRlID0gMDtcbiAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMucHJldmlldyA9IHRydWU7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNjYW5pbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIGNhbWVyYU9mZihldjogYW55KSB7XG4gICAgdGhpcy5jYW1lcmFSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIGNvbnRpbnVlKCkge1xuICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5lbmFibGVWZXJpZmljYXRpb24pIHtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLmRpYWxvZ3MubG9hZGluZygpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLmF2YXRhcik7XG5cbiAgICAgIHRoaXMuc2NhblByb3ZpZGVyXG4gICAgICAgIC5zdGF0ZWxlc3MoXG4gICAgICAgICAgdGhpcy5kYXRhLmF2YXRhci5zcGxpdCgnLCcpWzFdLFxuICAgICAgICAgIHRoaXMud2ViY2FtSW1hZ2U/LmltYWdlQXNEYXRhVXJsLnNwbGl0KCcsJylbMV1cbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxvYWRpbmcuY2xvc2UoKTtcbiAgICAgICAgICAgIGlmIChyZXNwLkRhdGE/LlZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSh0aGlzLndlYmNhbUltYWdlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9ncy5hbGVydChcbiAgICAgICAgICAgICAgICAnVmVyaWZpY2F0aW9uIGZhaWxlZCEnLFxuICAgICAgICAgICAgICAgIFwiV2UgY2FuJ3QgdmVyaWZ5IHRoYXQgeW91ciBzZWxmaWUgaXMgc2FtZSBhcyBpbWFnZSBvbiBkb2N1bWVudC5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICBsb2FkaW5nLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UodGhpcy53ZWJjYW1JbWFnZSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UodGhpcy53ZWJjYW1JbWFnZSk7XG4gICAgfVxuICAgIC8vIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMud2ViY2FtSW1hZ2UpXG4gIH1cbiAgcmV0cnkoKSB7XG4gICAgdGhpcy5wcmV2aWV3ID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNjYW5CbGFzdERhdGEuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuaW1hZ2UgPSBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgdHJpZ2dlclNuYXBzaG90KCk6IHZvaWQge1xuICAgIHRoaXMudHJpZ2dlci5uZXh0KDApO1xuICB9XG4gIHNjYW4oKSB7XG4gICAgY29uc29sZS5sb2coJ1NDQU4nKTtcbiAgICB0aGlzLnRyaWdnZXJTbmFwc2hvdCgpO1xuICAgIHRoaXMuc2NhbkRhdGFzWzBdID0gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgcmV0YWtlKCkge1xuICAgIHRoaXMucHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhblNpZGUgPSAwO1xuXG4gICAgdGhpcy5zY2FuRGF0YXMgPSBbXTtcbiAgICB0aGlzLnNjYW5pbmcgPSBmYWxzZTtcbiAgICB0aGlzLmltYWdlcyA9IFtdO1xuXG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhbkJsYXN0RGF0YS5mb3JFYWNoKChtOiBhbnkpID0+IHtcbiAgICAgIG0uaW1hZ2UgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgdXNlKCkge31cbiAgc2VsZmllKCkge31cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIG5nQ2xhc3MubHQtc209XCJ0aXRsZS1zbWFsbFwiPlNlbGZpZTwvZGl2PlxuXG4gIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgZG9jdW1lbnRUeXBlU2VsZWN0ZWQgJiZcbiAgICAgICFyZXN1bHQgJiZcbiAgICAgICFlcnJvciAmJlxuICAgICAgbXVsdGlwbGVXZWJjYW1zQXZhaWxhYmxlICYmXG4gICAgICAhcHJldmlld1xuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDBweCAxNnB4XCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7IHdpZHRoOiAyMDBweDsgbWFyZ2luLXRvcDogOHB4XCJcbiAgICAgICAgICBjbGFzcz1cInctMjAwIG1yLTE2IG10LThcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1sYWJlbD4gQ2FtZXJhIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdENhbWVyYSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGV2aWNlSWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkZXZpY2Ugb2YgbWVkaWFEZXZpY2VzXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImRldmljZS5kZXZpY2VJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGRldmljZS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cblxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdkZXNrdG9wJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNlbmRNb2JpbGUoKVwiPlxuICAgICAgPG1hdC1pY29uPnRhYmxldF9tYWM8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj4gLS0+XG48L2hlYWRlcj5cblxuPGRpdiAqbmdJZj1cIiFyZXN1bHRcIiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgPGRpdiBmeEZsZXggI3dyYXBlciBjbGFzcz1cIndyYXBlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgPGRpdlxuICAgICAgc3R5bGU9XCJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XG4gICAgICBcIlxuICAgICAgKm5nSWY9XCIhY2FtZXJhUmVhZHkgJiYgIXByZXZpZXdcIlxuICAgID5cbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlcnJvclwiPlxuICAgICAgPCEtLSA8ZGl2XG4gICAgICBjbGFzcz1cInJlY3RhbmdsZVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICd3aWR0aC5weCc6IHZpZGVvSGVpZ2h0ICogMC43NSAqIDEuNTg4LFxuICAgICAgICAnaGVpZ2h0LnB4JzogdmlkZW9IZWlnaHQgKiAwLjc1XG4gICAgICB9XCJcbiAgICA+PC9kaXY+XG4gICAgPHN2Z1xuICAgICAgKm5nSWY9XCJ2aWRlb1dpZHRoXCJcbiAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMHB4XCJcbiAgICAgIHdpZHRoPVwiMFwiXG4gICAgICBoZWlnaHQ9XCIwXCJcbiAgICA+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPGNsaXBQYXRoIGlkPVwibXlDbGlwXCI+XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjZcIlxuICAgICAgICAgICAgc3Ryb2tlLWNvbG9yPVwicmVkXCJcbiAgICAgICAgICAgIFthdHRyLnhdPVwiKHZpZGVvV2lkdGggLSB2aWRlb0hlaWdodCAqIDAuNzUgKiAxLjU4OCkgLyAyXCJcbiAgICAgICAgICAgIFthdHRyLnldPVwiKHZpZGVvSGVpZ2h0ICogMC4yNSkgLyAyXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cInZpZGVvSGVpZ2h0ICogMC43NSAqIDEuNTg4XCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJ2aWRlb0hlaWdodCAqIDAuNzVcIlxuICAgICAgICAgICAgcng9XCIyNVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgIDwvZGVmcz5cbiAgICA8L3N2Zz4gLS0+XG5cbiAgICAgIDxhcHAtd2ViY2FtXG4gICAgICAgICpuZ0lmPVwiIXByZXZpZXcgJiYgIXNjYW5pbmdcIlxuICAgICAgICBjbGFzcz1cIm1haW5cIlxuICAgICAgICBbaW1hZ2VRdWFsaXR5XT1cIjFcIlxuICAgICAgICAjd2ViY2FtXG4gICAgICAgIGZ4RmxleFxuICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgKGltYWdlQ2FwdHVyZSk9XCJoYW5kbGVJbWFnZSgkZXZlbnQpXCJcbiAgICAgICAgW2FsbG93Q2FtZXJhU3dpdGNoXT1cImFsbG93Q2FtZXJhU3dpdGNoXCJcbiAgICAgICAgW3ZpZGVvT3B0aW9uc109XCJ2aWRlb09wdGlvbnNcIlxuICAgICAgICBbc3dpdGNoQ2FtZXJhXT1cIm5leHRXZWJjYW1PYnNlcnZhYmxlXCJcbiAgICAgICAgKGNhbWVyYVN3aXRjaGVkKT1cImNhbWVyYVdhc1N3aXRjaGVkKCRldmVudClcIlxuICAgICAgICAoaW5pdEVycm9yKT1cImhhbmRsZUluaXRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgdHlwZT1cInNlbGZpZVwiXG4gICAgICAgIFt3aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAgICAgKGRlc3Ryb3llZCk9XCJjYW1lcmFPZmYoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2FwcC13ZWJjYW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdlxuICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgZnhGbGV4XG4gICAgICBjbGFzcz1cInByZXZpZXdEYXRhXCJcbiAgICAgICpuZ0lmPVwicHJldmlld1wiXG4gICAgICBzdHlsZT1cInotaW5kZXg6IDIwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzY2FuUHJldmlld1wiXG4gICAgICAgIGZ4RmxleFxuICAgICAgICBmeExheW91dD1cImNvbHVtblwiXG4gICAgICAgICpuZ0lmPVwiIWVycm9yICYmICFzY2FuaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGZ4RmxleFxuICAgICAgICAgIGNsYXNzPVwiaW1hZ2VcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIHByZXZpZXcgKyAnKSdcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGZvb3RlciBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicC04XCI+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW1lcmFSZWFkeVwiXG4gICAgICBjbGFzcz1cInctMTAwLXBcIlxuICAgICAgKm5nSWY9XCIhcHJldmlld1wiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNjYW4oKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgVEFLRSBTRUxGSUVcbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3LTEwMC1wXCJcbiAgICAgICpuZ0lmPVwicHJldmlld1wiXG4gICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcbiAgICAgIGZ4RmxleFxuICAgID5cbiAgICAgIDxidXR0b24gZnhGbGV4IGNsYXNzPVwibXItNFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJyZXRyeSgpXCI+XG4gICAgICAgIFJFVFJZXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBbZGlzYWJsZWRdPVwiZXJyb3JcIlxuICAgICAgICBmeEZsZXhcbiAgICAgICAgY2xhc3M9XCJtbC00XCJcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNvbnRpbnVlKClcIlxuICAgICAgPlxuICAgICAgQ09OVElOVUVcblxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9vdGVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BlankComponent } from './components/blank/blank.component';
|
|
3
|
+
import { ScanProfileComponent } from './components/scan-profile/scan-profile.component';
|
|
4
|
+
import { LoadingComponent } from './components/loading/loading.component';
|
|
5
|
+
import { ConfirmComponent } from './components/confirm/confirm.component';
|
|
6
|
+
import { ScanMobileComponent } from './components/scan-mobile/scan-mobile.component';
|
|
7
|
+
import { ScanSelfieComponent } from './components/scan-selfie/scan-selfie.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/dialog";
|
|
10
|
+
export class DialogsCoreProvider {
|
|
11
|
+
constructor(matDialog) {
|
|
12
|
+
this.matDialog = matDialog;
|
|
13
|
+
this.components = {
|
|
14
|
+
ScanProfile: { component: ScanProfileComponent },
|
|
15
|
+
Loading: { component: LoadingComponent },
|
|
16
|
+
ConfirmComponent: { component: ConfirmComponent },
|
|
17
|
+
ScanMobileComponent: { component: ScanMobileComponent },
|
|
18
|
+
ScanSelfie: { component: ScanSelfieComponent },
|
|
19
|
+
};
|
|
20
|
+
this.blank = BlankComponent;
|
|
21
|
+
}
|
|
22
|
+
getComponent(name) {
|
|
23
|
+
if (!this.components[name]) {
|
|
24
|
+
console.warn('Component missing', name, this.components);
|
|
25
|
+
}
|
|
26
|
+
return this.components[name].component;
|
|
27
|
+
}
|
|
28
|
+
open(config, withComponent = true) {
|
|
29
|
+
// console.log(config);
|
|
30
|
+
const panelClass = config.panelClass ? config.panelClass : config.name;
|
|
31
|
+
const component = this.getComponent(config.name);
|
|
32
|
+
const dialogRef = this.matDialog.open(this.blank, {
|
|
33
|
+
panelClass,
|
|
34
|
+
data: {
|
|
35
|
+
data: config.data,
|
|
36
|
+
withComponent,
|
|
37
|
+
component,
|
|
38
|
+
},
|
|
39
|
+
autoFocus: false,
|
|
40
|
+
width: config.width || '',
|
|
41
|
+
height: config.height || '',
|
|
42
|
+
maxWidth: config.maxWidth || '',
|
|
43
|
+
minWidth: config.minWidth || '',
|
|
44
|
+
maxHeight: config.maxHeight || '',
|
|
45
|
+
minHeight: config.minHeight || '',
|
|
46
|
+
position: config.position || {},
|
|
47
|
+
hasBackdrop: config.hasBackdrop === undefined ? true : config.hasBackdrop,
|
|
48
|
+
disableClose: config.disableClose === undefined ? true : config.disableClose,
|
|
49
|
+
});
|
|
50
|
+
return dialogRef;
|
|
51
|
+
}
|
|
52
|
+
scanProfile(data) {
|
|
53
|
+
return this.open({
|
|
54
|
+
name: 'ScanProfile',
|
|
55
|
+
panelClass: 'ScanProfileComponent',
|
|
56
|
+
data,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Generic loading dialog
|
|
60
|
+
loading(title = '') {
|
|
61
|
+
return this.open({
|
|
62
|
+
name: 'Loading',
|
|
63
|
+
data: { title },
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
alert(title, text) {
|
|
67
|
+
return this.open({
|
|
68
|
+
name: 'ConfirmComponent',
|
|
69
|
+
maxWidth: '600px',
|
|
70
|
+
panelClass: 'DialogNoPadding',
|
|
71
|
+
minWidth: '440px',
|
|
72
|
+
data: { title, text, alert: true },
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
scanMobile(data) {
|
|
76
|
+
return this.open({
|
|
77
|
+
name: 'ScanMobileComponent',
|
|
78
|
+
maxWidth: '600px',
|
|
79
|
+
panelClass: 'DialogNoPadding',
|
|
80
|
+
minWidth: '440px',
|
|
81
|
+
data,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
scanSelfie(data) {
|
|
85
|
+
return this.open({
|
|
86
|
+
name: 'ScanSelfie',
|
|
87
|
+
panelClass: 'ScanProfileComponent',
|
|
88
|
+
data,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
DialogsCoreProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogsCoreProvider, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
93
|
+
DialogsCoreProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogsCoreProvider, providedIn: 'root' });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogsCoreProvider, decorators: [{
|
|
95
|
+
type: Injectable,
|
|
96
|
+
args: [{
|
|
97
|
+
providedIn: 'root',
|
|
98
|
+
}]
|
|
99
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9ncy5jb3JlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL2RpYWxvZ3MvZGlhbG9ncy5jb3JlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVR4QyxlQUFVLEdBQVE7WUFDaEIsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFO1lBQ2hELE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUN4QyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUNqRCxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRTtZQUN2RCxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7U0FDL0MsQ0FBQztRQUNNLFVBQUssR0FBRyxjQUFjLENBQUM7SUFFWSxDQUFDO0lBQ3BDLFlBQVksQ0FBQyxJQUFTO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFF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QUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUUsc0JBQXNCO1lBQ2xDLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEF2RlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlhbG9nUG9zaXRpb24sXG4gIE1hdERpYWxvZyxcbiAgTWF0RGlhbG9nUmVmLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsYW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JsYW5rL2JsYW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2FuUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zY2FuLXByb2ZpbGUvc2Nhbi1wcm9maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjYW5Nb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2Nhbi1tb2JpbGUvc2Nhbi1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNjYW5TZWxmaWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2Nhbi1zZWxmaWUvc2Nhbi1zZWxmaWUuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ3NDb3JlUHJvdmlkZXIge1xuICBjb21wb25lbnRzOiBhbnkgPSB7XG4gICAgU2NhblByb2ZpbGU6IHsgY29tcG9uZW50OiBTY2FuUHJvZmlsZUNvbXBvbmVudCB9LFxuICAgIExvYWRpbmc6IHsgY29tcG9uZW50OiBMb2FkaW5nQ29tcG9uZW50IH0sXG4gICAgQ29uZmlybUNvbXBvbmVudDogeyBjb21wb25lbnQ6IENvbmZpcm1Db21wb25lbnQgfSxcbiAgICBTY2FuTW9iaWxlQ29tcG9uZW50OiB7IGNvbXBvbmVudDogU2Nhbk1vYmlsZUNvbXBvbmVudCB9LFxuICAgIFNjYW5TZWxmaWU6IHsgY29tcG9uZW50OiBTY2FuU2VsZmllQ29tcG9uZW50IH0sXG4gIH07XG4gIHByaXZhdGUgYmxhbmsgPSBCbGFua0NvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nKSB7fVxuICBwcml2YXRlIGdldENvbXBvbmVudChuYW1lOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50c1tuYW1lXSkge1xuICAgICAgY29uc29sZS53YXJuKCdDb21wb25lbnQgbWlzc2luZycsIG5hbWUsIHRoaXMuY29tcG9uZW50cyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudHNbbmFtZV0uY29tcG9uZW50O1xuICB9XG4gIHB1YmxpYyBvcGVuKGNvbmZpZzogYW55LCB3aXRoQ29tcG9uZW50ID0gdHJ1ZSkge1xuICAgIC8vIGNvbnNvbGUubG9nKGNvbmZpZyk7XG4gICAgY29uc3QgcGFuZWxDbGFzcyA9IGNvbmZpZy5wYW5lbENsYXNzID8gY29uZmlnLnBhbmVsQ2xhc3MgOiBjb25maWcubmFtZTtcblxuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KGNvbmZpZy5uYW1lKTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4odGhpcy5ibGFuaywge1xuICAgICAgcGFuZWxDbGFzcyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGF0YTogY29uZmlnLmRhdGEsXG4gICAgICAgIHdpdGhDb21wb25lbnQsXG4gICAgICAgIGNvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgd2lkdGg6IGNvbmZpZy53aWR0aCB8fCAnJyxcbiAgICAgIGhlaWdodDogY29uZmlnLmhlaWdodCB8fCAnJyxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGggfHwgJycsXG4gICAgICBtaW5XaWR0aDogY29uZmlnLm1pbldpZHRoIHx8ICcnLFxuICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4SGVpZ2h0IHx8ICcnLFxuICAgICAgbWluSGVpZ2h0OiBjb25maWcubWluSGVpZ2h0IHx8ICcnLFxuICAgICAgcG9zaXRpb246IGNvbmZpZy5wb3NpdGlvbiB8fCB7fSxcbiAgICAgIGhhc0JhY2tkcm9wOiBjb25maWcuaGFzQmFja2Ryb3AgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuaGFzQmFja2Ryb3AsXG4gICAgICBkaXNhYmxlQ2xvc2U6XG4gICAgICAgIGNvbmZpZy5kaXNhYmxlQ2xvc2UgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuZGlzYWJsZUNsb3NlLFxuICAgIH0pO1xuXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG4gIHB1YmxpYyBzY2FuUHJvZmlsZShkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuKHtcbiAgICAgIG5hbWU6ICdTY2FuUHJvZmlsZScsXG4gICAgICBwYW5lbENsYXNzOiAnU2NhblByb2ZpbGVDb21wb25lbnQnLFxuICAgICAgZGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEdlbmVyaWMgbG9hZGluZyBkaWFsb2dcbiAgcHVibGljIGxvYWRpbmcodGl0bGU6IHN0cmluZyA9ICcnKSB7XG4gICAgcmV0dXJuIHRoaXMub3Blbih7XG4gICAgICBuYW1lOiAnTG9hZGluZycsXG4gICAgICBkYXRhOiB7IHRpdGxlIH0sXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGFsZXJ0KHRpdGxlOiBzdHJpbmcsIHRleHQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgbmFtZTogJ0NvbmZpcm1Db21wb25lbnQnLFxuICAgICAgbWF4V2lkdGg6ICc2MDBweCcsXG4gICAgICBwYW5lbENsYXNzOiAnRGlhbG9nTm9QYWRkaW5nJyxcblxuICAgICAgbWluV2lkdGg6ICc0NDBweCcsXG4gICAgICBkYXRhOiB7IHRpdGxlLCB0ZXh0LCBhbGVydDogdHJ1ZSB9LFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBzY2FuTW9iaWxlKGRhdGE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgbmFtZTogJ1NjYW5Nb2JpbGVDb21wb25lbnQnLFxuICAgICAgbWF4V2lkdGg6ICc2MDBweCcsXG4gICAgICBwYW5lbENsYXNzOiAnRGlhbG9nTm9QYWRkaW5nJyxcblxuICAgICAgbWluV2lkdGg6ICc0NDBweCcsXG4gICAgICBkYXRhLFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBzY2FuU2VsZmllKGRhdGE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgbmFtZTogJ1NjYW5TZWxmaWUnLFxuICAgICAgcGFuZWxDbGFzczogJ1NjYW5Qcm9maWxlQ29tcG9uZW50JyxcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|