@sanctum-key/react-native-sdk 1.0.18 → 1.0.20

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 (48) hide show
  1. package/README.md +1 -1
  2. package/build/package.json +3 -2
  3. package/build/src/components/EnhancedCameraView.d.ts.map +1 -1
  4. package/build/src/components/EnhancedCameraView.js +19 -182
  5. package/build/src/components/EnhancedCameraView.js.map +1 -1
  6. package/build/src/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -1
  7. package/build/src/components/KYCElements/CountrySelectionTemplate.js +40 -128
  8. package/build/src/components/KYCElements/CountrySelectionTemplate.js.map +1 -1
  9. package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -1
  10. package/build/src/components/KYCElements/IDCardCapture.js +224 -189
  11. package/build/src/components/KYCElements/IDCardCapture.js.map +1 -1
  12. package/build/src/components/KYCElements/PhoneVerificationTemplate.d.ts.map +1 -1
  13. package/build/src/components/KYCElements/PhoneVerificationTemplate.js +0 -2
  14. package/build/src/components/KYCElements/PhoneVerificationTemplate.js.map +1 -1
  15. package/build/src/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -1
  16. package/build/src/components/KYCElements/VerificationProgressTemplate.js +38 -33
  17. package/build/src/components/KYCElements/VerificationProgressTemplate.js.map +1 -1
  18. package/build/src/components/OverLay/IdCard.d.ts +6 -1
  19. package/build/src/components/OverLay/IdCard.d.ts.map +1 -1
  20. package/build/src/components/OverLay/IdCard.js +36 -34
  21. package/build/src/components/OverLay/IdCard.js.map +1 -1
  22. package/build/src/config/countriesData.d.ts.map +1 -1
  23. package/build/src/config/countriesData.js.map +1 -1
  24. package/build/src/hooks/useTemplateKYCFlow.js +1 -1
  25. package/build/src/hooks/useTemplateKYCFlow.js.map +1 -1
  26. package/build/src/modules/api/CardAuthentification.d.ts +5 -0
  27. package/build/src/modules/api/CardAuthentification.d.ts.map +1 -1
  28. package/build/src/modules/api/CardAuthentification.js +67 -14
  29. package/build/src/modules/api/CardAuthentification.js.map +1 -1
  30. package/build/src/modules/api/KYCService.d.ts +10 -0
  31. package/build/src/modules/api/KYCService.d.ts.map +1 -1
  32. package/build/src/modules/api/KYCService.js +135 -49
  33. package/build/src/modules/api/KYCService.js.map +1 -1
  34. package/build/src/web/WebKYCEntry.d.ts.map +1 -1
  35. package/build/src/web/WebKYCEntry.js +34 -6
  36. package/build/src/web/WebKYCEntry.js.map +1 -1
  37. package/package.json +3 -2
  38. package/src/components/EnhancedCameraView.tsx +28 -219
  39. package/src/components/KYCElements/CountrySelectionTemplate.tsx +53 -133
  40. package/src/components/KYCElements/IDCardCapture.tsx +606 -570
  41. package/src/components/KYCElements/PhoneVerificationTemplate.tsx +0 -2
  42. package/src/components/KYCElements/VerificationProgressTemplate.tsx +54 -66
  43. package/src/components/OverLay/IdCard.tsx +48 -36
  44. package/src/config/countriesData.ts +0 -4
  45. package/src/hooks/useTemplateKYCFlow.tsx +14 -14
  46. package/src/modules/api/CardAuthentification.ts +133 -67
  47. package/src/modules/api/KYCService.ts +189 -66
  48. package/src/web/WebKYCEntry.tsx +42 -7
@@ -18,12 +18,25 @@ export const VerificationProgressTemplate = () => {
18
18
  try {
19
19
  logger.log(`Starting verification check (attempt ${currentRetryCount + 1}/${maxRetries + 1})`);
20
20
  const result = await kycService.getVerificationResult(state.session.session_id);
21
+ logger.log('getVerificationResult raw result:', JSON.stringify(result, null, 2));
22
+ if (result?.status === 'Failed.' || result?.status === 'failed' || result?.status === 'rejected') {
23
+ actions.setVerificationState({
24
+ status: 'failed',
25
+ result: {
26
+ referenceId: state.session.session_id,
27
+ issues: [result?.message || 'Verification failed. Sent for manual review.']
28
+ }
29
+ });
30
+ setIsRetrying(false);
31
+ return; // Break out of the function so it DOES NOT RETRY
32
+ }
33
+ // Check standard nested payload format
21
34
  const responseData = result?.data;
22
35
  const verificationResult = responseData?.[state.session.session_id]?.data;
23
36
  if (!verificationResult) {
37
+ // If we still didn't get data and the status wasn't failed, throw to trigger a retry
24
38
  throw new Error('Verification payload missing for current session');
25
39
  }
26
- logger.log('getVerificationResult result', JSON.stringify({ result, verificationResult }, null, 2));
27
40
  // Vérifier le statut de vérification
28
41
  if (verificationResult.verification_status === null || verificationResult.verification_status === "processing" || verificationResult.verification_status === "pending") {
29
42
  if (currentRetryCount < maxRetries) {
@@ -31,16 +44,13 @@ export const VerificationProgressTemplate = () => {
31
44
  setRetryCount(nextRetryCount);
32
45
  setIsRetrying(true);
33
46
  logger.log(`Verification still processing, retrying in 10s... (${nextRetryCount}/${maxRetries})`);
34
- // Nettoyer le timeout précédent s'il existe
35
- if (timeoutId) {
47
+ if (timeoutId)
36
48
  clearTimeout(timeoutId);
37
- }
38
- // Attendre 10 secondes avant de relancer
39
49
  const newTimeoutId = setTimeout(() => {
40
50
  getVerificationResult(nextRetryCount, maxRetries);
41
51
  }, 10000);
42
52
  setTimeoutId(newTimeoutId);
43
- return; // Sortir de la fonction pour éviter de traiter le résultat
53
+ return;
44
54
  }
45
55
  else {
46
56
  logger.error('Max retries reached, verification still processing');
@@ -49,22 +59,18 @@ export const VerificationProgressTemplate = () => {
49
59
  }
50
60
  }
51
61
  // Traiter le résultat final (success, failed, etc.)
52
- if (verificationResult.verification_status === "completed" ||
53
- verificationResult.verification_status === "approved") {
54
- // Mettre à jour l'état avec le succès
62
+ if (verificationResult.verification_status === "completed" || verificationResult.verification_status === "approved") {
55
63
  actions.setVerificationState({
56
64
  status: 'success',
57
65
  result: result
58
66
  });
59
67
  }
60
- else if (verificationResult.verification_status === "failed" ||
61
- verificationResult.verification_status === "rejected") {
62
- // Mettre à jour l'état avec l'échec
68
+ else if (verificationResult.verification_status === "failed" || verificationResult.verification_status === "rejected") {
63
69
  actions.setVerificationState({
64
70
  status: 'failed',
65
71
  result: {
66
- referenceId: verificationResult.verification_id,
67
- issues: ['Verification failed']
72
+ referenceId: verificationResult.verification_id || state.session.session_id,
73
+ issues: ['Verification failed during processing.']
68
74
  }
69
75
  });
70
76
  }
@@ -72,16 +78,13 @@ export const VerificationProgressTemplate = () => {
72
78
  }
73
79
  catch (error) {
74
80
  logger.error('getVerificationResult error', JSON.stringify(errorMessage(error) || { message: error?.message || 'Unknown error' }, null, 2));
75
- // En cas d'erreur, on peut aussi retry
76
81
  if (currentRetryCount < maxRetries) {
77
82
  const nextRetryCount = currentRetryCount + 1;
78
83
  setRetryCount(nextRetryCount);
79
84
  setIsRetrying(true);
80
85
  logger.log(`getVerificationResult Error occurred, retrying in 10s... (${nextRetryCount}/${maxRetries})`);
81
- // Nettoyer le timeout précédent s'il existe
82
- if (timeoutId) {
86
+ if (timeoutId)
83
87
  clearTimeout(timeoutId);
84
- }
85
88
  const newTimeoutId = setTimeout(() => {
86
89
  getVerificationResult(nextRetryCount, maxRetries);
87
90
  }, 10000);
@@ -98,12 +101,10 @@ export const VerificationProgressTemplate = () => {
98
101
  getVerificationResult();
99
102
  }
100
103
  }, [state.session.session_id]);
101
- // Nettoyage des timeouts lors du démontage du composant
102
104
  useEffect(() => {
103
105
  return () => {
104
- if (timeoutId) {
106
+ if (timeoutId)
105
107
  clearTimeout(timeoutId);
106
- }
107
108
  };
108
109
  }, [timeoutId]);
109
110
  if (isSuccess) {
@@ -119,17 +120,25 @@ export const VerificationProgressTemplate = () => {
119
120
  if (isFailed) {
120
121
  return (<View style={styles.container}>
121
122
  <Text style={styles.title}>{t('kyc.verificationProgress.status.failed')}</Text>
122
- <Text style={styles.subtitle}>{t('errors.validationError')}</Text>
123
+
123
124
  <View style={styles.issuesBox}>
124
125
  <Text style={styles.issuesTitle}>{t('common.error')}</Text>
125
126
  {Array.isArray(verification.result?.issues) && verification.result.issues.map((issue, idx) => (<Text key={idx} style={styles.issueItem}>• {issue}</Text>))}
126
127
  </View>
127
- <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.resetTemplate()}>
128
- <Text style={styles.buttonText}>{t('kyc.verificationProgress.status.retry')}</Text>
128
+
129
+ {/* 🚨 FIX 2: Give the user actionable options to End or Restart */}
130
+ <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.submitVerification()}>
131
+ <Text style={styles.buttonText}>
132
+ {state.currentLanguage === 'en' ? 'OK / Finish' : 'Terminer'}
133
+ </Text>
129
134
  </TouchableOpacity>
130
- <TouchableOpacity style={[styles.button, styles.secondary]}>
131
- <Text style={styles.secondaryText}>{t('common.info')}</Text>
135
+
136
+ <TouchableOpacity style={[styles.button, styles.secondary]} onPress={() => actions.resetTemplate()}>
137
+ <Text style={styles.secondaryText}>
138
+ {state.currentLanguage === 'en' ? 'Start Over' : 'Recommencer'}
139
+ </Text>
132
140
  </TouchableOpacity>
141
+
133
142
  {verification.result?.referenceId ? (<Text style={styles.refText}>{`Reference ID: ${verification.result.referenceId}`}</Text>) : null}
134
143
  </View>);
135
144
  }
@@ -140,7 +149,6 @@ export const VerificationProgressTemplate = () => {
140
149
  ? `${t('kyc.verificationProgress.retrying', { current: retryCount, max: 40 })}`
141
150
  : t('kyc.verificationProgress.estimatedTime')}
142
151
  </Text>
143
-
144
152
  <View style={styles.timeline}>
145
153
  <View style={[styles.dot, styles.done]}><Text style={styles.stepCheckmark}>✓</Text></View>
146
154
  <View style={styles.line}/>
@@ -148,13 +156,11 @@ export const VerificationProgressTemplate = () => {
148
156
  <View style={styles.line}/>
149
157
  <View style={[styles.dot, styles.pending]}><Text style={styles.stepCheckmark}>3</Text></View>
150
158
  </View>
151
-
152
159
  <View style={styles.row}>
153
160
  <Text style={styles.stepLabel}>{t('kyc.verificationProgress.status.completed')}</Text>
154
161
  <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.analyzing')}</Text>
155
162
  <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.verifying')}</Text>
156
163
  </View>
157
-
158
164
  <View style={styles.card}>
159
165
  <Text style={styles.cardTitle}>{t('kyc.idCardCapture.title')}</Text>
160
166
  <Text style={styles.cardLine}>{t('kyc.verificationProgress.steps.extracting')}</Text>
@@ -185,15 +191,14 @@ const styles = StyleSheet.create({
185
191
  card: { backgroundColor: 'white', padding: 16, borderRadius: 16, marginTop: 24 },
186
192
  cardTitle: { fontSize: 16, color: '#6B7280', marginTop: 8 },
187
193
  cardLine: { fontSize: 18, color: '#111827', fontWeight: '600', marginTop: 2 },
188
- // Success/Failure specific
189
- button: { paddingVertical: 14, borderRadius: 10, alignItems: 'center', marginTop: 20 },
194
+ button: { paddingVertical: 14, borderRadius: 10, alignItems: 'center', marginTop: 14 },
190
195
  primary: { backgroundColor: '#2DBD60' },
191
196
  buttonText: { color: 'white', fontSize: 16, fontWeight: '600' },
192
197
  refText: { marginTop: 12, textAlign: 'center', color: '#6B7280' },
193
198
  issuesBox: { backgroundColor: '#FEF2F2', borderRadius: 16, padding: 16, marginTop: 20 },
194
199
  issuesTitle: { color: '#991B1B', fontWeight: '700', marginBottom: 8 },
195
200
  issueItem: { color: '#991B1B', marginTop: 4 },
196
- secondary: { backgroundColor: '#F3F4F6' },
197
- secondaryText: { color: '#111827', fontSize: 16, fontWeight: '600' },
201
+ secondary: { backgroundColor: '#F3F4F6', borderWidth: 1, borderColor: '#D1D5DB' },
202
+ secondaryText: { color: '#374151', fontSize: 16, fontWeight: '600' },
198
203
  });
199
204
  //# sourceMappingURL=VerificationProgressTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerificationProgressTemplate.js","sourceRoot":"","sources":["../../../../src/components/KYCElements/VerificationProgressTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { View, Text, StyleSheet, TouchableOpacity } from 'react-native';\nimport { TemplateComponent } from '../../types/KYC.types';\nimport { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../../hooks/useI18n';\nimport kycService, { errorMessage } from '../../modules/api/KYCService';\nimport { logger } from '../../utils/logger';\n\ninterface VerificationProgressTemplateProps {\n component: TemplateComponent;\n value: unknown;\n onValueChange: (data: unknown) => void;\n error?: string;\n language?: string;\n}\n\nexport const VerificationProgressTemplate: React.FC<VerificationProgressTemplateProps> = () => {\n const { t } = useI18n();\n const { state, actions } = useTemplateKYCFlowContext();\n const [retryCount, setRetryCount] = useState(0);\n const [isRetrying, setIsRetrying] = useState(false);\n const [timeoutId, setTimeoutId] = useState<number | null>(null);\n\n const verification = state.verification;\n\n const isSuccess = verification.status === 'success';\n const isFailed = verification.status === 'failed';\n\n // Fonction pour récupérer le résultat de vérification avec retry\n const getVerificationResult = async (currentRetryCount = 0, maxRetries = 40) => {\n try {\n logger.log(`Starting verification check (attempt ${currentRetryCount + 1}/${maxRetries + 1})`);\n\n const result = await kycService.getVerificationResult(state.session.session_id);\n const responseData = (result as any)?.data;\n const verificationResult = responseData?.[state.session.session_id]?.data;\n\n if (!verificationResult) {\n throw new Error('Verification payload missing for current session');\n }\n\n logger.log('getVerificationResult result', JSON.stringify({result,verificationResult}, null, 2));\n\n // Vérifier le statut de vérification\n if (verificationResult.verification_status === null || verificationResult.verification_status === \"processing\" || verificationResult.verification_status === \"pending\") {\n if (currentRetryCount < maxRetries) {\n const nextRetryCount = currentRetryCount + 1;\n setRetryCount(nextRetryCount);\n setIsRetrying(true);\n\n logger.log(`Verification still processing, retrying in 10s... (${nextRetryCount}/${maxRetries})`);\n\n // Nettoyer le timeout précédent s'il existe\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n // Attendre 10 secondes avant de relancer\n const newTimeoutId = setTimeout(() => {\n getVerificationResult(nextRetryCount, maxRetries);\n }, 10000);\n\n setTimeoutId(newTimeoutId);\n return; // Sortir de la fonction pour éviter de traiter le résultat\n } else {\n logger.error('Max retries reached, verification still processing');\n setIsRetrying(false);\n return;\n }\n }\n\n // Traiter le résultat final (success, failed, etc.)\n if (verificationResult.verification_status === \"completed\" ||\n verificationResult.verification_status === \"approved\") {\n // Mettre à jour l'état avec le succès\n actions.setVerificationState({\n status: 'success',\n result: result\n });\n } else if (verificationResult.verification_status === \"failed\" ||\n verificationResult.verification_status === \"rejected\") {\n // Mettre à jour l'état avec l'échec\n actions.setVerificationState({\n status: 'failed',\n result: {\n referenceId: verificationResult.verification_id,\n issues: ['Verification failed']\n } as any\n });\n }\n\n setIsRetrying(false);\n\n } catch (error: any) {\n logger.error(\n 'getVerificationResult error',\n JSON.stringify(errorMessage(error) || { message: error?.message || 'Unknown error' }, null, 2)\n );\n\n // En cas d'erreur, on peut aussi retry\n if (currentRetryCount < maxRetries) {\n const nextRetryCount = currentRetryCount + 1;\n setRetryCount(nextRetryCount);\n setIsRetrying(true);\n\n logger.log(`getVerificationResult Error occurred, retrying in 10s... (${nextRetryCount}/${maxRetries})`);\n\n // Nettoyer le timeout précédent s'il existe\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n const newTimeoutId = setTimeout(() => {\n getVerificationResult(nextRetryCount, maxRetries);\n }, 10000);\n\n setTimeoutId(newTimeoutId);\n } else {\n setIsRetrying(false);\n logger.error('Max retries reached after errors');\n }\n }\n };\n\n useEffect(() => {\n if (state.session.session_id) {\n getVerificationResult();\n }\n }, [state.session.session_id]);\n\n // Nettoyage des timeouts lors du démontage du composant\n useEffect(() => {\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [timeoutId]);\n\n if (isSuccess) {\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.steps.complete')}</Text>\n <Text style={styles.subtitle}>{t('kyc.verificationProgress.subtitle')}</Text>\n <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.submitVerification()}>\n <Text style={styles.buttonText}>{t('common.continue')}</Text>\n </TouchableOpacity>\n {verification.result?.referenceId ? (\n <Text style={styles.refText}>{`Verification ID: ${verification.result.referenceId}`}</Text>\n ) : null}\n </View>\n );\n }\n\n if (isFailed) {\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.status.failed')}</Text>\n <Text style={styles.subtitle}>{t('errors.validationError')}</Text>\n <View style={styles.issuesBox}>\n <Text style={styles.issuesTitle}>{t('common.error')}</Text>\n {Array.isArray(verification.result?.issues) && verification.result.issues.map((issue: string, idx: number) => (\n <Text key={idx} style={styles.issueItem}>• {issue}</Text>\n ))}\n </View>\n <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.resetTemplate()}>\n <Text style={styles.buttonText}>{t('kyc.verificationProgress.status.retry')}</Text>\n </TouchableOpacity>\n <TouchableOpacity style={[styles.button, styles.secondary]}>\n <Text style={styles.secondaryText}>{t('common.info')}</Text>\n </TouchableOpacity>\n {verification.result?.referenceId ? (\n <Text style={styles.refText}>{`Reference ID: ${verification.result.referenceId}`}</Text>\n ) : null}\n </View>\n );\n }\n\n\n\n\n\n\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.title')}</Text>\n <Text style={styles.subtitle}>\n {isRetrying\n ? `${t('kyc.verificationProgress.retrying', { current: retryCount, max: 40 })}`\n : t('kyc.verificationProgress.estimatedTime')\n }\n </Text>\n\n <View style={styles.timeline}>\n <View style={[styles.dot, styles.done]}><Text style={styles.stepCheckmark}>✓</Text></View>\n <View style={styles.line} />\n <View style={[styles.dot, styles.active]}><Text style={styles.stepCheckmark}>2</Text></View>\n <View style={styles.line} />\n <View style={[styles.dot, styles.pending]}><Text style={styles.stepCheckmark}>3</Text></View>\n </View>\n\n <View style={styles.row}>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.status.completed')}</Text>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.analyzing')}</Text>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.verifying')}</Text>\n </View>\n\n <View style={styles.card}>\n <Text style={styles.cardTitle}>{t('kyc.idCardCapture.title')}</Text>\n <Text style={styles.cardLine}>{t('kyc.verificationProgress.steps.extracting')}</Text>\n <Text style={styles.cardTitle}>{t('kyc.selfieCapture.title')}</Text>\n <Text style={styles.cardLine}>{t('kyc.verificationProgress.steps.analyzing')}</Text>\n <Text style={styles.cardTitle}>{t('kyc.verificationProgress.title')}</Text>\n <Text style={styles.cardLine}>\n {isRetrying\n ? `${t('kyc.verificationProgress.status.processing')}...`\n : t('kyc.verificationProgress.status.pending')\n }\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, width: '100%', paddingHorizontal: 16, paddingVertical: 12 },\n title: { fontSize: 24, fontWeight: 'bold', color: '#111827', textAlign: 'center', marginTop: 12 },\n subtitle: { fontSize: 14, color: '#6B7280', textAlign: 'center', marginTop: 8 },\n timeline: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginTop: 24 },\n dot: { width: 38, height: 38, borderRadius: 34, justifyContent: 'center', alignItems: 'center' },\n stepCheckmark: { color: 'white', fontSize: 16, fontWeight: 'bold' },\n line: { flex: 1, height: 4, backgroundColor: '#E5E7EB' },\n done: { backgroundColor: '#10B981' },\n active: { backgroundColor: '#F59E0B' },\n pending: { backgroundColor: '#E5E7EB' },\n row: { flexDirection: 'row', justifyContent: 'space-between', marginTop: 8 },\n stepLabel: { fontSize: 14, color: '#111827', fontWeight: '600' },\n card: { backgroundColor: 'white', padding: 16, borderRadius: 16, marginTop: 24 },\n cardTitle: { fontSize: 16, color: '#6B7280', marginTop: 8 },\n cardLine: { fontSize: 18, color: '#111827', fontWeight: '600', marginTop: 2 },\n // Success/Failure specific\n button: { paddingVertical: 14, borderRadius: 10, alignItems: 'center', marginTop: 20 },\n primary: { backgroundColor: '#2DBD60' },\n buttonText: { color: 'white', fontSize: 16, fontWeight: '600' },\n refText: { marginTop: 12, textAlign: 'center', color: '#6B7280' },\n issuesBox: { backgroundColor: '#FEF2F2', borderRadius: 16, padding: 16, marginTop: 20 },\n issuesTitle: { color: '#991B1B', fontWeight: '700', marginBottom: 8 },\n issueItem: { color: '#991B1B', marginTop: 4 },\n secondary: { backgroundColor: '#F3F4F6' },\n secondaryText: { color: '#111827', fontSize: 16, fontWeight: '600' },\n});\n\n\n\n"]}
1
+ {"version":3,"file":"VerificationProgressTemplate.js","sourceRoot":"","sources":["../../../../src/components/KYCElements/VerificationProgressTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { View, Text, StyleSheet, TouchableOpacity } from 'react-native';\nimport { TemplateComponent } from '../../types/KYC.types';\nimport { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../../hooks/useI18n';\nimport kycService, { errorMessage } from '../../modules/api/KYCService';\nimport { logger } from '../../utils/logger';\n\ninterface VerificationProgressTemplateProps {\n component: TemplateComponent;\n value: unknown;\n onValueChange: (data: unknown) => void;\n error?: string;\n language?: string;\n}\n\nexport const VerificationProgressTemplate: React.FC<VerificationProgressTemplateProps> = () => {\n const { t } = useI18n();\n const { state, actions } = useTemplateKYCFlowContext();\n const [retryCount, setRetryCount] = useState(0);\n const [isRetrying, setIsRetrying] = useState(false);\n const [timeoutId, setTimeoutId] = useState<number | null>(null);\n\n const verification = state.verification;\n const isSuccess = verification.status === 'success';\n const isFailed = verification.status === 'failed';\n\n // Fonction pour récupérer le résultat de vérification avec retry\n const getVerificationResult = async (currentRetryCount = 0, maxRetries = 40) => {\n try {\n logger.log(`Starting verification check (attempt ${currentRetryCount + 1}/${maxRetries + 1})`);\n const result: any = await kycService.getVerificationResult(state.session.session_id);\n \n logger.log('getVerificationResult raw result:', JSON.stringify(result, null, 2));\n\n if (result?.status === 'Failed.' || result?.status === 'failed' || result?.status === 'rejected') {\n actions.setVerificationState({\n status: 'failed',\n result: {\n referenceId: state.session.session_id,\n issues: [result?.message || 'Verification failed. Sent for manual review.']\n } as any\n });\n setIsRetrying(false);\n return; // Break out of the function so it DOES NOT RETRY\n }\n\n // Check standard nested payload format\n const responseData = result?.data;\n const verificationResult = responseData?.[state.session.session_id]?.data;\n\n if (!verificationResult) {\n // If we still didn't get data and the status wasn't failed, throw to trigger a retry\n throw new Error('Verification payload missing for current session');\n }\n\n // Vérifier le statut de vérification\n if (verificationResult.verification_status === null || verificationResult.verification_status === \"processing\" || verificationResult.verification_status === \"pending\") {\n if (currentRetryCount < maxRetries) {\n const nextRetryCount = currentRetryCount + 1;\n setRetryCount(nextRetryCount);\n setIsRetrying(true);\n logger.log(`Verification still processing, retrying in 10s... (${nextRetryCount}/${maxRetries})`);\n \n if (timeoutId) clearTimeout(timeoutId);\n \n const newTimeoutId = setTimeout(() => {\n getVerificationResult(nextRetryCount, maxRetries);\n }, 10000);\n \n setTimeoutId(newTimeoutId as any);\n return; \n } else {\n logger.error('Max retries reached, verification still processing');\n setIsRetrying(false);\n return;\n }\n }\n\n // Traiter le résultat final (success, failed, etc.)\n if (verificationResult.verification_status === \"completed\" || verificationResult.verification_status === \"approved\") {\n actions.setVerificationState({\n status: 'success',\n result: result\n });\n } else if (verificationResult.verification_status === \"failed\" || verificationResult.verification_status === \"rejected\") {\n actions.setVerificationState({\n status: 'failed',\n result: {\n referenceId: verificationResult.verification_id || state.session.session_id,\n issues: ['Verification failed during processing.']\n } as any\n });\n }\n \n setIsRetrying(false);\n\n } catch (error: any) {\n logger.error('getVerificationResult error', JSON.stringify(errorMessage(error) || { message: error?.message || 'Unknown error' }, null, 2));\n \n if (currentRetryCount < maxRetries) {\n const nextRetryCount = currentRetryCount + 1;\n setRetryCount(nextRetryCount);\n setIsRetrying(true);\n logger.log(`getVerificationResult Error occurred, retrying in 10s... (${nextRetryCount}/${maxRetries})`);\n \n if (timeoutId) clearTimeout(timeoutId);\n \n const newTimeoutId = setTimeout(() => {\n getVerificationResult(nextRetryCount, maxRetries);\n }, 10000);\n \n setTimeoutId(newTimeoutId as any);\n } else {\n setIsRetrying(false);\n logger.error('Max retries reached after errors');\n }\n }\n };\n\n useEffect(() => {\n if (state.session.session_id) {\n getVerificationResult();\n }\n }, [state.session.session_id]);\n\n useEffect(() => {\n return () => {\n if (timeoutId) clearTimeout(timeoutId);\n };\n }, [timeoutId]);\n\n if (isSuccess) {\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.steps.complete')}</Text>\n <Text style={styles.subtitle}>{t('kyc.verificationProgress.subtitle')}</Text>\n <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.submitVerification()}>\n <Text style={styles.buttonText}>{t('common.continue')}</Text>\n </TouchableOpacity>\n {verification.result?.referenceId ? (\n <Text style={styles.refText}>{`Verification ID: ${verification.result.referenceId}`}</Text>\n ) : null}\n </View>\n );\n }\n\n if (isFailed) {\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.status.failed')}</Text>\n \n <View style={styles.issuesBox}>\n <Text style={styles.issuesTitle}>{t('common.error')}</Text>\n {Array.isArray(verification.result?.issues) && verification.result.issues.map((issue: string, idx: number) => (\n <Text key={idx} style={styles.issueItem}>• {issue}</Text>\n ))}\n </View>\n\n {/* 🚨 FIX 2: Give the user actionable options to End or Restart */}\n <TouchableOpacity style={[styles.button, styles.primary]} onPress={() => actions.submitVerification()}>\n <Text style={styles.buttonText}>\n {state.currentLanguage === 'en' ? 'OK / Finish' : 'Terminer'}\n </Text>\n </TouchableOpacity>\n \n <TouchableOpacity style={[styles.button, styles.secondary]} onPress={() => actions.resetTemplate()}>\n <Text style={styles.secondaryText}>\n {state.currentLanguage === 'en' ? 'Start Over' : 'Recommencer'}\n </Text>\n </TouchableOpacity>\n\n {verification.result?.referenceId ? (\n <Text style={styles.refText}>{`Reference ID: ${verification.result.referenceId}`}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{t('kyc.verificationProgress.title')}</Text>\n <Text style={styles.subtitle}>\n {isRetrying\n ? `${t('kyc.verificationProgress.retrying', { current: retryCount, max: 40 })}`\n : t('kyc.verificationProgress.estimatedTime')\n }\n </Text>\n <View style={styles.timeline}>\n <View style={[styles.dot, styles.done]}><Text style={styles.stepCheckmark}>✓</Text></View>\n <View style={styles.line} />\n <View style={[styles.dot, styles.active]}><Text style={styles.stepCheckmark}>2</Text></View>\n <View style={styles.line} />\n <View style={[styles.dot, styles.pending]}><Text style={styles.stepCheckmark}>3</Text></View>\n </View>\n <View style={styles.row}>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.status.completed')}</Text>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.analyzing')}</Text>\n <Text style={styles.stepLabel}>{t('kyc.verificationProgress.steps.verifying')}</Text>\n </View>\n <View style={styles.card}>\n <Text style={styles.cardTitle}>{t('kyc.idCardCapture.title')}</Text>\n <Text style={styles.cardLine}>{t('kyc.verificationProgress.steps.extracting')}</Text>\n <Text style={styles.cardTitle}>{t('kyc.selfieCapture.title')}</Text>\n <Text style={styles.cardLine}>{t('kyc.verificationProgress.steps.analyzing')}</Text>\n <Text style={styles.cardTitle}>{t('kyc.verificationProgress.title')}</Text>\n <Text style={styles.cardLine}>\n {isRetrying\n ? `${t('kyc.verificationProgress.status.processing')}...`\n : t('kyc.verificationProgress.status.pending')\n }\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, width: '100%', paddingHorizontal: 16, paddingVertical: 12 },\n title: { fontSize: 24, fontWeight: 'bold', color: '#111827', textAlign: 'center', marginTop: 12 },\n subtitle: { fontSize: 14, color: '#6B7280', textAlign: 'center', marginTop: 8 },\n timeline: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginTop: 24 },\n dot: { width: 38, height: 38, borderRadius: 34, justifyContent: 'center', alignItems: 'center' },\n stepCheckmark: { color: 'white', fontSize: 16, fontWeight: 'bold' },\n line: { flex: 1, height: 4, backgroundColor: '#E5E7EB' },\n done: { backgroundColor: '#10B981' },\n active: { backgroundColor: '#F59E0B' },\n pending: { backgroundColor: '#E5E7EB' },\n row: { flexDirection: 'row', justifyContent: 'space-between', marginTop: 8 },\n stepLabel: { fontSize: 14, color: '#111827', fontWeight: '600' },\n card: { backgroundColor: 'white', padding: 16, borderRadius: 16, marginTop: 24 },\n cardTitle: { fontSize: 16, color: '#6B7280', marginTop: 8 },\n cardLine: { fontSize: 18, color: '#111827', fontWeight: '600', marginTop: 2 },\n button: { paddingVertical: 14, borderRadius: 10, alignItems: 'center', marginTop: 14 },\n primary: { backgroundColor: '#2DBD60' },\n buttonText: { color: 'white', fontSize: 16, fontWeight: '600' },\n refText: { marginTop: 12, textAlign: 'center', color: '#6B7280' },\n issuesBox: { backgroundColor: '#FEF2F2', borderRadius: 16, padding: 16, marginTop: 20 },\n issuesTitle: { color: '#991B1B', fontWeight: '700', marginBottom: 8 },\n issueItem: { color: '#991B1B', marginTop: 4 },\n secondary: { backgroundColor: '#F3F4F6', borderWidth: 1, borderColor: '#D1D5DB' },\n secondaryText: { color: '#374151', fontSize: 16, fontWeight: '600' },\n});"]}
@@ -1,5 +1,10 @@
1
1
  import React from 'react';
2
2
  import { IdCardOverlayProps } from './type';
3
- declare const IdCardOverlay: ({ cornerOpacity, instructions, stepperProps, isSuccess, language, }: IdCardOverlayProps) => React.JSX.Element;
3
+ declare const IdCardOverlay: ({ cornerOpacity, instructions, stepperProps, isSuccess, language, xMin: xMinPercent, xMax: xMaxPercent, yMin: yMinPercent, yMax: yMaxPercent, }: IdCardOverlayProps & {
4
+ xMin?: number;
5
+ xMax?: number;
6
+ yMin?: number;
7
+ yMax?: number;
8
+ }) => React.JSX.Element;
4
9
  export default IdCardOverlay;
5
10
  //# sourceMappingURL=IdCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdCard.d.ts","sourceRoot":"","sources":["../../../../src/components/OverLay/IdCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAsB1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAI5C,QAAA,MAAM,aAAa,GAAI,qEAQpB,kBAAkB,sBAoKpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"IdCard.d.ts","sourceRoot":"","sources":["../../../../src/components/OverLay/IdCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAsBxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,QAAA,MAAM,aAAa,GAAI,iJAUpB,kBAAkB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,sBAgLrF,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,35 +1,28 @@
1
- import React from 'react';
2
- import { Animated, Dimensions, Platform, SafeAreaView, StatusBar, StyleSheet, Text, View, } from 'react-native';
1
+ import React, { useState } from 'react';
2
+ import { Animated, Platform, SafeAreaView, StatusBar, StyleSheet, Text, View, useWindowDimensions, } from 'react-native';
3
3
  import Svg, { Defs, G, LinearGradient, Mask, Path, Rect, Stop, } from 'react-native-svg';
4
4
  import ScanningLine from '../Svgs/scanningLine';
5
5
  import StepOverlay from './StepOverlay';
6
- const { width: screenWidth, height: screenHeight } = Dimensions.get('window');
7
- const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, language = 'en',
8
- // Note: xMinPercent, yMinPercent, etc. are intentionally ignored below
9
- // to force a mathematically perfect ID card aspect ratio.
10
- }) => {
6
+ const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, language = 'en', xMin: xMinPercent = 5, xMax: xMaxPercent = 95, yMin: yMinPercent = 34, yMax: yMaxPercent = 66, }) => {
11
7
  const AnimatedG = Animated.createAnimatedComponent(G);
12
- // --- 🚨 GEOMETRY FIX: Perfect ID Card Ratio ---
13
- // Standard ISO ID-1 ratio is 1.586 (85.6mm / 53.98mm)
14
- const ID_ASPECT_RATIO = 1.586;
15
- // Set width to 85% of the screen, and calculate perfect height
16
- const boxWidth = screenWidth * 0.85;
17
- const boxHeight = boxWidth / ID_ASPECT_RATIO;
18
- // Center horizontally
19
- const xMin = (screenWidth - boxWidth) / 2;
20
- const xMax = xMin + boxWidth;
21
- // Center vertically (shifted slightly up for better holding ergonomics)
22
- const yMin = (screenHeight - boxHeight) * 0.42;
23
- const yMax = yMin + boxHeight;
8
+ // 1. Get baseline window dimensions (fallback for Native mobile)
9
+ const { width: windowWidth, height: windowHeight } = useWindowDimensions();
10
+ // 2. Track actual container dimensions (Crucial for Web Modals where window != container)
11
+ const [container, setContainer] = useState({ width: windowWidth, height: windowHeight });
12
+ // 3. Convert parent percentages to exact pixels within the container
13
+ const xMin = (container.width * xMinPercent) / 100;
14
+ const xMax = (container.width * xMaxPercent) / 100;
15
+ const yMin = (container.height * yMinPercent) / 100;
16
+ const yMax = (container.height * yMaxPercent) / 100;
17
+ const boxWidth = xMax - xMin;
18
+ const boxHeight = yMax - yMin;
24
19
  // --- Clean, Professional Copy Formatting ---
25
20
  const formatDocType = (type) => {
26
21
  if (!type)
27
22
  return 'document';
28
- // e.g., "identity_card" -> "identity card"
29
23
  return type.replace(/_/g, ' ').toLowerCase();
30
24
  };
31
25
  const getSideText = (side) => {
32
- // Using "recto/verso" for French as it is much more professional for documents
33
26
  if (side === 'front')
34
27
  return language === 'en' ? 'front' : 'recto';
35
28
  return language === 'en' ? 'back' : 'verso';
@@ -48,15 +41,25 @@ const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, l
48
41
  // --- SVG Constants ---
49
42
  const CORNER_SIZE = 40;
50
43
  const STROKE_WIDTH = 4;
51
- const BORDER_RADIUS = 16; // Reduced slightly for a tighter, more realistic card feel
52
- return (<View style={StyleSheet.absoluteFill} pointerEvents="box-none">
44
+ const BORDER_RADIUS = 16;
45
+ // Safety check to prevent SVG NaN errors during initial render
46
+ if (container.width === 0 || container.height === 0 || boxWidth <= 0) {
47
+ return <View style={StyleSheet.absoluteFill}/>;
48
+ }
49
+ return (<View style={StyleSheet.absoluteFill} pointerEvents="box-none" onLayout={(e) => {
50
+ // Update container dimensions only if they change to prevent loops
51
+ const { width, height } = e.nativeEvent.layout;
52
+ if (width !== container.width || height !== container.height) {
53
+ setContainer({ width, height });
54
+ }
55
+ }}>
53
56
  <StatusBar translucent backgroundColor="transparent" barStyle="light-content"/>
54
-
57
+
55
58
  {/* SVG Overlay */}
56
- <Svg width={screenWidth} height={screenHeight} style={styles.svg}>
59
+ <Svg width={container.width} height={container.height} style={styles.svg}>
57
60
  <Defs>
58
61
  <Mask id="cameraMask">
59
- <Rect x="0" y="0" width={screenWidth} height={screenHeight} fill="white"/>
62
+ <Rect x="0" y="0" width={container.width} height={container.height} fill="white"/>
60
63
  {/* Transparent Cutout */}
61
64
  <Rect x={xMin} y={yMin} width={boxWidth} height={boxHeight} rx={BORDER_RADIUS} ry={BORDER_RADIUS} fill="black"/>
62
65
  </Mask>
@@ -65,14 +68,13 @@ const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, l
65
68
  <Stop offset="100%" stopColor="#22C55E"/>
66
69
  </LinearGradient>
67
70
  </Defs>
68
-
71
+
69
72
  {/* Dim background */}
70
- <Rect x="0" y="0" width={screenWidth} height={screenHeight} fill="rgba(0,0,0,0.85)" mask="url(#cameraMask)"/>
71
-
73
+ <Rect x="0" y="0" width={container.width} height={container.height} fill="rgba(0,0,0,0.85)" mask="url(#cameraMask)"/>
74
+
72
75
  {/* Main Card Border */}
73
- <Rect x={xMin} y={yMin} width={boxWidth} height={boxHeight} rx={BORDER_RADIUS} ry={BORDER_RADIUS} stroke="rgba(255,255,255,0.25)" // Subtle inner frame
74
- strokeWidth={1.5} fill="transparent"/>
75
-
76
+ <Rect x={xMin} y={yMin} width={boxWidth} height={boxHeight} rx={BORDER_RADIUS} ry={BORDER_RADIUS} stroke={isSuccess ? '#2DBD60' : "rgba(255,255,255,0.25)"} strokeWidth={isSuccess ? 3 : 1.5} fill="transparent"/>
77
+
76
78
  {/* Professional Corner Guides */}
77
79
  <AnimatedG opacity={cornerOpacity || 1}>
78
80
  {/* Top Left */}
@@ -87,7 +89,7 @@ const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, l
87
89
  </Svg>
88
90
 
89
91
  {/* Scanning animation */}
90
- {!isSuccess && (<ScanningLine yMin={yMin} yMax={yMax} screenWidth={screenWidth} height={screenHeight}/>)}
92
+ {!isSuccess && (<ScanningLine yMin={yMin} yMax={yMax} screenWidth={container.width} height={container.height}/>)}
91
93
 
92
94
  {/* Top UI Zone */}
93
95
  <View style={[styles.topZone, { height: yMin }]} pointerEvents="box-none">
@@ -104,7 +106,7 @@ const IdCardOverlay = ({ cornerOpacity, instructions, stepperProps, isSuccess, l
104
106
  </View>
105
107
 
106
108
  {/* Bottom UI Zone */}
107
- <View style={[styles.bottomZone, { top: yMax + 30 }]} pointerEvents="box-none">
109
+ <View style={[styles.bottomZone, { top: yMax + 20 }]} pointerEvents="box-none">
108
110
  <Text style={styles.bottomTitle}>{bottomTitle}</Text>
109
111
  <Text style={styles.bottomSubtitle}>{bottomSubtitle}</Text>
110
112
  <View style={styles.helperPill}>
@@ -1 +1 @@
1
- {"version":3,"file":"IdCard.js","sourceRoot":"","sources":["../../../../src/components/OverLay/IdCard.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Animated,\n Dimensions,\n Platform,\n SafeAreaView,\n StatusBar,\n StyleSheet,\n Text,\n View,\n} from 'react-native';\nimport Svg, {\n Defs,\n G,\n LinearGradient,\n Mask,\n Path,\n Rect,\n Stop,\n} from 'react-native-svg';\nimport ScanningLine from '../Svgs/scanningLine';\nimport StepOverlay from './StepOverlay';\nimport { IdCardOverlayProps } from './type';\n\nconst { width: screenWidth, height: screenHeight } = Dimensions.get('window');\n\nconst IdCardOverlay = ({\n cornerOpacity,\n instructions,\n stepperProps,\n isSuccess,\n language = 'en',\n // Note: xMinPercent, yMinPercent, etc. are intentionally ignored below \n // to force a mathematically perfect ID card aspect ratio.\n}: IdCardOverlayProps) => {\n const AnimatedG = Animated.createAnimatedComponent(G);\n\n // --- 🚨 GEOMETRY FIX: Perfect ID Card Ratio ---\n // Standard ISO ID-1 ratio is 1.586 (85.6mm / 53.98mm)\n const ID_ASPECT_RATIO = 1.586;\n \n // Set width to 85% of the screen, and calculate perfect height\n const boxWidth = screenWidth * 0.85;\n const boxHeight = boxWidth / ID_ASPECT_RATIO;\n\n // Center horizontally\n const xMin = (screenWidth - boxWidth) / 2;\n const xMax = xMin + boxWidth;\n\n // Center vertically (shifted slightly up for better holding ergonomics)\n const yMin = (screenHeight - boxHeight) * 0.42; \n const yMax = yMin + boxHeight;\n\n // --- Clean, Professional Copy Formatting ---\n const formatDocType = (type?: string) => {\n if (!type) return 'document';\n // e.g., \"identity_card\" -> \"identity card\"\n return type.replace(/_/g, ' ').toLowerCase();\n };\n\n const getSideText = (side?: string) => {\n // Using \"recto/verso\" for French as it is much more professional for documents\n if (side === 'front') return language === 'en' ? 'front' : 'recto';\n return language === 'en' ? 'back' : 'verso';\n };\n\n const docTypeFormatted = formatDocType(stepperProps?.selectedDocumentType);\n const sideText = getSideText(stepperProps?.side);\n\n const bottomTitle = language === 'en'\n ? `Position the ${sideText} of your ${docTypeFormatted}`\n : `Positionnez le ${sideText} de votre ${docTypeFormatted}`;\n\n const bottomSubtitle = language === 'en'\n ? 'Ensure all details are clear and readable.'\n : 'Assurez-vous que tous les détails sont lisibles.';\n\n const helperText = language === 'en'\n ? 'No glare • All corners visible • Hold steady'\n : 'Pas de reflets • Coins visibles • Maintenez stable';\n\n // --- SVG Constants ---\n const CORNER_SIZE = 40; \n const STROKE_WIDTH = 4;\n const BORDER_RADIUS = 16; // Reduced slightly for a tighter, more realistic card feel\n\n return (\n <View style={StyleSheet.absoluteFill} pointerEvents=\"box-none\">\n <StatusBar translucent backgroundColor=\"transparent\" barStyle=\"light-content\" />\n \n {/* SVG Overlay */}\n <Svg width={screenWidth} height={screenHeight} style={styles.svg}>\n <Defs>\n <Mask id=\"cameraMask\">\n <Rect x=\"0\" y=\"0\" width={screenWidth} height={screenHeight} fill=\"white\" />\n {/* Transparent Cutout */}\n <Rect\n x={xMin}\n y={yMin}\n width={boxWidth}\n height={boxHeight}\n rx={BORDER_RADIUS}\n ry={BORDER_RADIUS}\n fill=\"black\"\n />\n </Mask>\n <LinearGradient id=\"scanBorderGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <Stop offset=\"0%\" stopColor=\"#4ADE80\" />\n <Stop offset=\"100%\" stopColor=\"#22C55E\" />\n </LinearGradient>\n </Defs>\n \n {/* Dim background */}\n <Rect x=\"0\" y=\"0\" width={screenWidth} height={screenHeight} fill=\"rgba(0,0,0,0.85)\" mask=\"url(#cameraMask)\" />\n \n {/* Main Card Border */}\n <Rect\n x={xMin}\n y={yMin}\n width={boxWidth}\n height={boxHeight}\n rx={BORDER_RADIUS}\n ry={BORDER_RADIUS}\n stroke=\"rgba(255,255,255,0.25)\" // Subtle inner frame\n strokeWidth={1.5}\n fill=\"transparent\"\n />\n \n {/* Professional Corner Guides */}\n <AnimatedG opacity={cornerOpacity || 1}>\n {/* Top Left */}\n <Path\n d={`M ${xMin} ${yMin + CORNER_SIZE} L ${xMin} ${yMin + BORDER_RADIUS} Q ${xMin} ${yMin} ${xMin + BORDER_RADIUS} ${yMin} L ${xMin + CORNER_SIZE} ${yMin}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Top Right */}\n <Path\n d={`M ${xMax - CORNER_SIZE} ${yMin} L ${xMax - BORDER_RADIUS} ${yMin} Q ${xMax} ${yMin} ${xMax} ${yMin + BORDER_RADIUS} L ${xMax} ${yMin + CORNER_SIZE}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Bottom Left */}\n <Path\n d={`M ${xMin} ${yMax - CORNER_SIZE} L ${xMin} ${yMax - BORDER_RADIUS} Q ${xMin} ${yMax} ${xMin + BORDER_RADIUS} ${yMax} L ${xMin + CORNER_SIZE} ${yMax}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Bottom Right */}\n <Path\n d={`M ${xMax - CORNER_SIZE} ${yMax} L ${xMax - BORDER_RADIUS} ${yMax} Q ${xMax} ${yMax} ${xMax} ${yMax - BORDER_RADIUS} L ${xMax} ${yMax - CORNER_SIZE}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </AnimatedG>\n </Svg>\n\n {/* Scanning animation */}\n {!isSuccess && (\n <ScanningLine yMin={yMin} yMax={yMax} screenWidth={screenWidth} height={screenHeight} />\n )}\n\n {/* Top UI Zone */}\n <View style={[styles.topZone, { height: yMin }]} pointerEvents=\"box-none\">\n <SafeAreaView style={styles.safeAreaZone} pointerEvents=\"box-none\">\n {stepperProps && (\n <View style={styles.stepperWrapper}>\n <StepOverlay {...stepperProps} />\n </View>\n )}\n {instructions && (\n <View style={styles.instructionsContainer}>\n <View style={styles.instructionsBadge}>\n <Text style={styles.instructionsText}>{instructions}</Text>\n </View>\n </View>\n )}\n </SafeAreaView>\n </View>\n\n {/* Bottom UI Zone */}\n <View style={[styles.bottomZone, { top: yMax + 30 }]} pointerEvents=\"box-none\">\n <Text style={styles.bottomTitle}>{bottomTitle}</Text>\n <Text style={styles.bottomSubtitle}>{bottomSubtitle}</Text>\n <View style={styles.helperPill}>\n <Text style={styles.helperText}>{helperText}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default IdCardOverlay;\n\nconst styles = StyleSheet.create({\n svg: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n },\n topZone: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n justifyContent: 'flex-start',\n },\n safeAreaZone: {\n flex: 1,\n paddingTop: Platform.OS === 'android' ? (StatusBar.currentHeight || 0) + 8 : 8,\n },\n stepperWrapper: {\n paddingHorizontal: 20,\n },\n instructionsContainer: {\n alignItems: 'center',\n marginTop: 'auto',\n marginBottom: 24,\n paddingHorizontal: 20,\n },\n instructionsBadge: {\n backgroundColor: 'rgba(0,0,0,0.6)',\n borderRadius: 8,\n paddingVertical: 8,\n paddingHorizontal: 14,\n },\n instructionsText: {\n color: '#FFFFFF',\n fontSize: 13,\n fontWeight: '500',\n letterSpacing: 0.3,\n },\n bottomZone: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n alignItems: 'center',\n paddingHorizontal: 24,\n },\n bottomTitle: {\n color: '#FFFFFF',\n fontSize: 18,\n fontWeight: '600',\n textAlign: 'center',\n letterSpacing: 0.3,\n marginBottom: 6,\n },\n bottomSubtitle: {\n color: 'rgba(255,255,255,0.7)',\n fontSize: 14,\n textAlign: 'center',\n fontWeight: '400',\n marginBottom: 20,\n },\n helperPill: {\n backgroundColor: 'rgba(255,255,255,0.1)',\n paddingVertical: 8,\n paddingHorizontal: 16,\n borderRadius: 20,\n },\n helperText: {\n color: 'rgba(255,255,255,0.9)',\n fontSize: 12,\n fontWeight: '500',\n },\n});"]}
1
+ {"version":3,"file":"IdCard.js","sourceRoot":"","sources":["../../../../src/components/OverLay/IdCard.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport {\n Animated,\n Platform,\n SafeAreaView,\n StatusBar,\n StyleSheet,\n Text,\n View,\n useWindowDimensions,\n} from 'react-native';\nimport Svg, {\n Defs,\n G,\n LinearGradient,\n Mask,\n Path,\n Rect,\n Stop,\n} from 'react-native-svg';\nimport ScanningLine from '../Svgs/scanningLine';\nimport StepOverlay from './StepOverlay';\nimport { IdCardOverlayProps } from './type';\n\nconst IdCardOverlay = ({\n cornerOpacity,\n instructions,\n stepperProps,\n isSuccess,\n language = 'en',\n xMin: xMinPercent = 5,\n xMax: xMaxPercent = 95,\n yMin: yMinPercent = 34,\n yMax: yMaxPercent = 66,\n}: IdCardOverlayProps & { xMin?: number, xMax?: number, yMin?: number, yMax?: number }) => {\n const AnimatedG = Animated.createAnimatedComponent(G);\n \n // 1. Get baseline window dimensions (fallback for Native mobile)\n const { width: windowWidth, height: windowHeight } = useWindowDimensions();\n \n // 2. Track actual container dimensions (Crucial for Web Modals where window != container)\n const [container, setContainer] = useState({ width: windowWidth, height: windowHeight });\n\n // 3. Convert parent percentages to exact pixels within the container\n const xMin = (container.width * xMinPercent) / 100;\n const xMax = (container.width * xMaxPercent) / 100;\n const yMin = (container.height * yMinPercent) / 100;\n const yMax = (container.height * yMaxPercent) / 100;\n\n const boxWidth = xMax - xMin;\n const boxHeight = yMax - yMin;\n\n // --- Clean, Professional Copy Formatting ---\n const formatDocType = (type?: string) => {\n if (!type) return 'document';\n return type.replace(/_/g, ' ').toLowerCase();\n };\n\n const getSideText = (side?: string) => {\n if (side === 'front') return language === 'en' ? 'front' : 'recto';\n return language === 'en' ? 'back' : 'verso';\n };\n\n const docTypeFormatted = formatDocType(stepperProps?.selectedDocumentType);\n const sideText = getSideText(stepperProps?.side);\n\n const bottomTitle = language === 'en'\n ? `Position the ${sideText} of your ${docTypeFormatted}`\n : `Positionnez le ${sideText} de votre ${docTypeFormatted}`;\n\n const bottomSubtitle = language === 'en'\n ? 'Ensure all details are clear and readable.'\n : 'Assurez-vous que tous les détails sont lisibles.';\n\n const helperText = language === 'en'\n ? 'No glare • All corners visible • Hold steady'\n : 'Pas de reflets • Coins visibles • Maintenez stable';\n\n // --- SVG Constants ---\n const CORNER_SIZE = 40;\n const STROKE_WIDTH = 4;\n const BORDER_RADIUS = 16; \n\n // Safety check to prevent SVG NaN errors during initial render\n if (container.width === 0 || container.height === 0 || boxWidth <= 0) {\n return <View style={StyleSheet.absoluteFill} />;\n }\n\n return (\n <View \n style={StyleSheet.absoluteFill} \n pointerEvents=\"box-none\"\n onLayout={(e) => {\n // Update container dimensions only if they change to prevent loops\n const { width, height } = e.nativeEvent.layout;\n if (width !== container.width || height !== container.height) {\n setContainer({ width, height });\n }\n }}\n >\n <StatusBar translucent backgroundColor=\"transparent\" barStyle=\"light-content\" />\n\n {/* SVG Overlay */}\n <Svg width={container.width} height={container.height} style={styles.svg}>\n <Defs>\n <Mask id=\"cameraMask\">\n <Rect x=\"0\" y=\"0\" width={container.width} height={container.height} fill=\"white\" />\n {/* Transparent Cutout */}\n <Rect\n x={xMin}\n y={yMin}\n width={boxWidth}\n height={boxHeight}\n rx={BORDER_RADIUS}\n ry={BORDER_RADIUS}\n fill=\"black\"\n />\n </Mask>\n <LinearGradient id=\"scanBorderGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <Stop offset=\"0%\" stopColor=\"#4ADE80\" />\n <Stop offset=\"100%\" stopColor=\"#22C55E\" />\n </LinearGradient>\n </Defs>\n\n {/* Dim background */}\n <Rect x=\"0\" y=\"0\" width={container.width} height={container.height} fill=\"rgba(0,0,0,0.85)\" mask=\"url(#cameraMask)\" />\n\n {/* Main Card Border */}\n <Rect\n x={xMin}\n y={yMin}\n width={boxWidth}\n height={boxHeight}\n rx={BORDER_RADIUS}\n ry={BORDER_RADIUS}\n stroke={isSuccess ? '#2DBD60' : \"rgba(255,255,255,0.25)\"}\n strokeWidth={isSuccess ? 3 : 1.5}\n fill=\"transparent\"\n />\n\n {/* Professional Corner Guides */}\n <AnimatedG opacity={cornerOpacity || 1}>\n {/* Top Left */}\n <Path\n d={`M ${xMin} ${yMin + CORNER_SIZE} L ${xMin} ${yMin + BORDER_RADIUS} Q ${xMin} ${yMin} ${xMin + BORDER_RADIUS} ${yMin} L ${xMin + CORNER_SIZE} ${yMin}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Top Right */}\n <Path\n d={`M ${xMax - CORNER_SIZE} ${yMin} L ${xMax - BORDER_RADIUS} ${yMin} Q ${xMax} ${yMin} ${xMax} ${yMin + BORDER_RADIUS} L ${xMax} ${yMin + CORNER_SIZE}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Bottom Left */}\n <Path\n d={`M ${xMin} ${yMax - CORNER_SIZE} L ${xMin} ${yMax - BORDER_RADIUS} Q ${xMin} ${yMax} ${xMin + BORDER_RADIUS} ${yMax} L ${xMin + CORNER_SIZE} ${yMax}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n {/* Bottom Right */}\n <Path\n d={`M ${xMax - CORNER_SIZE} ${yMax} L ${xMax - BORDER_RADIUS} ${yMax} Q ${xMax} ${yMax} ${xMax} ${yMax - BORDER_RADIUS} L ${xMax} ${yMax - CORNER_SIZE}`}\n stroke=\"url(#scanBorderGradient)\"\n strokeWidth={STROKE_WIDTH}\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </AnimatedG>\n </Svg>\n\n {/* Scanning animation */}\n {!isSuccess && (\n <ScanningLine yMin={yMin} yMax={yMax} screenWidth={container.width} height={container.height} />\n )}\n\n {/* Top UI Zone */}\n <View style={[styles.topZone, { height: yMin }]} pointerEvents=\"box-none\">\n <SafeAreaView style={styles.safeAreaZone} pointerEvents=\"box-none\">\n {stepperProps && (\n <View style={styles.stepperWrapper}>\n <StepOverlay {...stepperProps} />\n </View>\n )}\n {instructions && (\n <View style={styles.instructionsContainer}>\n <View style={styles.instructionsBadge}>\n <Text style={styles.instructionsText}>{instructions}</Text>\n </View>\n </View>\n )}\n </SafeAreaView>\n </View>\n\n {/* Bottom UI Zone */}\n <View style={[styles.bottomZone, { top: yMax + 20 }]} pointerEvents=\"box-none\">\n <Text style={styles.bottomTitle}>{bottomTitle}</Text>\n <Text style={styles.bottomSubtitle}>{bottomSubtitle}</Text>\n <View style={styles.helperPill}>\n <Text style={styles.helperText}>{helperText}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default IdCardOverlay;\n\nconst styles = StyleSheet.create({\n svg: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n },\n topZone: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n justifyContent: 'flex-start',\n },\n safeAreaZone: {\n flex: 1,\n paddingTop: Platform.OS === 'android' ? (StatusBar.currentHeight || 0) + 8 : 8,\n },\n stepperWrapper: {\n paddingHorizontal: 20,\n },\n instructionsContainer: {\n alignItems: 'center',\n marginTop: 'auto',\n marginBottom: 24,\n paddingHorizontal: 20,\n },\n instructionsBadge: {\n backgroundColor: 'rgba(0,0,0,0.6)',\n borderRadius: 8,\n paddingVertical: 8,\n paddingHorizontal: 14,\n },\n instructionsText: {\n color: '#FFFFFF',\n fontSize: 13,\n fontWeight: '500',\n letterSpacing: 0.3,\n },\n bottomZone: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n alignItems: 'center',\n paddingHorizontal: 24,\n },\n bottomTitle: {\n color: '#FFFFFF',\n fontSize: 18,\n fontWeight: '600',\n textAlign: 'center',\n letterSpacing: 0.3,\n marginBottom: 6,\n },\n bottomSubtitle: {\n color: 'rgba(255,255,255,0.7)',\n fontSize: 14,\n textAlign: 'center',\n fontWeight: '400',\n marginBottom: 20,\n },\n helperPill: {\n backgroundColor: 'rgba(255,255,255,0.1)',\n paddingVertical: 8,\n paddingHorizontal: 16,\n borderRadius: 20,\n },\n helperText: {\n color: 'rgba(255,255,255,0.9)',\n fontSize: 12,\n fontWeight: '500',\n },\n});"]}
@@ -1 +1 @@
1
- {"version":3,"file":"countriesData.d.ts","sourceRoot":"","sources":["../../../src/config/countriesData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA8E/C,CAAC"}
1
+ {"version":3,"file":"countriesData.d.ts","sourceRoot":"","sources":["../../../src/config/countriesData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA8E/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"countriesData.js","sourceRoot":"","sources":["../../../src/config/countriesData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Country } from \"../types/KYC.types\";\n\n\n\n\n\nexport const countryData: Record<string, Country> = {\n FR: { name: 'France', name_en: \"France\", flag: '🇫🇷' },\n CM: { name: 'Cameroun', name_en: \"Cameroon\", flag: '🇨🇲' },\n US: { name: 'États-Unis', name_en: \"United States of America\", flag: '🇺🇸' },\n DE: { name: 'Allemagne', name_en: \"Germany\", flag: '🇩🇪' },\n BE: { name: 'Belgique', name_en: \"Belgium\", flag: '🇧🇪' },\n LU: { name: 'Luxembourg', name_en: \"Luxembourg\", flag: '🇱🇺' },\n IT: { name: 'Italie', name_en: \"Italy\", flag: '🇮🇹' },\n ES: { name: 'Espagne', name_en: \"Spain\", flag: '🇪🇸' },\n PT: { name: 'Portugal', name_en: \"Portugal\", flag: '🇵🇹' },\n AT: { name: 'Autriche', name_en: \"Austria\", flag: '🇦🇹' },\n CH: { name: 'Suisse', name_en: \"Switzerland\", flag: '🇨🇭' },\n NL: { name: 'Pays-Bas', name_en: \"Netherlands\", flag: '🇳🇱' },\n CA: { name: 'Canada', name_en: \"Canada\", flag: '🇨🇦', hasRegions: true },\n GB: { name: 'Royaume-Uni', name_en: \"United Kingdom\", flag: '🇬🇧' },\n AU: { name: 'Australie', name_en: \"Australia\", flag: '🇦🇺' },\n JP: { name: 'Japon', name_en: \"Japan\", flag: '🇯🇵' },\n KR: { name: 'Corée du Sud', name_en: \"South Korea\", flag: '🇰🇷' },\n SG: { name: 'Singapour', name_en: \"Singapore\", flag: '🇸🇬' },\n HK: { name: 'Hong Kong', name_en: \"Hong Kong\", flag: '🇭🇰' },\n AE: { name: 'Émirats Arabes Unis', name_en: \"United Arab Emirates\", flag: '🇦🇪' },\n SA: { name: 'Arabie Saoudite', name_en: \"Saudi Arabia\", flag: '🇸🇦' },\n QA: { name: 'Qatar', name_en: \"Qatar\", flag: '🇶🇦' },\n KW: { name: 'Koweït', name_en: \"Kuwait\", flag: '🇰🇼' },\n BH: { name: 'Bahreïn', name_en: \"Bahrain\", flag: '🇧🇭' },\n OM: { name: 'Oman', name_en: \"Oman\", flag: '🇴🇲' },\n JO: { name: 'Jordanie', name_en: \"Jordan\", flag: '🇯🇴' },\n LB: { name: 'Liban', name_en: \"Lebanon\", flag: '🇱🇧' },\n EG: { name: 'Égypte', name_en: \"Egypt\", flag: '🇪🇬' },\n MA: { name: 'Maroc', name_en: \"Morocco\", flag: '🇲🇦' },\n TN: { name: 'Tunisie', name_en: \"Tunisia\", flag: '🇹🇳' },\n DZ: { name: 'Algérie', name_en: \"Algeria\", flag: '🇩🇿' },\n SN: { name: 'Sénégal', name_en: \"Senegal\", flag: '🇸🇳' },\n CI: { name: 'Côte d\\'Ivoire', name_en: \"Ivory Coast\", flag: '🇨🇮' },\n NG: { name: 'Nigeria', name_en: \"Nigeria\", flag: '🇳🇬' },\n KE: { name: 'Kenya', name_en: \"Kenya\", flag: '🇰🇪' },\n ZA: { name: 'Afrique du Sud', name_en: \"South Africa\", flag: '🇿🇦' },\n BR: { name: 'Brésil', name_en: \"Brazil\", flag: '🇧🇷' },\n MX: { name: 'Mexique', name_en: \"Mexico\", flag: '🇲🇽' },\n AR: { name: 'Argentine', name_en: \"Argentina\", flag: '🇦🇷' },\n CL: { name: 'Chili', name_en: \"Chile\", flag: '🇨🇱' },\n PE: { name: 'Pérou', name_en: \"Peru\", flag: '🇵🇪' },\n CO: { name: 'Colombie', name_en: \"Colombia\", flag: '🇨🇴' },\n VE: { name: 'Venezuela', name_en: \"Venezuela\", flag: '🇻🇪' },\n EC: { name: 'Équateur', name_en: \"Ecuador\", flag: '🇪🇨' },\n UY: { name: 'Uruguay', name_en: \"Uruguay\", flag: '🇺🇾' },\n PY: { name: 'Paraguay', name_en: \"Paraguay\", flag: '🇵🇾' },\n BO: { name: 'Bolivie', name_en: \"Bolivia\", flag: '🇧🇴' },\n IN: { name: 'Inde', name_en: \"India\", flag: '🇮🇳' },\n CN: { name: 'Chine', name_en: \"China\", flag: '🇨🇳' },\n TH: { name: 'Thaïlande', name_en: \"Thailand\", flag: '🇹🇭' },\n VN: { name: 'Vietnam', name_en: \"Vietnam\", flag: '🇻🇳' },\n ID: { name: 'Indonésie', name_en: \"Indonesia\", flag: '🇮🇩' },\n MY: { name: 'Malaisie', name_en: \"Malaysia\", flag: '🇲🇾' },\n PH: { name: 'Philippines', name_en: \"Philippines\", flag: '🇵🇭' },\n TR: { name: 'Turquie', name_en: \"Turkey\", flag: '🇹🇷' },\n IL: { name: 'Israël', name_en: \"Israel\", flag: '🇮🇱' },\n RU: { name: 'Russie', name_en: \"Russia\", flag: '🇷🇺' },\n UA: { name: 'Ukraine', name_en: \"Ukraine\", flag: '🇺🇦' },\n PL: { name: 'Pologne', name_en: \"Poland\", flag: '🇵🇱' },\n CZ: { name: 'République Tchèque', name_en: \"Czech Republic\", flag: '🇨🇿' },\n HU: { name: 'Hongrie', name_en: \"Hungary\", flag: '🇭🇺' },\n RO: { name: 'Roumanie', name_en: \"Romania\", flag: '🇷🇴' },\n BG: { name: 'Bulgarie', name_en: \"Bulgaria\", flag: '🇧🇬' },\n HR: { name: 'Croatie', name_en: \"Croatia\", flag: '🇭🇷' },\n SI: { name: 'Slovénie', name_en: \"Slovenia\", flag: '🇸🇮' },\n SK: { name: 'Slovaquie', name_en: \"Slovakia\", flag: '🇸🇰' },\n LT: { name: 'Lituanie', name_en: \"Lithuania\", flag: '🇱🇹' },\n LV: { name: 'Lettonie', name_en: \"Latvia\", flag: '🇱🇻' },\n EE: { name: 'Estonie', name_en: \"Estonia\", flag: '🇪🇪' },\n FI: { name: 'Finlande', name_en: \"Finland\", flag: '🇫🇮' },\n SE: { name: 'Suède', name_en: \"Sweden\", flag: '🇸🇪' },\n NO: { name: 'Norvège', name_en: \"Norway\", flag: '🇳🇴' },\n DK: { name: 'Danemark', name_en: \"Denmark\", flag: '🇩🇰' },\n IS: { name: 'Islande', name_en: \"Iceland\", flag: '🇮🇸' },\n IE: { name: 'Irlande', name_en: \"Ireland\", flag: '🇮🇪' },\n NZ: { name: 'Nouvelle-Zélande', name_en: \"New Zealand\", flag: '🇳🇿' },\n GH: { name: 'Ghana', name_en: \"Ghana\", flag: '🇬🇭' },\n};\n"]}
1
+ {"version":3,"file":"countriesData.js","sourceRoot":"","sources":["../../../src/config/countriesData.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAA4B;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7E,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;IACzE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;IACpE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IAClE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE;IAClF,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;IACtE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACpE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;IACrE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACxD,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACpD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACpD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACjE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACxD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACxD,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3E,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IACxD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACtE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CACxD,CAAC","sourcesContent":["import { Country } from \"../types/KYC.types\";\n\nexport const countryData: Record<string, Country> = {\n FR: { name: 'France', name_en: \"France\", flag: '🇫🇷' },\n CM: { name: 'Cameroun', name_en: \"Cameroon\", flag: '🇨🇲' },\n US: { name: 'États-Unis', name_en: \"United States of America\", flag: '🇺🇸' },\n DE: { name: 'Allemagne', name_en: \"Germany\", flag: '🇩🇪' },\n BE: { name: 'Belgique', name_en: \"Belgium\", flag: '🇧🇪' },\n LU: { name: 'Luxembourg', name_en: \"Luxembourg\", flag: '🇱🇺' },\n IT: { name: 'Italie', name_en: \"Italy\", flag: '🇮🇹' },\n ES: { name: 'Espagne', name_en: \"Spain\", flag: '🇪🇸' },\n PT: { name: 'Portugal', name_en: \"Portugal\", flag: '🇵🇹' },\n AT: { name: 'Autriche', name_en: \"Austria\", flag: '🇦🇹' },\n CH: { name: 'Suisse', name_en: \"Switzerland\", flag: '🇨🇭' },\n NL: { name: 'Pays-Bas', name_en: \"Netherlands\", flag: '🇳🇱' },\n CA: { name: 'Canada', name_en: \"Canada\", flag: '🇨🇦', hasRegions: true },\n GB: { name: 'Royaume-Uni', name_en: \"United Kingdom\", flag: '🇬🇧' },\n AU: { name: 'Australie', name_en: \"Australia\", flag: '🇦🇺' },\n JP: { name: 'Japon', name_en: \"Japan\", flag: '🇯🇵' },\n KR: { name: 'Corée du Sud', name_en: \"South Korea\", flag: '🇰🇷' },\n SG: { name: 'Singapour', name_en: \"Singapore\", flag: '🇸🇬' },\n HK: { name: 'Hong Kong', name_en: \"Hong Kong\", flag: '🇭🇰' },\n AE: { name: 'Émirats Arabes Unis', name_en: \"United Arab Emirates\", flag: '🇦🇪' },\n SA: { name: 'Arabie Saoudite', name_en: \"Saudi Arabia\", flag: '🇸🇦' },\n QA: { name: 'Qatar', name_en: \"Qatar\", flag: '🇶🇦' },\n KW: { name: 'Koweït', name_en: \"Kuwait\", flag: '🇰🇼' },\n BH: { name: 'Bahreïn', name_en: \"Bahrain\", flag: '🇧🇭' },\n OM: { name: 'Oman', name_en: \"Oman\", flag: '🇴🇲' },\n JO: { name: 'Jordanie', name_en: \"Jordan\", flag: '🇯🇴' },\n LB: { name: 'Liban', name_en: \"Lebanon\", flag: '🇱🇧' },\n EG: { name: 'Égypte', name_en: \"Egypt\", flag: '🇪🇬' },\n MA: { name: 'Maroc', name_en: \"Morocco\", flag: '🇲🇦' },\n TN: { name: 'Tunisie', name_en: \"Tunisia\", flag: '🇹🇳' },\n DZ: { name: 'Algérie', name_en: \"Algeria\", flag: '🇩🇿' },\n SN: { name: 'Sénégal', name_en: \"Senegal\", flag: '🇸🇳' },\n CI: { name: 'Côte d\\'Ivoire', name_en: \"Ivory Coast\", flag: '🇨🇮' },\n NG: { name: 'Nigeria', name_en: \"Nigeria\", flag: '🇳🇬' },\n KE: { name: 'Kenya', name_en: \"Kenya\", flag: '🇰🇪' },\n ZA: { name: 'Afrique du Sud', name_en: \"South Africa\", flag: '🇿🇦' },\n BR: { name: 'Brésil', name_en: \"Brazil\", flag: '🇧🇷' },\n MX: { name: 'Mexique', name_en: \"Mexico\", flag: '🇲🇽' },\n AR: { name: 'Argentine', name_en: \"Argentina\", flag: '🇦🇷' },\n CL: { name: 'Chili', name_en: \"Chile\", flag: '🇨🇱' },\n PE: { name: 'Pérou', name_en: \"Peru\", flag: '🇵🇪' },\n CO: { name: 'Colombie', name_en: \"Colombia\", flag: '🇨🇴' },\n VE: { name: 'Venezuela', name_en: \"Venezuela\", flag: '🇻🇪' },\n EC: { name: 'Équateur', name_en: \"Ecuador\", flag: '🇪🇨' },\n UY: { name: 'Uruguay', name_en: \"Uruguay\", flag: '🇺🇾' },\n PY: { name: 'Paraguay', name_en: \"Paraguay\", flag: '🇵🇾' },\n BO: { name: 'Bolivie', name_en: \"Bolivia\", flag: '🇧🇴' },\n IN: { name: 'Inde', name_en: \"India\", flag: '🇮🇳' },\n CN: { name: 'Chine', name_en: \"China\", flag: '🇨🇳' },\n TH: { name: 'Thaïlande', name_en: \"Thailand\", flag: '🇹🇭' },\n VN: { name: 'Vietnam', name_en: \"Vietnam\", flag: '🇻🇳' },\n ID: { name: 'Indonésie', name_en: \"Indonesia\", flag: '🇮🇩' },\n MY: { name: 'Malaisie', name_en: \"Malaysia\", flag: '🇲🇾' },\n PH: { name: 'Philippines', name_en: \"Philippines\", flag: '🇵🇭' },\n TR: { name: 'Turquie', name_en: \"Turkey\", flag: '🇹🇷' },\n IL: { name: 'Israël', name_en: \"Israel\", flag: '🇮🇱' },\n RU: { name: 'Russie', name_en: \"Russia\", flag: '🇷🇺' },\n UA: { name: 'Ukraine', name_en: \"Ukraine\", flag: '🇺🇦' },\n PL: { name: 'Pologne', name_en: \"Poland\", flag: '🇵🇱' },\n CZ: { name: 'République Tchèque', name_en: \"Czech Republic\", flag: '🇨🇿' },\n HU: { name: 'Hongrie', name_en: \"Hungary\", flag: '🇭🇺' },\n RO: { name: 'Roumanie', name_en: \"Romania\", flag: '🇷🇴' },\n BG: { name: 'Bulgarie', name_en: \"Bulgaria\", flag: '🇧🇬' },\n HR: { name: 'Croatie', name_en: \"Croatia\", flag: '🇭🇷' },\n SI: { name: 'Slovénie', name_en: \"Slovenia\", flag: '🇸🇮' },\n SK: { name: 'Slovaquie', name_en: \"Slovakia\", flag: '🇸🇰' },\n LT: { name: 'Lituanie', name_en: \"Lithuania\", flag: '🇱🇹' },\n LV: { name: 'Lettonie', name_en: \"Latvia\", flag: '🇱🇻' },\n EE: { name: 'Estonie', name_en: \"Estonia\", flag: '🇪🇪' },\n FI: { name: 'Finlande', name_en: \"Finland\", flag: '🇫🇮' },\n SE: { name: 'Suède', name_en: \"Sweden\", flag: '🇸🇪' },\n NO: { name: 'Norvège', name_en: \"Norway\", flag: '🇳🇴' },\n DK: { name: 'Danemark', name_en: \"Denmark\", flag: '🇩🇰' },\n IS: { name: 'Islande', name_en: \"Iceland\", flag: '🇮🇸' },\n IE: { name: 'Irlande', name_en: \"Ireland\", flag: '🇮🇪' },\n NZ: { name: 'Nouvelle-Zélande', name_en: \"New Zealand\", flag: '🇳🇿' },\n GH: { name: 'Ghana', name_en: \"Ghana\", flag: '🇬🇭' },\n};\n"]}
@@ -586,9 +586,9 @@ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, init
586
586
  step: 0,
587
587
  data: {
588
588
  template_id: templateId,
589
+ ...(referenceId ? { reference_id: referenceId } : {}),
589
590
  metadata: {
590
591
  language: initialLanguage,
591
- ...(referenceId ? { reference_id: referenceId } : {}),
592
592
  },
593
593
  },
594
594
  templateId: templateId,