@transfergratis/react-native-sdk 0.1.3 → 0.1.5

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 (308) hide show
  1. package/android/.idea/caches/deviceStreaming.xml +860 -0
  2. package/android/build/.transforms/{7ec900c0f64f5f1a7c88998dd44001b8 → 01c28d00c798aa4846f16ce72123ebf9}/transformed/classes/classes_dex/classes.dex +0 -0
  3. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +1 -0
  4. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  5. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  6. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  7. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -2
  8. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  9. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +51 -48
  10. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-transfergratis-react-native-sdk.jar +0 -0
  11. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +1 -0
  12. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  13. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  14. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  15. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  16. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  17. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  18. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  19. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  20. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  21. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  22. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  23. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  24. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  25. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  26. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  27. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  46. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  51. package/android/build/outputs/aar/transfergratis-react-native-sdk-debug.aar +0 -0
  52. package/android/build/outputs/logs/manifest-merger-debug-report.txt +27 -23
  53. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule.class +0 -0
  54. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkView.class +0 -0
  55. package/android/build.gradle +1 -5
  56. package/android/src/main/AndroidManifest.xml +1 -0
  57. package/build/api/axios.d.ts +30 -0
  58. package/build/api/axios.d.ts.map +1 -0
  59. package/build/api/axios.js +92 -0
  60. package/build/api/axios.js.map +1 -0
  61. package/build/components/EnhancedCameraView.d.ts +1 -41
  62. package/build/components/EnhancedCameraView.d.ts.map +1 -1
  63. package/build/components/EnhancedCameraView.js +76 -35
  64. package/build/components/EnhancedCameraView.js.map +1 -1
  65. package/build/components/EnhancedCameraView.web.d.ts +1 -41
  66. package/build/components/EnhancedCameraView.web.d.ts.map +1 -1
  67. package/build/components/EnhancedCameraView.web.js +28 -4
  68. package/build/components/EnhancedCameraView.web.js.map +1 -1
  69. package/build/components/KYCElements/CountrySelectionTemplate.d.ts +2 -2
  70. package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -1
  71. package/build/components/KYCElements/CountrySelectionTemplate.js +71 -114
  72. package/build/components/KYCElements/CountrySelectionTemplate.js.map +1 -1
  73. package/build/components/KYCElements/FileUploadTemplate.d.ts.map +1 -1
  74. package/build/components/KYCElements/FileUploadTemplate.js +7 -3
  75. package/build/components/KYCElements/FileUploadTemplate.js.map +1 -1
  76. package/build/components/KYCElements/IDCardCapture.d.ts +7 -2
  77. package/build/components/KYCElements/IDCardCapture.d.ts.map +1 -1
  78. package/build/components/KYCElements/IDCardCapture.js +253 -104
  79. package/build/components/KYCElements/IDCardCapture.js.map +1 -1
  80. package/build/components/KYCElements/InitializationStep.d.ts +5 -0
  81. package/build/components/KYCElements/InitializationStep.d.ts.map +1 -0
  82. package/build/components/KYCElements/InitializationStep.js +41 -0
  83. package/build/components/KYCElements/InitializationStep.js.map +1 -0
  84. package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -1
  85. package/build/components/KYCElements/LocationCaptureTemplate.js +15 -13
  86. package/build/components/KYCElements/LocationCaptureTemplate.js.map +1 -1
  87. package/build/components/KYCElements/OrientationVideoCapture.d.ts +2 -2
  88. package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -1
  89. package/build/components/KYCElements/OrientationVideoCapture.js.map +1 -1
  90. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts +2 -2
  91. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -1
  92. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -1
  93. package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts +2 -2
  94. package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -1
  95. package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -1
  96. package/build/components/KYCElements/ReviewSubmitTemplate.d.ts +12 -0
  97. package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
  98. package/build/components/KYCElements/ReviewSubmitTemplate.js +171 -0
  99. package/build/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
  100. package/build/components/KYCElements/SelfieCaptureTemplate.d.ts +6 -2
  101. package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -1
  102. package/build/components/KYCElements/SelfieCaptureTemplate.js +105 -35
  103. package/build/components/KYCElements/SelfieCaptureTemplate.js.map +1 -1
  104. package/build/components/KYCElements/VerificationProgressTemplate.d.ts +12 -0
  105. package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
  106. package/build/components/KYCElements/VerificationProgressTemplate.js +93 -0
  107. package/build/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
  108. package/build/components/OverLay/IdCard.d.ts +1 -1
  109. package/build/components/OverLay/IdCard.d.ts.map +1 -1
  110. package/build/components/OverLay/IdCard.js +10 -6
  111. package/build/components/OverLay/IdCard.js.map +1 -1
  112. package/build/components/OverLay/SelfieOverlay.d.ts +1 -1
  113. package/build/components/OverLay/SelfieOverlay.d.ts.map +1 -1
  114. package/build/components/OverLay/SelfieOverlay.js +5 -4
  115. package/build/components/OverLay/SelfieOverlay.js.map +1 -1
  116. package/build/components/OverLay/type.d.ts +71 -1
  117. package/build/components/OverLay/type.d.ts.map +1 -1
  118. package/build/components/OverLay/type.js.map +1 -1
  119. package/build/components/TemplateKYCExample.d.ts.map +1 -1
  120. package/build/components/TemplateKYCExample.js +72 -197
  121. package/build/components/TemplateKYCExample.js.map +1 -1
  122. package/build/components/TemplateKYCFlowRefactored.d.ts.map +1 -1
  123. package/build/components/TemplateKYCFlowRefactored.js +63 -39
  124. package/build/components/TemplateKYCFlowRefactored.js.map +1 -1
  125. package/build/components/VisionCameraView.js +1 -1
  126. package/build/components/VisionCameraView.js.map +1 -1
  127. package/build/components/example/OrientationVideoExample.d.ts.map +1 -1
  128. package/build/components/example/OrientationVideoExample.js +1 -5
  129. package/build/components/example/OrientationVideoExample.js.map +1 -1
  130. package/build/components/ui/Button.js +1 -1
  131. package/build/components/ui/Button.js.map +1 -1
  132. package/build/config/countriesData.d.ts +3 -0
  133. package/build/config/countriesData.d.ts.map +1 -0
  134. package/build/config/countriesData.js +79 -0
  135. package/build/config/countriesData.js.map +1 -0
  136. package/build/config/region_mapping.d.ts +3 -0
  137. package/build/config/region_mapping.d.ts.map +1 -0
  138. package/build/config/region_mapping.js +687 -0
  139. package/build/config/region_mapping.js.map +1 -0
  140. package/build/hooks/useI18n.d.ts +11 -0
  141. package/build/hooks/useI18n.d.ts.map +1 -0
  142. package/build/hooks/useI18n.js +37 -0
  143. package/build/hooks/useI18n.js.map +1 -0
  144. package/build/hooks/useOrientationVideo.d.ts +1 -2
  145. package/build/hooks/useOrientationVideo.d.ts.map +1 -1
  146. package/build/hooks/useOrientationVideo.js +2 -1
  147. package/build/hooks/useOrientationVideo.js.map +1 -1
  148. package/build/hooks/useRealtimeVerifier.d.ts +28 -0
  149. package/build/hooks/useRealtimeVerifier.d.ts.map +1 -0
  150. package/build/hooks/useRealtimeVerifier.js +91 -0
  151. package/build/hooks/useRealtimeVerifier.js.map +1 -0
  152. package/build/hooks/useTemplateKYCFlow.d.ts +1 -0
  153. package/build/hooks/useTemplateKYCFlow.d.ts.map +1 -1
  154. package/build/hooks/useTemplateKYCFlow.js +337 -38
  155. package/build/hooks/useTemplateKYCFlow.js.map +1 -1
  156. package/build/i18n/en/index.d.ts +168 -0
  157. package/build/i18n/en/index.d.ts.map +1 -0
  158. package/build/i18n/en/index.js +195 -0
  159. package/build/i18n/en/index.js.map +1 -0
  160. package/build/i18n/fr/index.d.ts +168 -0
  161. package/build/i18n/fr/index.d.ts.map +1 -0
  162. package/build/i18n/fr/index.js +194 -0
  163. package/build/i18n/fr/index.js.map +1 -0
  164. package/build/i18n/index.d.ts +10 -0
  165. package/build/i18n/index.d.ts.map +1 -0
  166. package/build/i18n/index.js +56 -0
  167. package/build/i18n/index.js.map +1 -0
  168. package/build/i18n/types.d.ts +153 -0
  169. package/build/i18n/types.d.ts.map +1 -0
  170. package/build/i18n/types.js +3 -0
  171. package/build/i18n/types.js.map +1 -0
  172. package/build/i18n/usage-example.d.ts +4 -0
  173. package/build/i18n/usage-example.d.ts.map +1 -0
  174. package/build/i18n/usage-example.js +189 -0
  175. package/build/i18n/usage-example.js.map +1 -0
  176. package/build/modules/api/CardAuthentification.d.ts +22 -0
  177. package/build/modules/api/CardAuthentification.d.ts.map +1 -0
  178. package/build/modules/api/CardAuthentification.js +107 -0
  179. package/build/modules/api/CardAuthentification.js.map +1 -0
  180. package/build/modules/api/KYCService.d.ts +57 -1
  181. package/build/modules/api/KYCService.d.ts.map +1 -1
  182. package/build/modules/api/KYCService.js +348 -27
  183. package/build/modules/api/KYCService.js.map +1 -1
  184. package/build/modules/api/SelfieVerification.d.ts +3 -0
  185. package/build/modules/api/SelfieVerification.d.ts.map +1 -0
  186. package/build/modules/api/SelfieVerification.js +9 -0
  187. package/build/modules/api/SelfieVerification.js.map +1 -0
  188. package/build/modules/api/backendApi.d.ts +2 -0
  189. package/build/modules/api/backendApi.d.ts.map +1 -0
  190. package/build/modules/api/backendApi.js +6 -0
  191. package/build/modules/api/backendApi.js.map +1 -0
  192. package/build/modules/api/types.d.ts +20 -0
  193. package/build/modules/api/types.d.ts.map +1 -0
  194. package/build/modules/api/types.js +2 -0
  195. package/build/modules/api/types.js.map +1 -0
  196. package/build/modules/camera/VisionCameraModule.d.ts +1 -1
  197. package/build/modules/camera/VisionCameraModule.d.ts.map +1 -1
  198. package/build/modules/camera/VisionCameraModule.js +8 -2
  199. package/build/modules/camera/VisionCameraModule.js.map +1 -1
  200. package/build/types/KYC.types.d.ts +59 -7
  201. package/build/types/KYC.types.d.ts.map +1 -1
  202. package/build/types/KYC.types.js +9 -1
  203. package/build/types/KYC.types.js.map +1 -1
  204. package/build/utils/cropByObb.d.ts +11 -0
  205. package/build/utils/cropByObb.d.ts.map +1 -0
  206. package/build/utils/cropByObb.js +78 -0
  207. package/build/utils/cropByObb.js.map +1 -0
  208. package/build/utils/get-document-type-info.d.ts +13 -0
  209. package/build/utils/get-document-type-info.d.ts.map +1 -0
  210. package/build/utils/get-document-type-info.js +59 -0
  211. package/build/utils/get-document-type-info.js.map +1 -0
  212. package/build/utils/pathToBase64.d.ts +3 -0
  213. package/build/utils/pathToBase64.d.ts.map +1 -0
  214. package/build/utils/pathToBase64.js +47 -0
  215. package/build/utils/pathToBase64.js.map +1 -0
  216. package/build/utils/remove-duplicate.d.ts +2 -0
  217. package/build/utils/remove-duplicate.d.ts.map +1 -0
  218. package/build/utils/remove-duplicate.js +4 -0
  219. package/build/utils/remove-duplicate.js.map +1 -0
  220. package/package.json +3 -1
  221. package/src/api/axios.ts +144 -0
  222. package/src/components/EnhancedCameraView.tsx +96 -78
  223. package/src/components/EnhancedCameraView.web.tsx +41 -40
  224. package/src/components/KYCElements/CountrySelectionTemplate.tsx +104 -136
  225. package/src/components/KYCElements/FileUploadTemplate.tsx +14 -8
  226. package/src/components/KYCElements/IDCardCapture.tsx +311 -115
  227. package/src/components/KYCElements/InitializationStep.tsx +53 -0
  228. package/src/components/KYCElements/LocationCaptureTemplate.tsx +17 -15
  229. package/src/components/KYCElements/OrientationVideoCapture.tsx +2 -2
  230. package/src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx +2 -2
  231. package/src/components/KYCElements/OrientationVideoCaptureFinal.tsx +2 -2
  232. package/src/components/KYCElements/ReviewSubmitTemplate.tsx +201 -0
  233. package/src/components/KYCElements/SelfieCaptureTemplate.tsx +140 -53
  234. package/src/components/KYCElements/VerificationProgressTemplate.tsx +123 -0
  235. package/src/components/OverLay/IdCard.tsx +17 -9
  236. package/src/components/OverLay/SelfieOverlay.tsx +6 -5
  237. package/src/components/OverLay/type.ts +64 -2
  238. package/src/components/TemplateKYCExample.tsx +76 -197
  239. package/src/components/TemplateKYCFlowRefactored.tsx +74 -46
  240. package/src/components/VisionCameraView.tsx +1 -1
  241. package/src/components/example/OrientationVideoExample.tsx +3 -7
  242. package/src/components/ui/Button.tsx +1 -1
  243. package/src/config/countriesData.ts +84 -0
  244. package/src/config/region_mapping.ts +688 -0
  245. package/src/hooks/useI18n.ts +53 -0
  246. package/src/hooks/useOrientationVideo.ts +2 -2
  247. package/src/hooks/useRealtimeVerifier.ts +128 -0
  248. package/src/hooks/useTemplateKYCFlow.tsx +375 -53
  249. package/src/i18n/README.md +288 -0
  250. package/src/i18n/en/index.ts +206 -0
  251. package/src/i18n/fr/index.ts +205 -0
  252. package/src/i18n/index.ts +65 -0
  253. package/src/i18n/types.ts +172 -0
  254. package/src/i18n/usage-example.tsx +202 -0
  255. package/src/modules/api/CardAuthentification.ts +114 -0
  256. package/src/modules/api/KYCService.ts +403 -30
  257. package/src/modules/api/SelfieVerification.ts +11 -0
  258. package/src/modules/api/backendApi.ts +8 -0
  259. package/src/modules/api/types.ts +24 -0
  260. package/src/modules/camera/VisionCameraModule.ts +16 -7
  261. package/src/types/KYC.types.ts +83 -14
  262. package/src/utils/cropByObb.ts +99 -0
  263. package/src/utils/get-document-type-info.ts +62 -0
  264. package/src/utils/pathToBase64.ts +47 -0
  265. package/src/utils/remove-duplicate.ts +3 -0
  266. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/results.bin +0 -1
  267. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/BuildConfig.dex +0 -0
  268. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$1.dex +0 -0
  269. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$2.dex +0 -0
  270. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$1.dex +0 -0
  271. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$2.dex +0 -0
  272. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$3.dex +0 -0
  273. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$4.dex +0 -0
  274. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$5.dex +0 -0
  275. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$6.dex +0 -0
  276. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$1.dex +0 -0
  277. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$2.dex +0 -0
  278. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$3.dex +0 -0
  279. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  280. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$View$1.dex +0 -0
  281. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$1.dex +0 -0
  282. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$2.dex +0 -0
  283. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkModule.dex +0 -0
  284. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/kyc/transfergratis/com/TransfergratisSdkView.dex +0 -0
  285. package/android/build/.transforms/d6df0e53bfc3165a876965af720f910a/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  286. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/BuildConfig.class +0 -0
  287. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$1.class +0 -0
  288. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$2.class +0 -0
  289. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$1.class +0 -0
  290. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$2.class +0 -0
  291. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$3.class +0 -0
  292. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$4.class +0 -0
  293. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$5.class +0 -0
  294. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$6.class +0 -0
  295. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$1.class +0 -0
  296. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$2.class +0 -0
  297. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$3.class +0 -0
  298. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$4.class +0 -0
  299. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$View$1.class +0 -0
  300. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$1.class +0 -0
  301. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$2.class +0 -0
  302. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkModule.class +0 -0
  303. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/kyc/transfergratis/com/TransfergratisSdkView.class +0 -0
  304. package/android/build/tmp/kotlin-classes/debug/META-INF/transfergratis-sdk_debug.kotlin_module +0 -0
  305. package/src/types/nativewind.d.ts +0 -2
  306. /package/android/build/.transforms/{7ec900c0f64f5f1a7c88998dd44001b8 → 01c28d00c798aa4846f16ce72123ebf9}/results.bin +0 -0
  307. /package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/{transfergratis-sdk_debug.kotlin_module → transfergratis-react-native-sdk_debug.kotlin_module} +0 -0
  308. /package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/transfergratis-sdk_debug.kotlin_module → tmp/kotlin-classes/debug/META-INF/transfergratis-react-native-sdk_debug.kotlin_module} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CountrySelectionTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/CountrySelectionTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAyC,MAAM,uBAAuB,CAAC;AAEjG,UAAU,6BAA6B;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAiFD,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAiF5E,CAAC"}
1
+ {"version":3,"file":"CountrySelectionTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/CountrySelectionTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAyC,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAO1G,UAAU,6BAA6B;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CA2G5E,CAAC"}
@@ -1,87 +1,18 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { View, Text, TouchableOpacity, StyleSheet, ScrollView } from 'react-native';
3
- const countryData = {
4
- FR: { name: 'France', flag: '🇫🇷' },
5
- CM: { name: 'Cameroun', flag: '🇨🇲' },
6
- US: { name: 'États-Unis', flag: '🇺🇸' },
7
- DE: { name: 'Allemagne', flag: '🇩🇪' },
8
- BE: { name: 'Belgique', flag: '🇧🇪' },
9
- LU: { name: 'Luxembourg', flag: '🇱🇺' },
10
- IT: { name: 'Italie', flag: '🇮🇹' },
11
- ES: { name: 'Espagne', flag: '🇪🇸' },
12
- PT: { name: 'Portugal', flag: '🇵🇹' },
13
- AT: { name: 'Autriche', flag: '🇦🇹' },
14
- CH: { name: 'Suisse', flag: '🇨🇭' },
15
- NL: { name: 'Pays-Bas', flag: '🇳🇱' },
16
- CA: { name: 'Canada', flag: '🇨🇦' },
17
- GB: { name: 'Royaume-Uni', flag: '🇬🇧' },
18
- AU: { name: 'Australie', flag: '🇦🇺' },
19
- JP: { name: 'Japon', flag: '🇯🇵' },
20
- KR: { name: 'Corée du Sud', flag: '🇰🇷' },
21
- SG: { name: 'Singapour', flag: '🇸🇬' },
22
- HK: { name: 'Hong Kong', flag: '🇭🇰' },
23
- AE: { name: 'Émirats Arabes Unis', flag: '🇦🇪' },
24
- SA: { name: 'Arabie Saoudite', flag: '🇸🇦' },
25
- QA: { name: 'Qatar', flag: '🇶🇦' },
26
- KW: { name: 'Koweït', flag: '🇰🇼' },
27
- BH: { name: 'Bahreïn', flag: '🇧🇭' },
28
- OM: { name: 'Oman', flag: '🇴🇲' },
29
- JO: { name: 'Jordanie', flag: '🇯🇴' },
30
- LB: { name: 'Liban', flag: '🇱🇧' },
31
- EG: { name: 'Égypte', flag: '🇪🇬' },
32
- MA: { name: 'Maroc', flag: '🇲🇦' },
33
- TN: { name: 'Tunisie', flag: '🇹🇳' },
34
- DZ: { name: 'Algérie', flag: '🇩🇿' },
35
- SN: { name: 'Sénégal', flag: '🇸🇳' },
36
- CI: { name: 'Côte d\'Ivoire', flag: '🇨🇮' },
37
- NG: { name: 'Nigeria', flag: '🇳🇬' },
38
- KE: { name: 'Kenya', flag: '🇰🇪' },
39
- ZA: { name: 'Afrique du Sud', flag: '🇿🇦' },
40
- BR: { name: 'Brésil', flag: '🇧🇷' },
41
- MX: { name: 'Mexique', flag: '🇲🇽' },
42
- AR: { name: 'Argentine', flag: '🇦🇷' },
43
- CL: { name: 'Chili', flag: '🇨🇱' },
44
- PE: { name: 'Pérou', flag: '🇵🇪' },
45
- CO: { name: 'Colombie', flag: '🇨🇴' },
46
- VE: { name: 'Venezuela', flag: '🇻🇪' },
47
- EC: { name: 'Équateur', flag: '🇪🇨' },
48
- UY: { name: 'Uruguay', flag: '🇺🇾' },
49
- PY: { name: 'Paraguay', flag: '🇵🇾' },
50
- BO: { name: 'Bolivie', flag: '🇧🇴' },
51
- IN: { name: 'Inde', flag: '🇮🇳' },
52
- CN: { name: 'Chine', flag: '🇨🇳' },
53
- TH: { name: 'Thaïlande', flag: '🇹🇭' },
54
- VN: { name: 'Vietnam', flag: '🇻🇳' },
55
- ID: { name: 'Indonésie', flag: '🇮🇩' },
56
- MY: { name: 'Malaisie', flag: '🇲🇾' },
57
- PH: { name: 'Philippines', flag: '🇵🇭' },
58
- TR: { name: 'Turquie', flag: '🇹🇷' },
59
- IL: { name: 'Israël', flag: '🇮🇱' },
60
- RU: { name: 'Russie', flag: '🇷🇺' },
61
- UA: { name: 'Ukraine', flag: '🇺🇦' },
62
- PL: { name: 'Pologne', flag: '🇵🇱' },
63
- CZ: { name: 'République Tchèque', flag: '🇨🇿' },
64
- HU: { name: 'Hongrie', flag: '🇭🇺' },
65
- RO: { name: 'Roumanie', flag: '🇷🇴' },
66
- BG: { name: 'Bulgarie', flag: '🇧🇬' },
67
- HR: { name: 'Croatie', flag: '🇭🇷' },
68
- SI: { name: 'Slovénie', flag: '🇸🇮' },
69
- SK: { name: 'Slovaquie', flag: '🇸🇰' },
70
- LT: { name: 'Lituanie', flag: '🇱🇹' },
71
- LV: { name: 'Lettonie', flag: '🇱🇻' },
72
- EE: { name: 'Estonie', flag: '🇪🇪' },
73
- FI: { name: 'Finlande', flag: '🇫🇮' },
74
- SE: { name: 'Suède', flag: '🇸🇪' },
75
- NO: { name: 'Norvège', flag: '🇳🇴' },
76
- DK: { name: 'Danemark', flag: '🇩🇰' },
77
- IS: { name: 'Islande', flag: '🇮🇸' },
78
- IE: { name: 'Irlande', flag: '🇮🇪' },
79
- NZ: { name: 'Nouvelle-Zélande', flag: '🇳🇿' },
80
- };
3
+ import { countryMapping } from '../../config/region_mapping';
4
+ import { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';
5
+ import { useI18n } from '../../hooks/useI18n';
6
+ import { Button } from '../ui/Button';
7
+ import { countryData } from '../../config/countriesData';
81
8
  export const CountrySelectionTemplate = ({ component, value, onValueChange, error, language = 'en', }) => {
9
+ const { t } = useI18n();
82
10
  const config = component.config;
83
- const allowedCountries = config.allowed_countries || Object.keys(countryData);
84
- const defaultCountry = config.default_country || 'FR';
11
+ const allowedCountries = (config.allowed_countries || Object.keys(countryData));
12
+ const defaultCountry = config.default_country || 'CM';
13
+ const { actions, state } = useTemplateKYCFlowContext();
14
+ console.log({ language }, state.currentLanguage);
15
+ const [selectedCountry, setSelectedCountry] = useState({ code: defaultCountry, ...countryData[defaultCountry] });
85
16
  const getLocalizedText = (text) => {
86
17
  return text[language] || text.en || '';
87
18
  };
@@ -93,51 +24,76 @@ export const CountrySelectionTemplate = ({ component, value, onValueChange, erro
93
24
  ...countryData[code]
94
25
  }))
95
26
  .sort((a, b) => a.name.localeCompare(b.name));
96
- return (<View style={styles.container}>
97
- <Text style={styles.title}>{getLocalizedText(component.labels)}</Text>
98
- <Text style={styles.description}>{getLocalizedText(component.instructions)}</Text>
99
-
100
- <ScrollView style={styles.countriesContainer} showsVerticalScrollIndicator={false}>
101
- {filteredCountries.map((country) => (<TouchableOpacity key={country.code} style={[
27
+ return (<View style={styles.root}>
28
+ <View style={styles.container}>
29
+ <Text style={styles.title}>{getLocalizedText(component.labels)}</Text>
30
+ <Text style={styles.description}>{getLocalizedText(component.instructions)}</Text>
31
+
32
+ <ScrollView style={styles.countriesContainer} showsVerticalScrollIndicator={false}>
33
+ {filteredCountries.map((country) => (<TouchableOpacity key={country.code} style={[
102
34
  styles.countryOption,
103
- selectedValue === country.code && styles.selectedCountryOption
104
- ]} onPress={() => onValueChange(country.code)}>
105
- <Text style={styles.countryFlag}>{country.flag}</Text>
106
- <View style={styles.countryContent}>
107
- <Text style={[
35
+ selectedCountry.code === country.code && styles.selectedCountryOption
36
+ ]} onPress={() => {
37
+ console.log({
38
+ country, language
39
+ });
40
+ setSelectedCountry(country);
41
+ }}>
42
+ <Text style={styles.countryFlag}>{country.flag}</Text>
43
+ <View style={styles.countryContent}>
44
+ <Text style={[
108
45
  styles.countryName,
109
- selectedValue === country.code && styles.selectedCountryName
46
+ selectedCountry.code === country.code && styles.selectedCountryName
110
47
  ]}>
111
- {country.name}
112
- </Text>
113
- <Text style={styles.countryCode}>{country.code}</Text>
114
- </View>
115
- {selectedValue === country.code && (<View style={[
48
+ {state.currentLanguage === "en" ? country.name_en : country.name}
49
+ </Text>
50
+ <Text style={styles.countryCode}>{country.code}</Text>
51
+ </View>
52
+ {selectedCountry.code === country.code && (<View style={[
116
53
  styles.checkmark,
117
54
  { backgroundColor: component.ui.themeColor || '#2DBD60' }
118
55
  ]}>
119
- <Text style={styles.checkmarkText}>✓</Text>
120
- </View>)}
121
- </TouchableOpacity>))}
122
- </ScrollView>
56
+ <Text style={styles.checkmarkText}>✓</Text>
57
+ </View>)}
58
+ </TouchableOpacity>))}
59
+ </ScrollView>
60
+
61
+ {selectedCountry.code && (<Button title={t('common.next')} onPress={() => {
62
+ const mapping = selectedCountry.code ? countryMapping[selectedCountry.code] : undefined;
63
+ onValueChange({ ...selectedCountry, regionMapping: mapping });
64
+ setTimeout(() => {
65
+ actions.nextComponent();
66
+ }, 500);
67
+ }} variant="primary" size="large" fullWidth/>)}
123
68
 
124
- {selectedValue && (<View style={styles.selectionInfo}>
125
- <Text style={styles.selectionText}>
126
- Pays sélectionné: {countryData[selectedValue]?.flag} {countryData[selectedValue]?.name}
127
- </Text>
128
- </View>)}
69
+ {config.required && !selectedValue && (<View style={styles.requiredContainer}>
129
70
 
130
- {config.required && !selectedValue && (<View style={styles.requiredContainer}>
131
- <Text style={styles.requiredText}>⚠️ Veuillez sélectionner un pays</Text>
132
- </View>)}
133
71
 
134
- {error && (<Text style={styles.errorText}>{error}</Text>)}
72
+ <Text style={styles.requiredText}>{state.currentLanguage === "en" ? "⚠️ Please Select your country" : "⚠️ Veuillez sélectionner un pays"}</Text>
73
+ </View>)}
74
+
75
+ {error && (<Text style={styles.errorText}>{error}</Text>)}
76
+ </View>
135
77
  </View>);
136
78
  };
137
79
  const styles = StyleSheet.create({
138
- container: {
80
+ root: {
139
81
  flex: 1,
140
- padding: 16,
82
+ maxWidth: 760,
83
+ width: '100%',
84
+ },
85
+ container: {
86
+ backgroundColor: 'white',
87
+ margin: 10,
88
+ borderRadius: 10,
89
+ paddingVertical: 16,
90
+ paddingHorizontal: 16,
91
+ // shadow
92
+ shadowColor: '#000',
93
+ shadowOffset: { width: 0, height: 2 },
94
+ shadowOpacity: 0.35,
95
+ shadowRadius: 4.84,
96
+ elevation: 10,
141
97
  },
142
98
  title: {
143
99
  fontSize: 24,
@@ -154,7 +110,8 @@ const styles = StyleSheet.create({
154
110
  lineHeight: 22,
155
111
  },
156
112
  countriesContainer: {
157
- flex: 1,
113
+ height: "80%",
114
+ maxHeight: 600,
158
115
  },
159
116
  countryOption: {
160
117
  flexDirection: 'row',
@@ -1 +1 @@
1
- {"version":3,"file":"CountrySelectionTemplate.js","sourceRoot":"","sources":["../../../src/components/KYCElements/CountrySelectionTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet, ScrollView } from 'react-native';\nimport { TemplateComponent, CountrySelectionConfig, LocalizedText } from '../../types/KYC.types';\n\ninterface CountrySelectionTemplateProps {\n component: TemplateComponent;\n value?: string;\n onValueChange: (value: string) => void;\n error?: string;\n language?: string;\n}\n\nconst countryData: Record<string, { name: string; flag: string }> = {\n FR: { name: 'France', flag: '🇫🇷' },\n CM: { name: 'Cameroun', flag: '🇨🇲' },\n US: { name: 'États-Unis', flag: '🇺🇸' },\n DE: { name: 'Allemagne', flag: '🇩🇪' },\n BE: { name: 'Belgique', flag: '🇧🇪' },\n LU: { name: 'Luxembourg', flag: '🇱🇺' },\n IT: { name: 'Italie', flag: '🇮🇹' },\n ES: { name: 'Espagne', flag: '🇪🇸' },\n PT: { name: 'Portugal', flag: '🇵🇹' },\n AT: { name: 'Autriche', flag: '🇦🇹' },\n CH: { name: 'Suisse', flag: '🇨🇭' },\n NL: { name: 'Pays-Bas', flag: '🇳🇱' },\n CA: { name: 'Canada', flag: '🇨🇦' },\n GB: { name: 'Royaume-Uni', flag: '🇬🇧' },\n AU: { name: 'Australie', flag: '🇦🇺' },\n JP: { name: 'Japon', flag: '🇯🇵' },\n KR: { name: 'Corée du Sud', flag: '🇰🇷' },\n SG: { name: 'Singapour', flag: '🇸🇬' },\n HK: { name: 'Hong Kong', flag: '🇭🇰' },\n AE: { name: 'Émirats Arabes Unis', flag: '🇦🇪' },\n SA: { name: 'Arabie Saoudite', flag: '🇸🇦' },\n QA: { name: 'Qatar', flag: '🇶🇦' },\n KW: { name: 'Koweït', flag: '🇰🇼' },\n BH: { name: 'Bahreïn', flag: '🇧🇭' },\n OM: { name: 'Oman', flag: '🇴🇲' },\n JO: { name: 'Jordanie', flag: '🇯🇴' },\n LB: { name: 'Liban', flag: '🇱🇧' },\n EG: { name: 'Égypte', flag: '🇪🇬' },\n MA: { name: 'Maroc', flag: '🇲🇦' },\n TN: { name: 'Tunisie', flag: '🇹🇳' },\n DZ: { name: 'Algérie', flag: '🇩🇿' },\n SN: { name: 'Sénégal', flag: '🇸🇳' },\n CI: { name: 'Côte d\\'Ivoire', flag: '🇨🇮' },\n NG: { name: 'Nigeria', flag: '🇳🇬' },\n KE: { name: 'Kenya', flag: '🇰🇪' },\n ZA: { name: 'Afrique du Sud', flag: '🇿🇦' },\n BR: { name: 'Brésil', flag: '🇧🇷' },\n MX: { name: 'Mexique', flag: '🇲🇽' },\n AR: { name: 'Argentine', flag: '🇦🇷' },\n CL: { name: 'Chili', flag: '🇨🇱' },\n PE: { name: 'Pérou', flag: '🇵🇪' },\n CO: { name: 'Colombie', flag: '🇨🇴' },\n VE: { name: 'Venezuela', flag: '🇻🇪' },\n EC: { name: 'Équateur', flag: '🇪🇨' },\n UY: { name: 'Uruguay', flag: '🇺🇾' },\n PY: { name: 'Paraguay', flag: '🇵🇾' },\n BO: { name: 'Bolivie', flag: '🇧🇴' },\n IN: { name: 'Inde', flag: '🇮🇳' },\n CN: { name: 'Chine', flag: '🇨🇳' },\n TH: { name: 'Thaïlande', flag: '🇹🇭' },\n VN: { name: 'Vietnam', flag: '🇻🇳' },\n ID: { name: 'Indonésie', flag: '🇮🇩' },\n MY: { name: 'Malaisie', flag: '🇲🇾' },\n PH: { name: 'Philippines', flag: '🇵🇭' },\n TR: { name: 'Turquie', flag: '🇹🇷' },\n IL: { name: 'Israël', flag: '🇮🇱' },\n RU: { name: 'Russie', flag: '🇷🇺' },\n UA: { name: 'Ukraine', flag: '🇺🇦' },\n PL: { name: 'Pologne', flag: '🇵🇱' },\n CZ: { name: 'République Tchèque', flag: '🇨🇿' },\n HU: { name: 'Hongrie', flag: '🇭🇺' },\n RO: { name: 'Roumanie', flag: '🇷🇴' },\n BG: { name: 'Bulgarie', flag: '🇧🇬' },\n HR: { name: 'Croatie', flag: '🇭🇷' },\n SI: { name: 'Slovénie', flag: '🇸🇮' },\n SK: { name: 'Slovaquie', flag: '🇸🇰' },\n LT: { name: 'Lituanie', flag: '🇱🇹' },\n LV: { name: 'Lettonie', flag: '🇱🇻' },\n EE: { name: 'Estonie', flag: '🇪🇪' },\n FI: { name: 'Finlande', flag: '🇫🇮' },\n SE: { name: 'Suède', flag: '🇸🇪' },\n NO: { name: 'Norvège', flag: '🇳🇴' },\n DK: { name: 'Danemark', flag: '🇩🇰' },\n IS: { name: 'Islande', flag: '🇮🇸' },\n IE: { name: 'Irlande', flag: '🇮🇪' },\n NZ: { name: 'Nouvelle-Zélande', flag: '🇳🇿' },\n};\n\nexport const CountrySelectionTemplate: React.FC<CountrySelectionTemplateProps> = ({\n component,\n value,\n onValueChange,\n error,\n language = 'en',\n}) => {\n const config = component.config as CountrySelectionConfig;\n const allowedCountries = config.allowed_countries || Object.keys(countryData);\n const defaultCountry = config.default_country || 'FR';\n\n const getLocalizedText = (text: LocalizedText): string => {\n return text[language] || text.en || '';\n };\n\n const selectedValue = value || defaultCountry;\n\n const filteredCountries = allowedCountries\n .filter(code => countryData[code])\n .map(code => ({\n code,\n ...countryData[code]\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{getLocalizedText(component.labels)}</Text>\n <Text style={styles.description}>{getLocalizedText(component.instructions)}</Text>\n \n <ScrollView style={styles.countriesContainer} showsVerticalScrollIndicator={false}>\n {filteredCountries.map((country) => (\n <TouchableOpacity\n key={country.code}\n style={[\n styles.countryOption,\n selectedValue === country.code && styles.selectedCountryOption\n ]}\n onPress={() => onValueChange(country.code)}\n >\n <Text style={styles.countryFlag}>{country.flag}</Text>\n <View style={styles.countryContent}>\n <Text style={[\n styles.countryName,\n selectedValue === country.code && styles.selectedCountryName\n ]}>\n {country.name}\n </Text>\n <Text style={styles.countryCode}>{country.code}</Text>\n </View>\n {selectedValue === country.code && (\n <View style={[\n styles.checkmark,\n { backgroundColor: component.ui.themeColor || '#2DBD60' }\n ]}>\n <Text style={styles.checkmarkText}>✓</Text>\n </View>\n )}\n </TouchableOpacity>\n ))}\n </ScrollView>\n\n {selectedValue && (\n <View style={styles.selectionInfo}>\n <Text style={styles.selectionText}>\n Pays sélectionné: {countryData[selectedValue]?.flag} {countryData[selectedValue]?.name}\n </Text>\n </View>\n )}\n\n {config.required && !selectedValue && (\n <View style={styles.requiredContainer}>\n <Text style={styles.requiredText}>⚠️ Veuillez sélectionner un pays</Text>\n </View>\n )}\n\n {error && (\n <Text style={styles.errorText}>{error}</Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 8,\n textAlign: 'center',\n },\n description: {\n fontSize: 16,\n color: '#666',\n textAlign: 'center',\n marginBottom: 24,\n lineHeight: 22,\n },\n countriesContainer: {\n flex: 1,\n },\n countryOption: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 16,\n backgroundColor: 'white',\n borderRadius: 12,\n marginBottom: 12,\n borderWidth: 2,\n borderColor: '#e5e5e5',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.1,\n shadowRadius: 3.84,\n elevation: 5,\n },\n selectedCountryOption: {\n borderColor: '#2DBD60',\n backgroundColor: '#f0f9f0',\n },\n countryFlag: {\n fontSize: 32,\n marginRight: 16,\n },\n countryContent: {\n flex: 1,\n },\n countryName: {\n fontSize: 18,\n fontWeight: '600',\n color: '#333',\n },\n selectedCountryName: {\n color: '#2DBD60',\n },\n countryCode: {\n fontSize: 14,\n color: '#666',\n marginTop: 4,\n fontWeight: '500',\n },\n checkmark: {\n width: 24,\n height: 24,\n borderRadius: 12,\n justifyContent: 'center',\n alignItems: 'center',\n },\n checkmarkText: {\n color: 'white',\n fontSize: 16,\n fontWeight: 'bold',\n },\n selectionInfo: {\n backgroundColor: '#f0f9f0',\n padding: 16,\n borderRadius: 8,\n marginTop: 16,\n alignItems: 'center',\n },\n selectionText: {\n fontSize: 16,\n fontWeight: '600',\n color: '#2DBD60',\n },\n requiredContainer: {\n backgroundColor: '#fff3cd',\n padding: 16,\n borderRadius: 8,\n marginTop: 16,\n alignItems: 'center',\n },\n requiredText: {\n fontSize: 16,\n fontWeight: '600',\n color: '#856404',\n },\n errorText: {\n color: '#dc2626',\n fontSize: 14,\n marginTop: 8,\n textAlign: 'center',\n },\n}); "]}
1
+ {"version":3,"file":"CountrySelectionTemplate.js","sourceRoot":"","sources":["../../../src/components/KYCElements/CountrySelectionTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet, ScrollView } from 'react-native';\nimport { TemplateComponent, CountrySelectionConfig, LocalizedText, Country } from '../../types/KYC.types';\nimport { countryMapping } from '../../config/region_mapping';\nimport { useTemplateKYCFlowContext } from '../../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../../hooks/useI18n';\nimport { Button } from '../ui/Button';\nimport { countryData } from '../../config/countriesData';\n\ninterface CountrySelectionTemplateProps {\n component: TemplateComponent;\n value?: string;\n onValueChange: (value: Country) => void;\n error?: string;\n language?: string;\n}\n\nexport const CountrySelectionTemplate: React.FC<CountrySelectionTemplateProps> = ({\n component,\n value,\n onValueChange,\n error,\n language = 'en',\n}) => {\n const { t } = useI18n();\n const config = component.config as CountrySelectionConfig;\n const allowedCountries = (config.allowed_countries || Object.keys(countryData));\n const defaultCountry = config.default_country || 'CM';\n const { actions, state} = useTemplateKYCFlowContext();\n\n console.log({ language }, state.currentLanguage);\n\n const [selectedCountry, setSelectedCountry] = useState<Country>({ code: defaultCountry, ...countryData[defaultCountry] });\n\n const getLocalizedText = (text: LocalizedText): string => {\n return text[language] || text.en || '';\n };\n\n const selectedValue = value || defaultCountry;\n\n const filteredCountries = allowedCountries\n .filter(code => countryData[code])\n .map(code => ({\n code,\n ...countryData[code]\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n\n return (\n <View style={styles.root}>\n <View style={styles.container}>\n <Text style={styles.title}>{getLocalizedText(component.labels as LocalizedText)}</Text>\n <Text style={styles.description}>{getLocalizedText(component.instructions as LocalizedText)}</Text>\n\n <ScrollView style={styles.countriesContainer} showsVerticalScrollIndicator={false}>\n {filteredCountries.map((country) => (\n <TouchableOpacity\n key={country.code}\n style={[\n styles.countryOption,\n selectedCountry.code === country.code && styles.selectedCountryOption\n ]}\n onPress={() => {\n console.log({\n country, language\n });\n\n setSelectedCountry(country);\n }}\n >\n <Text style={styles.countryFlag}>{country.flag}</Text>\n <View style={styles.countryContent}>\n <Text style={[\n styles.countryName,\n selectedCountry.code === country.code && styles.selectedCountryName\n ]}>\n {state.currentLanguage === \"en\"? country.name_en: country.name}\n </Text>\n <Text style={styles.countryCode}>{country.code}</Text>\n </View>\n {selectedCountry.code === country.code && (\n <View style={[\n styles.checkmark,\n { backgroundColor: component.ui.themeColor as string || '#2DBD60' }\n ]}>\n <Text style={styles.checkmarkText}>✓</Text>\n </View>\n )}\n </TouchableOpacity>\n ))}\n </ScrollView>\n\n {selectedCountry.code && (\n <Button title={t('common.next')} onPress={() => {\n\n\n const mapping = selectedCountry.code ? countryMapping[selectedCountry.code as keyof typeof countryMapping] : undefined;\n onValueChange({ ...selectedCountry, regionMapping: mapping });\n setTimeout(() => {\n actions.nextComponent();\n }, 500);\n }}\n variant=\"primary\"\n size=\"large\"\n fullWidth\n />\n )}\n\n {config.required && !selectedValue && (\n <View style={styles.requiredContainer}>\n\n\n <Text style={styles.requiredText}>{\n state.currentLanguage === \"en\" ? \"⚠️ Please Select your country\" : \"⚠️ Veuillez sélectionner un pays\"\n }</Text>\n </View>\n )}\n\n {error && (\n <Text style={styles.errorText}>{error}</Text>\n )}\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n maxWidth: 760,\n width: '100%',\n },\n container: {\n backgroundColor: 'white',\n margin: 10,\n borderRadius: 10,\n paddingVertical: 16,\n paddingHorizontal: 16,\n // shadow\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.35,\n shadowRadius: 4.84,\n elevation: 10,\n\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 8,\n textAlign: 'center',\n },\n description: {\n fontSize: 16,\n color: '#666',\n textAlign: 'center',\n marginBottom: 24,\n lineHeight: 22,\n },\n countriesContainer: {\n height: \"80%\",\n maxHeight: 600,\n },\n countryOption: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 16,\n backgroundColor: 'white',\n borderRadius: 12,\n marginBottom: 12,\n borderWidth: 2,\n borderColor: '#e5e5e5',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.1,\n shadowRadius: 3.84,\n elevation: 5,\n },\n selectedCountryOption: {\n borderColor: '#2DBD60',\n backgroundColor: '#f0f9f0',\n },\n countryFlag: {\n fontSize: 32,\n marginRight: 16,\n },\n countryContent: {\n flex: 1,\n },\n countryName: {\n fontSize: 18,\n fontWeight: '600',\n color: '#333',\n },\n selectedCountryName: {\n color: '#2DBD60',\n },\n countryCode: {\n fontSize: 14,\n color: '#666',\n marginTop: 4,\n fontWeight: '500',\n },\n checkmark: {\n width: 24,\n height: 24,\n borderRadius: 12,\n justifyContent: 'center',\n alignItems: 'center',\n },\n checkmarkText: {\n color: 'white',\n fontSize: 16,\n fontWeight: 'bold',\n },\n selectionInfo: {\n backgroundColor: '#f0f9f0',\n padding: 16,\n borderRadius: 8,\n marginTop: 16,\n alignItems: 'center',\n },\n selectionText: {\n fontSize: 16,\n fontWeight: '600',\n color: '#2DBD60',\n },\n requiredContainer: {\n backgroundColor: '#fff3cd',\n padding: 16,\n borderRadius: 8,\n marginTop: 16,\n alignItems: 'center',\n },\n requiredText: {\n fontSize: 16,\n fontWeight: '600',\n color: '#856404',\n },\n errorText: {\n color: '#dc2626',\n fontSize: 14,\n marginTop: 8,\n textAlign: 'center',\n },\n}); "]}
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/FileUploadTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAmC,MAAM,uBAAuB,CAAC;AAE3F,UAAU,uBAAuB;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA8MhE,CAAC"}
1
+ {"version":3,"file":"FileUploadTemplate.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/FileUploadTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,iBAAiB,EAAmC,MAAM,uBAAuB,CAAC;AAE3F,UAAU,uBAAuB;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmNhE,CAAC"}
@@ -2,7 +2,9 @@ import React, { useState } from 'react';
2
2
  import { View, Text, TouchableOpacity, StyleSheet, ScrollView, Image, Alert } from 'react-native';
3
3
  import { useKYCStore } from '../../stores/kycStore';
4
4
  import NativeCameraModule from '../../modules/camera/NativeCameraModule';
5
+ import { useI18n } from '../../hooks/useI18n';
5
6
  export const FileUploadTemplate = ({ component, value = [], onValueChange, error, language = 'en', }) => {
7
+ const { t } = useI18n();
6
8
  const [uploadedFiles, setUploadedFiles] = useState([]);
7
9
  const [isUploading, setIsUploading] = useState(false);
8
10
  const { setProcessing } = useKYCStore();
@@ -144,9 +146,9 @@ export const FileUploadTemplate = ({ component, value = [], onValueChange, error
144
146
  </View>)}
145
147
 
146
148
  {!hasFiles && (<View style={styles.emptyState}>
147
- <Text style={styles.emptyStateText}>Aucun fichier sélectionné</Text>
149
+ <Text style={styles.emptyStateText}>{t('kyc.fileUpload.selectFile')}</Text>
148
150
  <Text style={styles.emptyStateSubtext}>
149
- {isRequired ? 'Ce document est obligatoire' : 'Ce document est optionnel'}
151
+ {isRequired ? t('validation.required') : t('common.info')}
150
152
  </Text>
151
153
  </View>)}
152
154
 
@@ -154,7 +156,9 @@ export const FileUploadTemplate = ({ component, value = [], onValueChange, error
154
156
  <TouchableOpacity style={[
155
157
  styles.primaryButton,
156
158
  { backgroundColor: component.ui.themeColor || '#2DBD60' }
157
- ]}>
159
+ ]} onPress={() => {
160
+ onValueChange(uploadedFiles.map(file => file.uri));
161
+ }}>
158
162
  <Text style={styles.primaryButtonText}>
159
163
  {getLocalizedText(component.ui.buttonText)}
160
164
  </Text>
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadTemplate.js","sourceRoot":"","sources":["../../../src/components/KYCElements/FileUploadTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet, ScrollView, Image, Alert } from 'react-native';\nimport { useKYCStore } from '../../stores/kycStore';\nimport NativeCameraModule from '../../modules/camera/NativeCameraModule';\nimport { TemplateComponent, FileUploadConfig, LocalizedText } from '../../types/KYC.types';\n\ninterface FileUploadTemplateProps {\n component: TemplateComponent;\n value?: string[];\n onValueChange: (value: string[]) => void;\n error?: string;\n language?: string;\n}\n\ninterface UploadedFile {\n uri: string;\n path: string;\n name: string;\n size: number;\n}\n\nexport const FileUploadTemplate: React.FC<FileUploadTemplateProps> = ({\n component,\n value = [],\n onValueChange,\n error,\n language = 'en',\n}) => {\n const [uploadedFiles, setUploadedFiles] = useState<UploadedFile[]>([]);\n const [isUploading, setIsUploading] = useState(false);\n const { setProcessing } = useKYCStore();\n\n const config = component.config as FileUploadConfig;\n const maxSizeBytes = (config.max_size_mb || 10) * 1024 * 1024;\n\n const getLocalizedText = (text: LocalizedText): string => {\n return text[language] || text.en || '';\n };\n\n const pickDocument = async () => {\n try {\n setIsUploading(true);\n setProcessing(true);\n\n const allowedTypes = config.allowed_formats.map(format => {\n switch (format.toLowerCase()) {\n case 'pdf':\n return 'application/pdf';\n case 'jpg':\n case 'jpeg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n default:\n return '*/*';\n }\n });\n\n const result = await NativeCameraModule.openFilePicker(allowedTypes);\n \n if (result.success && result.uri && result.path) {\n const fileName = result.path.split('/').pop() || 'Document';\n \n // Vérifier la taille du fichier (si disponible)\n // Note: La propriété size peut ne pas être disponible selon la plateforme\n const fileSize = (result as any).size || 0;\n if (fileSize > maxSizeBytes) {\n Alert.alert(\n 'Fichier trop volumineux', \n `La taille maximale autorisée est ${config.max_size_mb} MB.`\n );\n return;\n }\n\n const newFile = {\n uri: result.uri,\n path: result.path,\n name: fileName,\n size: fileSize\n };\n\n const updatedFiles = [...uploadedFiles, newFile];\n setUploadedFiles(updatedFiles);\n onValueChange(updatedFiles.map(file => file.uri));\n } else if (result.error) {\n Alert.alert('Erreur', result.error);\n }\n } catch (error) {\n console.error('Erreur lors de la sélection de fichiers:', error);\n Alert.alert('Erreur', 'Impossible de sélectionner le fichier');\n } finally {\n setIsUploading(false);\n setProcessing(false);\n }\n };\n\n const removeFile = (index: number) => {\n const updatedFiles = uploadedFiles.filter((_, i) => i !== index);\n setUploadedFiles(updatedFiles);\n onValueChange(updatedFiles.map(file => file.uri));\n };\n\n const getFileIcon = (fileName: string) => {\n const extension = fileName.split('.').pop()?.toLowerCase();\n switch (extension) {\n case 'pdf':\n return '📄';\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n return '🖼️';\n case 'doc':\n case 'docx':\n return '📝';\n default:\n return '📎';\n }\n };\n\n const isImageFile = (fileName: string): boolean => {\n const extension = fileName.split('.').pop()?.toLowerCase();\n return ['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(extension || '');\n };\n\n const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n };\n\n const isRequired = config.required || false;\n const hasFiles = uploadedFiles.length > 0;\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{getLocalizedText(component.labels)}</Text>\n <Text style={styles.description}>{getLocalizedText(component.instructions)}</Text>\n \n <View style={styles.uploadArea}>\n <TouchableOpacity \n style={[\n styles.uploadButton,\n isUploading && styles.uploadButtonDisabled,\n { borderColor: component.ui.themeColor || '#2DBD60' }\n ]}\n onPress={pickDocument}\n disabled={isUploading}\n >\n <Text style={styles.uploadIcon}>📁</Text>\n <Text style={[\n styles.uploadText,\n { color: component.ui.themeColor || '#2DBD60' }\n ]}>\n {isUploading ? 'Sélection en cours...' : 'Sélectionner des fichiers'}\n </Text>\n <Text style={styles.uploadSubtext}>\n Types acceptés: {config.allowed_formats.join(', ').toUpperCase()}\n </Text>\n <Text style={styles.uploadSubtext}>\n Taille max: {config.max_size_mb} MB\n </Text>\n </TouchableOpacity>\n </View>\n\n {hasFiles && (\n <View style={styles.filesContainer}>\n <Text style={styles.filesTitle}>\n Fichiers sélectionnés ({uploadedFiles.length})\n </Text>\n <ScrollView style={styles.filesList} showsVerticalScrollIndicator={false}>\n {uploadedFiles.map((file, index) => (\n <View key={index} style={styles.fileItem}>\n {isImageFile(file.name) ? (\n <Image source={{ uri: file.uri }} style={styles.fileThumbnail} />\n ) : (\n <View style={styles.fileIcon}>\n <Text style={styles.fileIconText}>{getFileIcon(file.name)}</Text>\n </View>\n )}\n <View style={styles.fileInfo}>\n <Text style={styles.fileName} numberOfLines={1}>{file.name}</Text>\n <Text style={styles.fileSize}>{formatFileSize(file.size)}</Text>\n </View>\n <TouchableOpacity \n style={styles.removeButton}\n onPress={() => removeFile(index)}\n >\n <Text style={styles.removeButtonText}>✕</Text>\n </TouchableOpacity>\n </View>\n ))}\n </ScrollView>\n </View>\n )}\n\n {!hasFiles && (\n <View style={styles.emptyState}>\n <Text style={styles.emptyStateText}>Aucun fichier sélectionné</Text>\n <Text style={styles.emptyStateSubtext}>\n {isRequired ? 'Ce document est obligatoire' : 'Ce document est optionnel'}\n </Text>\n </View>\n )}\n\n {hasFiles && (\n <View style={styles.buttonContainer}>\n <TouchableOpacity \n style={[\n styles.primaryButton,\n { backgroundColor: component.ui.themeColor || '#2DBD60' }\n ]}\n >\n <Text style={styles.primaryButtonText}>\n {getLocalizedText(component.ui.buttonText)}\n </Text>\n </TouchableOpacity>\n </View>\n )}\n\n {error && (\n <Text style={styles.errorText}>{error}</Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 8,\n textAlign: 'center',\n },\n description: {\n fontSize: 16,\n color: '#666',\n textAlign: 'center',\n marginBottom: 24,\n lineHeight: 22,\n },\n uploadArea: {\n marginBottom: 24,\n },\n uploadButton: {\n borderWidth: 2,\n borderStyle: 'dashed',\n borderRadius: 12,\n padding: 32,\n alignItems: 'center',\n backgroundColor: '#f0f9f0',\n },\n uploadButtonDisabled: {\n opacity: 0.6,\n },\n uploadIcon: {\n fontSize: 48,\n marginBottom: 16,\n },\n uploadText: {\n fontSize: 18,\n fontWeight: '600',\n marginBottom: 8,\n },\n uploadSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n },\n filesContainer: {\n flex: 1,\n },\n filesTitle: {\n fontSize: 18,\n fontWeight: '600',\n color: '#333',\n marginBottom: 16,\n },\n filesList: {\n flex: 1,\n },\n fileItem: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 12,\n backgroundColor: 'white',\n borderRadius: 8,\n marginBottom: 8,\n borderWidth: 1,\n borderColor: '#e5e5e5',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n elevation: 2,\n },\n fileThumbnail: {\n width: 40,\n height: 40,\n borderRadius: 4,\n marginRight: 12,\n },\n fileIcon: {\n width: 40,\n height: 40,\n borderRadius: 4,\n backgroundColor: '#f0f0f0',\n justifyContent: 'center',\n alignItems: 'center',\n marginRight: 12,\n },\n fileIconText: {\n fontSize: 20,\n },\n fileInfo: {\n flex: 1,\n },\n fileName: {\n fontSize: 16,\n fontWeight: '500',\n color: '#333',\n },\n fileSize: {\n fontSize: 12,\n color: '#666',\n marginTop: 2,\n },\n removeButton: {\n width: 32,\n height: 32,\n borderRadius: 16,\n backgroundColor: '#ff4444',\n justifyContent: 'center',\n alignItems: 'center',\n },\n removeButtonText: {\n color: 'white',\n fontSize: 16,\n fontWeight: 'bold',\n },\n emptyState: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n emptyStateText: {\n fontSize: 18,\n color: '#666',\n marginBottom: 10,\n },\n emptyStateSubtext: {\n fontSize: 14,\n color: '#999',\n textAlign: 'center',\n },\n buttonContainer: {\n marginTop: 24,\n alignItems: 'center',\n },\n primaryButton: {\n paddingHorizontal: 32,\n paddingVertical: 16,\n borderRadius: 8,\n minWidth: 120,\n alignItems: 'center',\n },\n primaryButtonText: {\n color: 'white',\n fontWeight: '600',\n fontSize: 16,\n },\n errorText: {\n color: '#dc2626',\n fontSize: 14,\n marginTop: 8,\n textAlign: 'center',\n },\n}); "]}
1
+ {"version":3,"file":"FileUploadTemplate.js","sourceRoot":"","sources":["../../../src/components/KYCElements/FileUploadTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet, ScrollView, Image, Alert } from 'react-native';\nimport { useKYCStore } from '../../stores/kycStore';\nimport NativeCameraModule from '../../modules/camera/NativeCameraModule';\nimport { useI18n } from '../../hooks/useI18n';\nimport { TemplateComponent, FileUploadConfig, LocalizedText } from '../../types/KYC.types';\n\ninterface FileUploadTemplateProps {\n component: TemplateComponent;\n value?: string[];\n onValueChange: (value: string[]) => void;\n error?: string;\n language?: string;\n}\n\ninterface UploadedFile {\n uri: string;\n path: string;\n name: string;\n size: number;\n}\n\nexport const FileUploadTemplate: React.FC<FileUploadTemplateProps> = ({\n component,\n value = [],\n onValueChange,\n error,\n language = 'en',\n}) => {\n const { t } = useI18n();\n const [uploadedFiles, setUploadedFiles] = useState<UploadedFile[]>([]);\n const [isUploading, setIsUploading] = useState(false);\n const { setProcessing } = useKYCStore();\n\n const config = component.config as FileUploadConfig;\n const maxSizeBytes = (config.max_size_mb || 10) * 1024 * 1024;\n\n const getLocalizedText = (text: LocalizedText): string => {\n return text[language] || text.en || '';\n };\n\n const pickDocument = async () => {\n try {\n setIsUploading(true);\n setProcessing(true);\n\n const allowedTypes = config.allowed_formats.map(format => {\n switch (format.toLowerCase()) {\n case 'pdf':\n return 'application/pdf';\n case 'jpg':\n case 'jpeg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n default:\n return '*/*';\n }\n });\n\n const result = await NativeCameraModule.openFilePicker(allowedTypes);\n \n if (result.success && result.uri && result.path) {\n const fileName = result.path.split('/').pop() || 'Document';\n \n // Vérifier la taille du fichier (si disponible)\n // Note: La propriété size peut ne pas être disponible selon la plateforme\n const fileSize = (result as any).size || 0;\n if (fileSize > maxSizeBytes) {\n Alert.alert(\n 'Fichier trop volumineux', \n `La taille maximale autorisée est ${config.max_size_mb} MB.`\n );\n return;\n }\n\n const newFile = {\n uri: result.uri,\n path: result.path,\n name: fileName,\n size: fileSize\n };\n\n const updatedFiles = [...uploadedFiles, newFile];\n setUploadedFiles(updatedFiles);\n onValueChange(updatedFiles.map(file => file.uri));\n } else if (result.error) {\n Alert.alert('Erreur', result.error);\n }\n } catch (error) {\n console.error('Erreur lors de la sélection de fichiers:', error);\n Alert.alert('Erreur', 'Impossible de sélectionner le fichier');\n } finally {\n setIsUploading(false);\n setProcessing(false);\n }\n };\n\n const removeFile = (index: number) => {\n const updatedFiles = uploadedFiles.filter((_, i) => i !== index);\n setUploadedFiles(updatedFiles);\n onValueChange(updatedFiles.map(file => file.uri));\n };\n\n\n const getFileIcon = (fileName: string) => {\n const extension = fileName.split('.').pop()?.toLowerCase();\n switch (extension) {\n case 'pdf':\n return '📄';\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n return '🖼️';\n case 'doc':\n case 'docx':\n return '📝';\n default:\n return '📎';\n }\n };\n\n const isImageFile = (fileName: string): boolean => {\n const extension = fileName.split('.').pop()?.toLowerCase();\n return ['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(extension || '');\n };\n\n const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n };\n\n const isRequired = config.required || false;\n const hasFiles = uploadedFiles.length > 0;\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>{getLocalizedText(component.labels as LocalizedText)}</Text>\n <Text style={styles.description}>{getLocalizedText(component.instructions as LocalizedText)}</Text>\n \n <View style={styles.uploadArea}>\n <TouchableOpacity \n style={[\n styles.uploadButton,\n isUploading && styles.uploadButtonDisabled,\n { borderColor: component.ui.themeColor as string || '#2DBD60' }\n ]}\n onPress={pickDocument}\n disabled={isUploading}\n >\n <Text style={styles.uploadIcon}>📁</Text>\n <Text style={[\n styles.uploadText,\n { color: component.ui.themeColor as string || '#2DBD60' }\n ]}>\n {isUploading ? 'Sélection en cours...' : 'Sélectionner des fichiers'}\n </Text>\n <Text style={styles.uploadSubtext}>\n Types acceptés: {config.allowed_formats.join(', ').toUpperCase()}\n </Text>\n <Text style={styles.uploadSubtext}>\n Taille max: {config.max_size_mb} MB\n </Text>\n </TouchableOpacity>\n </View>\n\n {hasFiles && (\n <View style={styles.filesContainer}>\n <Text style={styles.filesTitle}>\n Fichiers sélectionnés ({uploadedFiles.length})\n </Text>\n <ScrollView style={styles.filesList} showsVerticalScrollIndicator={false}>\n {uploadedFiles.map((file, index) => (\n <View key={index} style={styles.fileItem}>\n {isImageFile(file.name) ? (\n <Image source={{ uri: file.uri }} style={styles.fileThumbnail} />\n ) : (\n <View style={styles.fileIcon}>\n <Text style={styles.fileIconText}>{getFileIcon(file.name)}</Text>\n </View>\n )}\n <View style={styles.fileInfo}>\n <Text style={styles.fileName} numberOfLines={1}>{file.name}</Text>\n <Text style={styles.fileSize}>{formatFileSize(file.size)}</Text>\n </View>\n <TouchableOpacity \n style={styles.removeButton}\n onPress={() => removeFile(index)}\n >\n <Text style={styles.removeButtonText}>✕</Text>\n </TouchableOpacity>\n </View>\n ))}\n </ScrollView>\n </View>\n )}\n\n {!hasFiles && (\n <View style={styles.emptyState}>\n <Text style={styles.emptyStateText}>{t('kyc.fileUpload.selectFile')}</Text>\n <Text style={styles.emptyStateSubtext}>\n {isRequired ? t('validation.required') : t('common.info')}\n </Text>\n </View>\n )}\n\n {hasFiles && (\n <View style={styles.buttonContainer}>\n <TouchableOpacity \n style={[\n styles.primaryButton,\n { backgroundColor: component.ui.themeColor as string || '#2DBD60' }\n ]}\n onPress={() => {\n onValueChange(uploadedFiles.map(file => file.uri));\n }}\n >\n <Text style={styles.primaryButtonText}>\n {getLocalizedText(component.ui.buttonText as LocalizedText)}\n </Text>\n </TouchableOpacity>\n </View>\n )}\n\n {error && (\n <Text style={styles.errorText}>{error}</Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n color: '#333',\n marginBottom: 8,\n textAlign: 'center',\n },\n description: {\n fontSize: 16,\n color: '#666',\n textAlign: 'center',\n marginBottom: 24,\n lineHeight: 22,\n },\n uploadArea: {\n marginBottom: 24,\n },\n uploadButton: {\n borderWidth: 2,\n borderStyle: 'dashed',\n borderRadius: 12,\n padding: 32,\n alignItems: 'center',\n backgroundColor: '#f0f9f0',\n },\n uploadButtonDisabled: {\n opacity: 0.6,\n },\n uploadIcon: {\n fontSize: 48,\n marginBottom: 16,\n },\n uploadText: {\n fontSize: 18,\n fontWeight: '600',\n marginBottom: 8,\n },\n uploadSubtext: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n },\n filesContainer: {\n flex: 1,\n },\n filesTitle: {\n fontSize: 18,\n fontWeight: '600',\n color: '#333',\n marginBottom: 16,\n },\n filesList: {\n flex: 1,\n },\n fileItem: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 12,\n backgroundColor: 'white',\n borderRadius: 8,\n marginBottom: 8,\n borderWidth: 1,\n borderColor: '#e5e5e5',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n elevation: 2,\n },\n fileThumbnail: {\n width: 40,\n height: 40,\n borderRadius: 4,\n marginRight: 12,\n },\n fileIcon: {\n width: 40,\n height: 40,\n borderRadius: 4,\n backgroundColor: '#f0f0f0',\n justifyContent: 'center',\n alignItems: 'center',\n marginRight: 12,\n },\n fileIconText: {\n fontSize: 20,\n },\n fileInfo: {\n flex: 1,\n },\n fileName: {\n fontSize: 16,\n fontWeight: '500',\n color: '#333',\n },\n fileSize: {\n fontSize: 12,\n color: '#666',\n marginTop: 2,\n },\n removeButton: {\n width: 32,\n height: 32,\n borderRadius: 16,\n backgroundColor: '#ff4444',\n justifyContent: 'center',\n alignItems: 'center',\n },\n removeButtonText: {\n color: 'white',\n fontSize: 16,\n fontWeight: 'bold',\n },\n emptyState: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n emptyStateText: {\n fontSize: 18,\n color: '#666',\n marginBottom: 10,\n },\n emptyStateSubtext: {\n fontSize: 14,\n color: '#999',\n textAlign: 'center',\n },\n buttonContainer: {\n marginTop: 24,\n alignItems: 'center',\n },\n primaryButton: {\n paddingHorizontal: 32,\n paddingVertical: 16,\n borderRadius: 8,\n minWidth: 120,\n alignItems: 'center',\n },\n primaryButtonText: {\n color: 'white',\n fontWeight: '600',\n fontSize: 16,\n },\n errorText: {\n color: '#dc2626',\n fontSize: 14,\n marginTop: 8,\n textAlign: 'center',\n },\n}); "]}
@@ -1,9 +1,14 @@
1
1
  import React from 'react';
2
2
  import { TemplateComponent } from '../../types/KYC.types';
3
+ interface IIDCardPayload {
4
+ dir: string;
5
+ file: string;
6
+ mrz: string;
7
+ }
3
8
  interface IDCardCaptureProps {
4
9
  component: TemplateComponent;
5
- value?: Record<string, string>;
6
- onValueChange: (value: Record<string, string>) => void;
10
+ value?: Record<string, IIDCardPayload>;
11
+ onValueChange: (value: Record<string, IIDCardPayload | string>) => void;
7
12
  error?: string;
8
13
  language?: string;
9
14
  currentSide?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IDCardCapture.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/IDCardCapture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAuD,MAAM,uBAAuB,CAAC;AAK/G,UAAU,kBAAkB;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsTtD,CAAC"}
1
+ {"version":3,"file":"IDCardCapture.d.ts","sourceRoot":"","sources":["../../../src/components/KYCElements/IDCardCapture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAA6E,MAAM,uBAAuB,CAAC;AAarI,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,kBAAkB;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2etD,CAAC"}