react-native-timacare 3.3.56-alert → 3.3.58-cccd
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/lib/commonjs/assets/icons/index.js +1 -1
- package/lib/commonjs/assets/icons/index.js.flow +2 -0
- package/lib/commonjs/assets/icons/index.js.map +1 -1
- package/lib/commonjs/assets/icons/modal_confirm.svg +5 -5
- package/lib/commonjs/assets/icons/modal_notice.svg +32 -32
- package/lib/commonjs/assets/icons/modal_success.svg +26 -26
- package/lib/commonjs/assets/icons/modal_warning.svg +21 -21
- package/lib/commonjs/assets/icons/user_security.svg +10 -0
- package/lib/commonjs/assets/tts/Frame1000011947.png +0 -0
- package/lib/commonjs/components/AlertLoan.js +1 -1
- package/lib/commonjs/components/AlertLoan.js.flow +1 -1
- package/lib/commonjs/components/AlertLoan.js.map +1 -1
- package/lib/commonjs/components/AppModal.js +1 -1
- package/lib/commonjs/components/AppModal.js.flow +40 -2
- package/lib/commonjs/components/AppModal.js.map +1 -1
- package/lib/commonjs/components/ItemTimaOne.js +1 -1
- package/lib/commonjs/components/ItemTimaOne.js.flow +1 -1
- package/lib/commonjs/components/ItemTimaOne.js.map +1 -1
- package/lib/commonjs/components/ModalNotification/AlertGlobal.js +1 -1
- package/lib/commonjs/components/ModalNotification/AlertGlobal.js.flow +92 -33
- package/lib/commonjs/components/ModalNotification/AlertGlobal.js.map +1 -1
- package/lib/commonjs/components/ModalNotification/index.js +1 -1
- package/lib/commonjs/components/ModalNotification/index.js.flow +7 -0
- package/lib/commonjs/components/ModalNotification/index.js.map +1 -1
- package/lib/commonjs/components/ModalOptionLoan.js +1 -1
- package/lib/commonjs/components/ModalOptionLoan.js.flow +1 -1
- package/lib/commonjs/components/ModalOptionLoan.js.map +1 -1
- package/lib/commonjs/components/ModalOptionLoanDigital.js +1 -1
- package/lib/commonjs/components/ModalOptionLoanDigital.js.flow +1 -1
- package/lib/commonjs/components/ModalOptionLoanDigital.js.map +1 -1
- package/lib/commonjs/components/modalStack.js +2 -0
- package/lib/commonjs/components/modalStack.js.flow +47 -0
- package/lib/commonjs/components/modalStack.js.map +1 -0
- package/lib/commonjs/navigation/primary-navigator.js +1 -1
- package/lib/commonjs/navigation/primary-navigator.js.flow +7 -0
- package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
- package/lib/commonjs/screens/NFC/OcrStart.js +2 -0
- package/lib/commonjs/screens/NFC/OcrStart.js.flow +171 -0
- package/lib/commonjs/screens/NFC/OcrStart.js.map +1 -0
- package/lib/commonjs/screens/NFC/ScanMRZ.js +2 -0
- package/lib/commonjs/screens/NFC/ScanMRZ.js.flow +563 -0
- package/lib/commonjs/screens/NFC/ScanMRZ.js.map +1 -0
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js +1 -1
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js.flow +203 -133
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js.map +1 -1
- package/lib/commonjs/screens/camera/index.js +1 -1
- package/lib/commonjs/screens/camera/index.js.flow +1 -1
- package/lib/commonjs/screens/camera/index.js.map +1 -1
- package/lib/commonjs/screens/detail-loan/PaymentInfo.js +1 -1
- package/lib/commonjs/screens/detail-loan/PaymentInfo.js.flow +1 -1
- package/lib/commonjs/screens/detail-loan/PaymentInfo.js.map +1 -1
- package/lib/commonjs/screens/detail-loan/ShowQrCode.js +1 -1
- package/lib/commonjs/screens/detail-loan/ShowQrCode.js.flow +1 -1
- package/lib/commonjs/screens/detail-loan/ShowQrCode.js.map +1 -1
- package/lib/commonjs/screens/digital-lending/Step6.js +1 -1
- package/lib/commonjs/screens/digital-lending/Step6.js.flow +1 -1
- package/lib/commonjs/screens/digital-lending/Step6.js.map +1 -1
- package/lib/commonjs/screens/eSign/index.js +1 -1
- package/lib/commonjs/screens/eSign/index.js.flow +1 -1
- package/lib/commonjs/screens/eSign/index.js.map +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js.flow +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/commonjs/screens/home/ItemMotoBikeLoan.js +1 -1
- package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +1 -1
- package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.map +1 -1
- package/lib/commonjs/screens/home/index.js +1 -1
- package/lib/commonjs/screens/home/index.js.flow +8 -113
- package/lib/commonjs/screens/home/index.js.map +1 -1
- package/lib/commonjs/screens/nationalID/index.js +1 -1
- package/lib/commonjs/screens/nationalID/index.js.flow +123 -218
- package/lib/commonjs/screens/nationalID/index.js.map +1 -1
- package/lib/commonjs/screens/nationalIDBack/index.js +1 -1
- package/lib/commonjs/screens/nationalIDBack/index.js.flow +129 -209
- package/lib/commonjs/screens/nationalIDBack/index.js.map +1 -1
- package/lib/commonjs/screens/payment-evidence/ModalGuideline.js +1 -1
- package/lib/commonjs/screens/payment-evidence/ModalGuideline.js.flow +1 -1
- package/lib/commonjs/screens/payment-evidence/ModalGuideline.js.map +1 -1
- package/lib/commonjs/screens/toan-trinh-so/OCR.js +1 -1
- package/lib/commonjs/screens/toan-trinh-so/OCR.js.flow +270 -556
- package/lib/commonjs/screens/toan-trinh-so/OCR.js.map +1 -1
- package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js +1 -1
- package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js.flow +1 -1
- package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js.map +1 -1
- package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js +1 -1
- package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.flow +226 -288
- package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
- package/lib/commonjs/utils/cameraCrop.js +2 -0
- package/lib/commonjs/utils/cameraCrop.js.flow +96 -0
- package/lib/commonjs/utils/cameraCrop.js.map +1 -0
- package/lib/module/assets/icons/index.js +1 -1
- package/lib/module/assets/icons/index.js.map +1 -1
- package/lib/module/assets/icons/modal_confirm.svg +5 -5
- package/lib/module/assets/icons/modal_notice.svg +32 -32
- package/lib/module/assets/icons/modal_success.svg +26 -26
- package/lib/module/assets/icons/modal_warning.svg +21 -21
- package/lib/module/assets/icons/user_security.svg +10 -0
- package/lib/module/assets/tts/Frame1000011947.png +0 -0
- package/lib/module/components/AlertLoan.js +1 -1
- package/lib/module/components/AlertLoan.js.map +1 -1
- package/lib/module/components/AppModal.js +1 -1
- package/lib/module/components/AppModal.js.map +1 -1
- package/lib/module/components/ItemTimaOne.js +1 -1
- package/lib/module/components/ItemTimaOne.js.map +1 -1
- package/lib/module/components/ModalNotification/AlertGlobal.js +1 -1
- package/lib/module/components/ModalNotification/AlertGlobal.js.map +1 -1
- package/lib/module/components/ModalNotification/index.js +1 -1
- package/lib/module/components/ModalNotification/index.js.map +1 -1
- package/lib/module/components/ModalOptionLoan.js +1 -1
- package/lib/module/components/ModalOptionLoan.js.map +1 -1
- package/lib/module/components/ModalOptionLoanDigital.js +1 -1
- package/lib/module/components/ModalOptionLoanDigital.js.map +1 -1
- package/lib/module/components/modalStack.js +2 -0
- package/lib/module/components/modalStack.js.map +1 -0
- package/lib/module/navigation/primary-navigator.js +1 -1
- package/lib/module/navigation/primary-navigator.js.map +1 -1
- package/lib/module/screens/NFC/OcrStart.js +2 -0
- package/lib/module/screens/NFC/OcrStart.js.map +1 -0
- package/lib/module/screens/NFC/ScanMRZ.js +2 -0
- package/lib/module/screens/NFC/ScanMRZ.js.map +1 -0
- package/lib/module/screens/camera/CCCDCameraScreen.js +1 -1
- package/lib/module/screens/camera/CCCDCameraScreen.js.map +1 -1
- package/lib/module/screens/camera/index.js +1 -1
- package/lib/module/screens/camera/index.js.map +1 -1
- package/lib/module/screens/detail-loan/PaymentInfo.js +1 -1
- package/lib/module/screens/detail-loan/PaymentInfo.js.map +1 -1
- package/lib/module/screens/detail-loan/ShowQrCode.js +1 -1
- package/lib/module/screens/detail-loan/ShowQrCode.js.map +1 -1
- package/lib/module/screens/digital-lending/Step6.js +1 -1
- package/lib/module/screens/digital-lending/Step6.js.map +1 -1
- package/lib/module/screens/eSign/index.js +1 -1
- package/lib/module/screens/eSign/index.js.map +1 -1
- package/lib/module/screens/home/DigitalTopupItem.js +1 -1
- package/lib/module/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/module/screens/home/ItemMotoBikeLoan.js +1 -1
- package/lib/module/screens/home/ItemMotoBikeLoan.js.map +1 -1
- package/lib/module/screens/home/index.js +1 -1
- package/lib/module/screens/home/index.js.map +1 -1
- package/lib/module/screens/nationalID/index.js +1 -1
- package/lib/module/screens/nationalID/index.js.map +1 -1
- package/lib/module/screens/nationalIDBack/index.js +1 -1
- package/lib/module/screens/nationalIDBack/index.js.map +1 -1
- package/lib/module/screens/payment-evidence/ModalGuideline.js +1 -1
- package/lib/module/screens/payment-evidence/ModalGuideline.js.map +1 -1
- package/lib/module/screens/toan-trinh-so/OCR.js +1 -1
- package/lib/module/screens/toan-trinh-so/OCR.js.map +1 -1
- package/lib/module/screens/toan-trinh-so/RegisterCamera.js +1 -1
- package/lib/module/screens/toan-trinh-so/RegisterCamera.js.map +1 -1
- package/lib/module/screens/toan-trinh-so/VehicleCamera.js +1 -1
- package/lib/module/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
- package/lib/module/utils/cameraCrop.js +2 -0
- package/lib/module/utils/cameraCrop.js.map +1 -0
- package/lib/typescript/assets/icons/index.d.ts +2 -1
- package/lib/typescript/assets/icons/index.d.ts.map +1 -1
- package/lib/typescript/components/AppModal.d.ts +6 -1
- package/lib/typescript/components/AppModal.d.ts.map +1 -1
- package/lib/typescript/components/ModalNotification/AlertGlobal.d.ts +20 -4
- package/lib/typescript/components/ModalNotification/AlertGlobal.d.ts.map +1 -1
- package/lib/typescript/components/ModalNotification/index.d.ts +6 -1
- package/lib/typescript/components/ModalNotification/index.d.ts.map +1 -1
- package/lib/typescript/components/modalStack.d.ts +11 -0
- package/lib/typescript/components/modalStack.d.ts.map +1 -0
- package/lib/typescript/navigation/primary-navigator.d.ts +3 -0
- package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
- package/lib/typescript/screens/NFC/OcrStart.d.ts +2 -0
- package/lib/typescript/screens/NFC/OcrStart.d.ts.map +1 -0
- package/lib/typescript/screens/NFC/ScanMRZ.d.ts +15 -0
- package/lib/typescript/screens/NFC/ScanMRZ.d.ts.map +1 -0
- package/lib/typescript/screens/camera/CCCDCameraScreen.d.ts.map +1 -1
- package/lib/typescript/screens/home/index.d.ts.map +1 -1
- package/lib/typescript/screens/nationalID/index.d.ts.map +1 -1
- package/lib/typescript/screens/nationalIDBack/index.d.ts.map +1 -1
- package/lib/typescript/screens/toan-trinh-so/OCR.d.ts.map +1 -1
- package/lib/typescript/screens/toan-trinh-so/VehicleCamera.d.ts.map +1 -1
- package/lib/typescript/utils/cameraCrop.d.ts +43 -0
- package/lib/typescript/utils/cameraCrop.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/assets/icons/index.tsx +2 -0
- package/src/assets/icons/modal_confirm.svg +5 -5
- package/src/assets/icons/modal_notice.svg +32 -32
- package/src/assets/icons/modal_success.svg +26 -26
- package/src/assets/icons/modal_warning.svg +21 -21
- package/src/assets/icons/user_security.svg +10 -0
- package/src/assets/tts/Frame1000011947.png +0 -0
- package/src/components/AlertLoan.tsx +1 -1
- package/src/components/AppModal.tsx +40 -2
- package/src/components/ItemTimaOne.tsx +1 -1
- package/src/components/ModalNotification/AlertGlobal.tsx +92 -33
- package/src/components/ModalNotification/index.tsx +7 -0
- package/src/components/ModalOptionLoan.tsx +1 -1
- package/src/components/ModalOptionLoanDigital.tsx +1 -1
- package/src/components/modalStack.ts +47 -0
- package/src/navigation/primary-navigator.tsx +7 -0
- package/src/screens/NFC/OcrStart.tsx +171 -0
- package/src/screens/NFC/ScanMRZ.tsx +563 -0
- package/src/screens/camera/CCCDCameraScreen.tsx +203 -133
- package/src/screens/camera/index.tsx +1 -1
- package/src/screens/detail-loan/PaymentInfo.tsx +1 -1
- package/src/screens/detail-loan/ShowQrCode.tsx +1 -1
- package/src/screens/digital-lending/Step6.tsx +1 -1
- package/src/screens/eSign/index.tsx +1 -1
- package/src/screens/home/DigitalTopupItem.tsx +1 -1
- package/src/screens/home/ItemMotoBikeLoan.tsx +1 -1
- package/src/screens/home/index.tsx +8 -113
- package/src/screens/nationalID/index.tsx +123 -218
- package/src/screens/nationalIDBack/index.tsx +129 -209
- package/src/screens/payment-evidence/ModalGuideline.tsx +1 -1
- package/src/screens/toan-trinh-so/OCR.tsx +270 -556
- package/src/screens/toan-trinh-so/RegisterCamera.tsx +1 -1
- package/src/screens/toan-trinh-so/VehicleCamera.tsx +226 -288
- package/src/utils/cameraCrop.ts +96 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import RNImageManipulator from '@oguzhnatly/react-native-image-manipulator';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Kích thước hiển thị (upright) của ảnh chụp từ VisionCamera.
|
|
6
|
+
*
|
|
7
|
+
* photo.width/height là kích thước buffer gốc của cảm biến (luôn landscape).
|
|
8
|
+
* photo.orientation cho biết ảnh cần xoay bao nhiêu để hiển thị đúng chiều:
|
|
9
|
+
* khi là 'landscape-left'/'landscape-right' (điện thoại cầm dọc) thì ảnh hiển
|
|
10
|
+
* thị bị xoay 90° so với buffer -> phải hoán đổi W/H.
|
|
11
|
+
*/
|
|
12
|
+
export const getDisplaySize = (photo) => {
|
|
13
|
+
const needsSwap =
|
|
14
|
+
photo?.orientation === 'landscape-left' ||
|
|
15
|
+
photo?.orientation === 'landscape-right';
|
|
16
|
+
return needsSwap
|
|
17
|
+
? { width: photo.height, height: photo.width }
|
|
18
|
+
: { width: photo.width, height: photo.height };
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Vùng cắt chính giữa theo đúng tỉ lệ khung (aspect = W/H), tính trong hệ toạ
|
|
23
|
+
* độ ảnh đã dựng đứng (upright). VisionCamera fill khung kiểu "cover" nên vùng
|
|
24
|
+
* nhìn thấy là hình chữ nhật cùng tỉ lệ với khung, nằm chính giữa ảnh.
|
|
25
|
+
*/
|
|
26
|
+
export const computeCenterCrop = (dispW, dispH, aspect) => {
|
|
27
|
+
let width;
|
|
28
|
+
let height;
|
|
29
|
+
if (dispW / dispH > aspect) {
|
|
30
|
+
// Ảnh rộng hơn khung -> giới hạn theo chiều cao
|
|
31
|
+
height = dispH;
|
|
32
|
+
width = Math.round(dispH * aspect);
|
|
33
|
+
} else {
|
|
34
|
+
// Ảnh cao/hẹp hơn khung -> giới hạn theo chiều rộng
|
|
35
|
+
width = dispW;
|
|
36
|
+
height = Math.round(dispW / aspect);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
originX: Math.max(0, Math.round((dispW - width) / 2)),
|
|
40
|
+
originY: Math.max(0, Math.round((dispH - height) / 2)),
|
|
41
|
+
width,
|
|
42
|
+
height,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Cắt ảnh chụp cho vừa đúng khung preview (theo tỉ lệ `aspect`). Làm việc hoàn
|
|
48
|
+
* toàn trong hệ toạ độ ảnh đã dựng đứng (upright):
|
|
49
|
+
* - Lấy kích thước hiển thị từ photo.orientation (không dùng Image.getSize vì
|
|
50
|
+
* trả về khác nhau giữa iOS/Android tuỳ EXIF).
|
|
51
|
+
* - Chèn action `resize` để "bung" EXIF orientation về upright: bắt buộc cho
|
|
52
|
+
* iOS (thư viện crop trên buffer gốc chưa xoay), là no-op trên Android
|
|
53
|
+
* (Fresco đã tự xoay khi decode). Sau đó crop trong cùng hệ toạ độ upright.
|
|
54
|
+
* Trả về uri ảnh đã cắt; nếu lỗi thì trả ảnh gốc để vẫn dùng được.
|
|
55
|
+
*/
|
|
56
|
+
export const cropPhotoToAspect = async (photo, aspect) => {
|
|
57
|
+
const uri = 'file://' + photo.path;
|
|
58
|
+
const { width: dispW, height: dispH } = getDisplaySize(photo);
|
|
59
|
+
if (!dispW || !dispH) return uri;
|
|
60
|
+
const crop = computeCenterCrop(dispW, dispH, aspect);
|
|
61
|
+
try {
|
|
62
|
+
const result = await RNImageManipulator.manipulate(
|
|
63
|
+
uri,
|
|
64
|
+
[{ resize: { width: dispW, height: dispH } }, { crop }],
|
|
65
|
+
{ compress: 0.9, format: 'jpeg' }
|
|
66
|
+
);
|
|
67
|
+
return result.uri;
|
|
68
|
+
} catch (e) {
|
|
69
|
+
console.log('cropPhotoToAspect error', e);
|
|
70
|
+
return uri;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Chọn ống kính (ở `position`, mặc định 'back') lấy nét gần nhất để chụp cận
|
|
76
|
+
* (macro): minFocusDistance nhỏ nhất. Ống wide mặc định thường min ~10cm nên
|
|
77
|
+
* đưa giấy tờ lại gần sẽ mất nét; ống ultra-wide/macro lấy nét được ở vài cm.
|
|
78
|
+
* Khi bằng nhau thì ưu tiên device gộp nhiều ống (đa cam ảo) để chất lượng tốt
|
|
79
|
+
* hơn và tự chuyển sang macro khi lại gần.
|
|
80
|
+
*/
|
|
81
|
+
export const pickClosestFocusDevice = (devices, position = 'back') => {
|
|
82
|
+
const list = (devices ?? []).filter((d) => d.position === position);
|
|
83
|
+
if (list.length === 0) return undefined;
|
|
84
|
+
const minFocus = (d) =>
|
|
85
|
+
d.minFocusDistance > 0 ? d.minFocusDistance : Number.MAX_SAFE_INTEGER;
|
|
86
|
+
return list.reduce((best, d) => {
|
|
87
|
+
if (minFocus(d) < minFocus(best)) return d;
|
|
88
|
+
if (
|
|
89
|
+
minFocus(d) === minFocus(best) &&
|
|
90
|
+
d.physicalDevices.length > best.physicalDevices.length
|
|
91
|
+
) {
|
|
92
|
+
return d;
|
|
93
|
+
}
|
|
94
|
+
return best;
|
|
95
|
+
});
|
|
96
|
+
};
|