react-native-timacare 2.0.2 → 2.0.4

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.
Files changed (78) hide show
  1. package/lib/commonjs/assets/img/blink.png +0 -0
  2. package/lib/commonjs/assets/img/down.png +0 -0
  3. package/lib/commonjs/assets/img/left.png +0 -0
  4. package/lib/commonjs/assets/img/mouth.png +0 -0
  5. package/lib/commonjs/assets/img/right.png +0 -0
  6. package/lib/commonjs/assets/img/up.png +0 -0
  7. package/lib/commonjs/screens/full-submit/selfie.js +1 -1
  8. package/lib/commonjs/screens/full-submit/selfie.js.flow +2 -1
  9. package/lib/commonjs/screens/full-submit/selfie.js.map +1 -1
  10. package/lib/commonjs/screens/home/index.js +1 -1
  11. package/lib/commonjs/screens/home/index.js.flow +1 -0
  12. package/lib/commonjs/screens/home/index.js.map +1 -1
  13. package/lib/commonjs/screens/liveness/LivenessStore.js +1 -1
  14. package/lib/commonjs/screens/liveness/LivenessStore.js.flow +146 -0
  15. package/lib/commonjs/screens/liveness/LivenessStore.js.map +1 -1
  16. package/lib/commonjs/screens/liveness/index.js +1 -1
  17. package/lib/commonjs/screens/liveness/index.js.flow +4 -0
  18. package/lib/commonjs/screens/liveness/index.js.map +1 -1
  19. package/lib/commonjs/screens/liveness-v2/index.js +2 -0
  20. package/lib/commonjs/screens/liveness-v2/index.js.flow +598 -0
  21. package/lib/commonjs/screens/liveness-v2/index.js.map +1 -0
  22. package/lib/commonjs/screens/mrz-scanner/index.js +1 -1
  23. package/lib/commonjs/screens/mrz-scanner/index.js.flow +1 -0
  24. package/lib/commonjs/screens/mrz-scanner/index.js.map +1 -1
  25. package/lib/commonjs/screens/selfie/index.js +1 -1
  26. package/lib/commonjs/screens/selfie/index.js.flow +12 -2
  27. package/lib/commonjs/screens/selfie/index.js.map +1 -1
  28. package/lib/commonjs/services/api/api.js +1 -1
  29. package/lib/commonjs/services/api/api.js.flow +68 -0
  30. package/lib/commonjs/services/api/api.js.map +1 -1
  31. package/lib/module/assets/img/blink.png +0 -0
  32. package/lib/module/assets/img/down.png +0 -0
  33. package/lib/module/assets/img/left.png +0 -0
  34. package/lib/module/assets/img/mouth.png +0 -0
  35. package/lib/module/assets/img/right.png +0 -0
  36. package/lib/module/assets/img/up.png +0 -0
  37. package/lib/module/screens/full-submit/selfie.js +1 -1
  38. package/lib/module/screens/full-submit/selfie.js.map +1 -1
  39. package/lib/module/screens/home/index.js +1 -1
  40. package/lib/module/screens/home/index.js.map +1 -1
  41. package/lib/module/screens/liveness/LivenessStore.js +1 -1
  42. package/lib/module/screens/liveness/LivenessStore.js.map +1 -1
  43. package/lib/module/screens/liveness/index.js +1 -1
  44. package/lib/module/screens/liveness/index.js.map +1 -1
  45. package/lib/module/screens/liveness-v2/index.js +2 -0
  46. package/lib/module/screens/liveness-v2/index.js.map +1 -0
  47. package/lib/module/screens/mrz-scanner/index.js +1 -1
  48. package/lib/module/screens/mrz-scanner/index.js.map +1 -1
  49. package/lib/module/screens/selfie/index.js +1 -1
  50. package/lib/module/screens/selfie/index.js.map +1 -1
  51. package/lib/module/services/api/api.js +1 -1
  52. package/lib/module/services/api/api.js.map +1 -1
  53. package/lib/typescript/screens/full-submit/selfie.d.ts.map +1 -1
  54. package/lib/typescript/screens/home/index.d.ts.map +1 -1
  55. package/lib/typescript/screens/liveness/LivenessStore.d.ts +7 -0
  56. package/lib/typescript/screens/liveness/LivenessStore.d.ts.map +1 -1
  57. package/lib/typescript/screens/liveness/index.d.ts.map +1 -1
  58. package/lib/typescript/screens/liveness-v2/index.d.ts +2 -0
  59. package/lib/typescript/screens/liveness-v2/index.d.ts.map +1 -0
  60. package/lib/typescript/screens/mrz-scanner/index.d.ts.map +1 -1
  61. package/lib/typescript/screens/selfie/index.d.ts.map +1 -1
  62. package/lib/typescript/services/api/api.d.ts +64 -0
  63. package/lib/typescript/services/api/api.d.ts.map +1 -1
  64. package/package.json +2 -1
  65. package/src/assets/img/blink.png +0 -0
  66. package/src/assets/img/down.png +0 -0
  67. package/src/assets/img/left.png +0 -0
  68. package/src/assets/img/mouth.png +0 -0
  69. package/src/assets/img/right.png +0 -0
  70. package/src/assets/img/up.png +0 -0
  71. package/src/screens/full-submit/selfie.tsx +2 -1
  72. package/src/screens/home/index.tsx +1 -0
  73. package/src/screens/liveness/LivenessStore.tsx +146 -0
  74. package/src/screens/liveness/index.tsx +4 -0
  75. package/src/screens/liveness-v2/index.tsx +598 -0
  76. package/src/screens/mrz-scanner/index.tsx +1 -0
  77. package/src/screens/selfie/index.tsx +12 -2
  78. package/src/services/api/api.ts +68 -0
@@ -0,0 +1,598 @@
1
+ //@ts-nocheck
2
+ import React, { useRef, useState } from 'react';
3
+ import { CommonActions, useNavigation } from '@react-navigation/native';
4
+ import { Observer, observer } from 'mobx-react-lite';
5
+ import {
6
+ ActivityIndicator,
7
+ Alert,
8
+ Dimensions,
9
+ Image,
10
+ Modal,
11
+ Platform,
12
+ StyleSheet,
13
+ TouchableOpacity,
14
+ View,
15
+ } from 'react-native';
16
+ import CircularProgress from 'react-native-circular-progress-indicator';
17
+ import RNFS, { CachesDirectoryPath } from 'react-native-fs';
18
+ import { RNFFmpeg } from 'react-native-ffmpeg';
19
+ import {
20
+ PERMISSIONS,
21
+ RESULTS,
22
+ openSettings,
23
+ request,
24
+ } from 'react-native-permissions';
25
+ import DeviceInfo from 'react-native-device-info';
26
+ import { IconBackWhite, IconEkyc } from '../../assets/icons';
27
+ import { MText } from '../../components/MText';
28
+ import { RNCamera } from 'react-native-camera';
29
+ import livenessStore from '../liveness/LivenessStore';
30
+ import { commonStyles } from '../CommonStyles';
31
+ import { ScreenNames } from '../../navigation';
32
+ import { color } from '../../theme';
33
+
34
+ const { width: windowWidth } = Dimensions.get('window');
35
+
36
+ const PREVIEW_SIZE = 320;
37
+ const PREVIEW_RECT = {
38
+ minX: (windowWidth - PREVIEW_SIZE) / 2,
39
+ minY: 240,
40
+ width: PREVIEW_SIZE,
41
+ height: PREVIEW_SIZE,
42
+ };
43
+ export const LivenessV2 = observer(function LivenessV2(props: any) {
44
+ const loan = props.route.params?.loan;
45
+ const navigation = useNavigation();
46
+ const cameraRef = useRef<any>(null);
47
+ const interval = useRef<any>(null);
48
+ const [passPermission, setPassPermission] = useState(false);
49
+ const [isLoading, setIsLoading] = useState(false);
50
+
51
+ const renderHint = (key: string) => {
52
+ switch (key) {
53
+ case 'blink':
54
+ return 'Nhắm mắt trong 3 giây';
55
+ case 'right':
56
+ return 'Quay sang phải 3 giây';
57
+ case 'left':
58
+ return 'Quay sang trái 3 giây';
59
+ case 'up':
60
+ return 'Nhìn lên trên 3 giây';
61
+ case 'down':
62
+ return 'Nhìn xuống dưới 3 giây';
63
+ case 'mouth':
64
+ return 'Há miệng trong 3 giây';
65
+ default:
66
+ return '';
67
+ }
68
+ };
69
+ const renderImg = (key: string) => {
70
+ switch (key) {
71
+ case 'blink':
72
+ return (
73
+ <Image
74
+ source={require('../../assets/img/blink.png')}
75
+ style={{
76
+ height: 24,
77
+ width: 50,
78
+ resizeMode: 'contain',
79
+ marginTop: 40,
80
+ }}
81
+ />
82
+ );
83
+ case 'right':
84
+ return (
85
+ <Image
86
+ source={require('../../assets/img/right.png')}
87
+ style={{
88
+ height: 24,
89
+ width: 50,
90
+ resizeMode: 'contain',
91
+ marginTop: 40,
92
+ }}
93
+ />
94
+ );
95
+ case 'left':
96
+ return (
97
+ <Image
98
+ source={require('../../assets/img/left.png')}
99
+ style={{
100
+ height: 24,
101
+ width: 50,
102
+ resizeMode: 'contain',
103
+ marginTop: 40,
104
+ }}
105
+ />
106
+ );
107
+ case 'up':
108
+ return (
109
+ <Image
110
+ source={require('../../assets/img/up.png')}
111
+ style={{
112
+ height: 24,
113
+ width: 50,
114
+ resizeMode: 'contain',
115
+ marginTop: 40,
116
+ }}
117
+ />
118
+ );
119
+ case 'down':
120
+ return (
121
+ <Image
122
+ source={require('../../assets/img/down.png')}
123
+ style={{
124
+ height: 24,
125
+ width: 50,
126
+ resizeMode: 'contain',
127
+ marginTop: 40,
128
+ }}
129
+ />
130
+ );
131
+ case 'mouth':
132
+ return (
133
+ <Image
134
+ source={require('../../assets/img/mouth.png')}
135
+ style={{
136
+ height: 24,
137
+ width: 50,
138
+ resizeMode: 'contain',
139
+ marginTop: 40,
140
+ }}
141
+ />
142
+ );
143
+ default:
144
+ return <></>;
145
+ }
146
+ };
147
+
148
+ const requestPermissions = () => {
149
+ request(
150
+ Platform.OS === 'ios'
151
+ ? PERMISSIONS.IOS.CAMERA
152
+ : PERMISSIONS.ANDROID.CAMERA
153
+ ).then((result) => {
154
+ switch (result) {
155
+ case RESULTS.UNAVAILABLE:
156
+ console.log(
157
+ 'This feature is not available (on this device / in this context)'
158
+ );
159
+ Alert.alert(
160
+ 'Thông báo',
161
+ 'Máy ảnh trên thiết bị không tương thích.\nVui lòng kiểm tra lại thiết bị!',
162
+ [{ text: 'Đồng ý' }]
163
+ );
164
+ break;
165
+ case RESULTS.DENIED:
166
+ console.log(
167
+ 'The permission has not been requested / is denied but requestable'
168
+ );
169
+ Alert.alert(
170
+ 'Thông báo',
171
+ 'Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',
172
+ [
173
+ {
174
+ text: 'Đồng ý',
175
+ onPress: () => {
176
+ if (Platform.OS === 'ios') {
177
+ openSettings();
178
+ } else {
179
+ requestPermissions();
180
+ }
181
+ },
182
+ },
183
+ ]
184
+ );
185
+ break;
186
+
187
+ case RESULTS.GRANTED:
188
+ console.log('The permission is granted');
189
+ setPassPermission(true);
190
+ break;
191
+ case RESULTS.BLOCKED:
192
+ console.log('The permission is denied and not requestable anymore');
193
+ Alert.alert(
194
+ 'Thông báo',
195
+ 'Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',
196
+ [
197
+ {
198
+ text: 'Đồng ý',
199
+ onPress: () => {
200
+ if (Platform.OS === 'ios') {
201
+ openSettings();
202
+ } else {
203
+ openSettings();
204
+ }
205
+ },
206
+ },
207
+ ]
208
+ );
209
+ break;
210
+ }
211
+ });
212
+ };
213
+
214
+ let second = 3;
215
+
216
+ const start = () => {
217
+ requestPermissions();
218
+ livenessStore.getListAction(() => {
219
+ if (passPermission) {
220
+ interval.current = setInterval(() => {
221
+ second--;
222
+ if (second === 0) {
223
+ clearInterval(interval.current);
224
+ startLiveness();
225
+ }
226
+ }, 1000);
227
+ }
228
+ });
229
+ };
230
+
231
+ useEffect(() => {
232
+ start();
233
+ }, [passPermission]);
234
+
235
+ const uploadLiveness = async (template: any) => {
236
+ try {
237
+ const listImage = [];
238
+ for (let i = 1; i <= 3; i++) {
239
+ const file = 'file://' + template + `_img_${('000' + i).slice(-4)}.jpg`;
240
+ const imgBase64 = await RNFS.readFile(file, 'base64');
241
+ listImage.push(imgBase64);
242
+ }
243
+ await livenessStore.verifyLiveness(
244
+ loan?.id,
245
+ listImage,
246
+ () => {
247
+ setTimeout(() => {
248
+ startLiveness();
249
+ }, 2000);
250
+ setIsLoading(false);
251
+ },
252
+ () => {
253
+ setTimeout(() => {
254
+ startLiveness();
255
+ }, 2000);
256
+ setIsLoading(false);
257
+ }
258
+ );
259
+ } catch (error) {
260
+ setIsLoading(false);
261
+ }
262
+ };
263
+
264
+ const captureFromVideo = async (uri: any) => {
265
+ try {
266
+ const time = new Date().getTime();
267
+ const template = CachesDirectoryPath + '/' + time;
268
+ const output = template + '_img_%04d.jpg';
269
+ RNFFmpeg.execute(`-i ${uri} -r 2 ${output}`)
270
+ .then((result) => {
271
+ console.log(`FFmpeg process exited with rc=${result}.`);
272
+ if (result === 0) {
273
+ uploadLiveness(template);
274
+ console.log('FFmpeg template', template);
275
+ } else {
276
+ setIsLoading(false);
277
+ Alert.alert(
278
+ 'Thông báo',
279
+ 'Quá trình xử lý hình ảnh bị lỗi. Vui lòng thử lại.',
280
+ [
281
+ {
282
+ text: 'Đồng ý',
283
+ onPress: () => {
284
+ startLiveness;
285
+ },
286
+ },
287
+ ]
288
+ );
289
+ }
290
+ })
291
+ .catch((err) => {
292
+ console.log(err);
293
+ });
294
+ } catch (error) {
295
+ setIsLoading(false);
296
+ }
297
+ };
298
+
299
+ const startLiveness = async () => {
300
+ livenessStore.ekycSuccess = false;
301
+ if (livenessStore.listAction.length === 0) {
302
+ livenessStore.ekycSuccess = true;
303
+ livenessStore.saveLiveness(loan.id);
304
+ return;
305
+ }
306
+ if (cameraRef) {
307
+ const videoFile =
308
+ CachesDirectoryPath + '/' + new Date().getTime() + '.mp4';
309
+ const options = {
310
+ quality: RNCamera.Constants.VideoQuality['720p'],
311
+ maxDuration: 3,
312
+ path: videoFile,
313
+ /** iOS only */
314
+ codec: 'H264',
315
+ fps: 30,
316
+ };
317
+ const data = await cameraRef.current.recordAsync(options);
318
+ if (data.uri) {
319
+ setIsLoading(true);
320
+ captureFromVideo(data.uri);
321
+ } else {
322
+ Alert.alert('Thông báo', 'Quá trình xác thực thất bại', [
323
+ {
324
+ text: 'Thử lại',
325
+ onPress: () => {
326
+ startLiveness();
327
+ },
328
+ },
329
+ ]);
330
+ }
331
+ }
332
+ };
333
+ return (
334
+ <View style={styles.container}>
335
+ <TouchableOpacity
336
+ onPress={() => {
337
+ navigation.goBack();
338
+ }}
339
+ style={{
340
+ position: 'absolute',
341
+ left: 16,
342
+ top: DeviceInfo.hasNotch() ? 70 : 16,
343
+ width: 40,
344
+ height: 40,
345
+ zIndex: 1000,
346
+ }}
347
+ >
348
+ <IconBackWhite />
349
+ </TouchableOpacity>
350
+ <View style={styles.topOverlay}>
351
+ <MText
352
+ style={{
353
+ color: 'white',
354
+ fontWeight: '600',
355
+ fontSize: 16,
356
+ }}
357
+ >
358
+ Xác thực khuôn mặt
359
+ </MText>
360
+ <Observer>
361
+ {() => (
362
+ <>
363
+ {isLoading ? (
364
+ <View style={{ marginTop: 24 }}>
365
+ <MText
366
+ style={{
367
+ textAlign: 'center',
368
+ fontSize: 16,
369
+ color: 'white',
370
+ }}
371
+ >
372
+ Đang xác thực
373
+ </MText>
374
+ <ActivityIndicator
375
+ size={'large'}
376
+ color={'white'}
377
+ style={{ marginTop: 8 }}
378
+ />
379
+ </View>
380
+ ) : (
381
+ <></>
382
+ )}
383
+ </>
384
+ )}
385
+ </Observer>
386
+ </View>
387
+
388
+ <View style={styles.preview}>
389
+ <RNCamera
390
+ playSoundOnCapture={false}
391
+ ref={cameraRef}
392
+ style={StyleSheet.absoluteFill}
393
+ captureAudio={false}
394
+ type={RNCamera.Constants.Type.front}
395
+ androidCameraPermissionOptions={{
396
+ title: 'Permission to use camera',
397
+ message: 'We need your permission to use your camera',
398
+ buttonPositive: 'Ok',
399
+ buttonNegative: 'Cancel',
400
+ }}
401
+ androidRecordAudioPermissionOptions={{
402
+ title: 'Permission to use audio recording',
403
+ message: 'We need your permission to use your audio',
404
+ buttonPositive: 'Ok',
405
+ buttonNegative: 'Cancel',
406
+ }}
407
+ autoFocus="on"
408
+ >
409
+ <View
410
+ style={{
411
+ height: '100%',
412
+ width: '100%',
413
+ justifyContent: 'center',
414
+ alignItems: 'center',
415
+ }}
416
+ >
417
+ {renderImg(livenessStore.hintAction)}
418
+ <MText
419
+ style={{
420
+ color: 'white',
421
+ fontSize: 16,
422
+ marginTop: 8,
423
+ fontWeight: '400',
424
+ }}
425
+ >
426
+ {renderHint(livenessStore.hintAction)}
427
+ </MText>
428
+ </View>
429
+ </RNCamera>
430
+ </View>
431
+
432
+ <View style={styles.circularProgress}>
433
+ <CircularProgress
434
+ dashedStrokeConfig={{
435
+ count: 100,
436
+ width: 7,
437
+ }}
438
+ value={
439
+ livenessStore.listAction.length === 3
440
+ ? 0
441
+ : livenessStore.listAction.length === 2
442
+ ? 100 / 3
443
+ : livenessStore.listAction.length === 1
444
+ ? (2 / 3) * 100
445
+ : 100
446
+ }
447
+ radius={PREVIEW_SIZE / 2}
448
+ inActiveStrokeOpacity={0.5}
449
+ activeStrokeWidth={13}
450
+ inActiveStrokeWidth={13}
451
+ showProgressValue={false}
452
+ activeStrokeColor="#F05123"
453
+ inActiveStrokeColor="#F05123"
454
+ duration={800}
455
+ />
456
+ </View>
457
+ <Observer>
458
+ {() => (
459
+ <View style={styles.bottomOverlay}>
460
+ <MText style={styles.instructionText}>
461
+ Vui lòng điều chỉnh khuôn mặt nằm gọn trong vòng tròn ở trên
462
+ </MText>
463
+ </View>
464
+ )}
465
+ </Observer>
466
+
467
+ <Modal
468
+ visible={livenessStore.ekycSuccess}
469
+ animationType={'fade'}
470
+ transparent
471
+ >
472
+ <View
473
+ style={[
474
+ commonStyles.alignCenter,
475
+ commonStyles.justifyCenter,
476
+ { backgroundColor: 'transparent', height: '100%' },
477
+ ]}
478
+ >
479
+ <View
480
+ style={[
481
+ commonStyles.alignCenter,
482
+ commonStyles.justifyCenter,
483
+ {
484
+ backgroundColor: 'white',
485
+ borderRadius: 8,
486
+ padding: 16,
487
+ marginHorizontal: 16,
488
+ },
489
+ ]}
490
+ >
491
+ <IconEkyc />
492
+ <MText
493
+ style={[
494
+ commonStyles.textNormalBold,
495
+ { marginTop: 16, textAlign: 'center' },
496
+ ]}
497
+ >
498
+ Chúc mừng bạn đã thực hiện xác thực khách hàng{'\n'}thành công.
499
+ </MText>
500
+ <TouchableOpacity
501
+ style={{
502
+ marginTop: 16,
503
+ backgroundColor: color.primary,
504
+ height: 40,
505
+ alignItems: 'center',
506
+ borderRadius: 30,
507
+ width: 150,
508
+ justifyContent: 'center',
509
+ }}
510
+ onPress={() => {
511
+ livenessStore.ekycSuccess = false;
512
+ navigation.dispatch(
513
+ CommonActions.reset({
514
+ index: 1,
515
+ routes: [{ name: ScreenNames.Main }],
516
+ })
517
+ );
518
+ }}
519
+ >
520
+ <MText style={[commonStyles.textNormalBold, { color: 'white' }]}>
521
+ Đồng ý
522
+ </MText>
523
+ </TouchableOpacity>
524
+ </View>
525
+ </View>
526
+ </Modal>
527
+ </View>
528
+ );
529
+ });
530
+
531
+ const styles = StyleSheet.create({
532
+ instructionText: {
533
+ color: 'white',
534
+ fontSize: 12,
535
+ textAlign: 'center',
536
+ paddingHorizontal: 50,
537
+ marginTop: 16,
538
+ },
539
+ bottomOverlay: {
540
+ marginTop: 24,
541
+ },
542
+ maskedView: {
543
+ flex: 1,
544
+ flexDirection: 'row',
545
+ height: '100%',
546
+ },
547
+ maskWrapper: {
548
+ backgroundColor: 'transparent',
549
+ flex: 1,
550
+ justifyContent: 'center',
551
+ alignItems: 'center',
552
+ },
553
+ mask: {
554
+ borderRadius: PREVIEW_SIZE / 2,
555
+ height: PREVIEW_SIZE - 10,
556
+ width: PREVIEW_SIZE - 10,
557
+ marginTop: PREVIEW_RECT.minY,
558
+ alignSelf: 'center',
559
+ },
560
+ container: {
561
+ flex: 1,
562
+ flexDirection: 'column',
563
+ backgroundColor: '#333333',
564
+ },
565
+ topOverlay: {
566
+ position: 'absolute',
567
+ top: DeviceInfo.hasNotch() ? 70 : 16,
568
+ right: 0,
569
+ left: 0,
570
+ justifyContent: 'center',
571
+ alignItems: 'center',
572
+ },
573
+ captureFrame: {
574
+ height: Dimensions.get('window').width - 50,
575
+ marginHorizontal: 16,
576
+ marginTop: '50%',
577
+ borderRadius: 50,
578
+ },
579
+ preview: {
580
+ width: PREVIEW_SIZE - 29,
581
+ height: PREVIEW_SIZE - 28,
582
+ marginTop: PREVIEW_RECT.minY + 14,
583
+ marginLeft: PREVIEW_RECT.minX + 14,
584
+ borderRadius: PREVIEW_SIZE / 2,
585
+ overflow: 'hidden',
586
+ },
587
+ circularProgress: {
588
+ width: PREVIEW_SIZE,
589
+ height: PREVIEW_SIZE,
590
+ marginTop: PREVIEW_RECT.minY,
591
+ marginLeft: PREVIEW_RECT.minX,
592
+ zIndex: 100,
593
+ position: 'absolute',
594
+ top: 0,
595
+ left: 0,
596
+ right: 0,
597
+ },
598
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_native","_mobxReactLite","_reactNative","_reactNativeCircularProgressIndicator","_interopRequireDefault","_reactNativeFs","_reactNativeFfmpeg","_reactNativePermissions","_reactNativeDeviceInfo","_icons","_MText","_reactNativeCamera","_LivenessStore","_CommonStyles","_navigation","_theme","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_Dimensions$get","Dimensions","windowWidth","width","PREVIEW_SIZE","PREVIEW_RECT","minX","minY","height","LivenessV2","exports","observer","props","_props$route$params","_this","loan","route","params","navigation","useNavigation","cameraRef","useRef","interval","_useState","useState","_useState2","_slicedToArray2","passPermission","setPassPermission","_useState3","_useState4","isLoading","setIsLoading","renderHint","key","renderImg","createElement","Image","source","style","resizeMode","marginTop","__self","__source","fileName","lineNumber","columnNumber","Fragment","requestPermissions","request","Platform","OS","PERMISSIONS","IOS","CAMERA","ANDROID","then","result","RESULTS","UNAVAILABLE","console","log","Alert","alert","text","DENIED","onPress","openSettings","GRANTED","BLOCKED","second","start","livenessStore","getListAction","current","setInterval","clearInterval","startLiveness","useEffect","uploadLiveness","_callee","template","listImage","file","imgBase64","_regenerator","async","_callee$","_context","prev","next","slice","awrap","RNFS","readFile","sent","push","verifyLiveness","id","setTimeout","t0","stop","Promise","captureFromVideo","_callee2","uri","time","output","_callee2$","_context2","Date","getTime","CachesDirectoryPath","RNFFmpeg","execute","catch","err","error","_callee3","videoFile","options","data","_callee3$","_context3","ekycSuccess","listAction","length","saveLiveness","abrupt","quality","RNCamera","Constants","VideoQuality","maxDuration","path","codec","fps","recordAsync","View","styles","container","TouchableOpacity","goBack","position","left","top","DeviceInfo","hasNotch","zIndex","IconBackWhite","topOverlay","MText","color","fontWeight","fontSize","Observer","textAlign","ActivityIndicator","size","preview","playSoundOnCapture","ref","StyleSheet","absoluteFill","captureAudio","type","Type","front","androidCameraPermissionOptions","title","message","buttonPositive","buttonNegative","androidRecordAudioPermissionOptions","autoFocus","justifyContent","alignItems","hintAction","circularProgress","dashedStrokeConfig","count","value","radius","inActiveStrokeOpacity","activeStrokeWidth","inActiveStrokeWidth","showProgressValue","activeStrokeColor","inActiveStrokeColor","duration","bottomOverlay","instructionText","Modal","visible","animationType","transparent","commonStyles","alignCenter","justifyCenter","backgroundColor","borderRadius","padding","marginHorizontal","IconEkyc","textNormalBold","primary","dispatch","CommonActions","reset","index","routes","name","ScreenNames","Main","create","paddingHorizontal","maskedView","flex","flexDirection","maskWrapper","mask","alignSelf","right","captureFrame","marginLeft","overflow"],"sourceRoot":"../../../../src","sources":["screens/liveness-v2/index.tsx"],"mappings":"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"}