@os1-platform/dispatch-mobile 2.1.5 → 2.1.7

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 (319) hide show
  1. package/lib/commonjs/analytics/firebase/FirebaseLogging.js +24 -0
  2. package/lib/commonjs/analytics/firebase/FirebaseLogging.js.map +1 -0
  3. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js +44 -0
  4. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
  5. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +83 -0
  6. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
  7. package/lib/commonjs/analytics/sentry/SentryModels.js +6 -0
  8. package/lib/commonjs/analytics/sentry/SentryModels.js.map +1 -0
  9. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +78 -0
  10. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -0
  11. package/lib/commonjs/components/executiontasks/cancellation/CancelET.js +51 -0
  12. package/lib/commonjs/components/executiontasks/cancellation/CancelET.js.map +1 -1
  13. package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js +23 -0
  14. package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js.map +1 -1
  15. package/lib/commonjs/components/executiontasks/deliver/DeliverET.js +16 -0
  16. package/lib/commonjs/components/executiontasks/deliver/DeliverET.js.map +1 -1
  17. package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js +52 -2
  18. package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
  19. package/lib/commonjs/components/executiontasks/display/DisplayModalET.js +16 -0
  20. package/lib/commonjs/components/executiontasks/display/DisplayModalET.js.map +1 -1
  21. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js +41 -4
  22. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js.map +1 -1
  23. package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js +16 -0
  24. package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js.map +1 -1
  25. package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js +23 -0
  26. package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
  27. package/lib/commonjs/components/executiontasks/forms/FormGenerator.js +41 -18
  28. package/lib/commonjs/components/executiontasks/forms/FormGenerator.js.map +1 -1
  29. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
  30. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  31. package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
  32. package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
  33. package/lib/commonjs/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
  34. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +29 -16
  35. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  36. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +71 -6
  37. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  38. package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
  39. package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
  40. package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js +37 -0
  41. package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
  42. package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
  43. package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
  44. package/lib/commonjs/components/executiontasks/pickup/PickupET.js +16 -0
  45. package/lib/commonjs/components/executiontasks/pickup/PickupET.js.map +1 -1
  46. package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js +44 -0
  47. package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js.map +1 -1
  48. package/lib/commonjs/components/executiontasks/scan/ScanET.js +40 -1
  49. package/lib/commonjs/components/executiontasks/scan/ScanET.js.map +1 -1
  50. package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
  51. package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
  52. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
  53. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  54. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  55. package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
  56. package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
  57. package/lib/commonjs/components/widgets/CancelOrderDialog.js +16 -0
  58. package/lib/commonjs/components/widgets/CancelOrderDialog.js.map +1 -1
  59. package/lib/commonjs/components/widgets/Card.js +17 -1
  60. package/lib/commonjs/components/widgets/Card.js.map +1 -1
  61. package/lib/commonjs/components/widgets/ModalWidget.js +22 -2
  62. package/lib/commonjs/components/widgets/ModalWidget.js.map +1 -1
  63. package/lib/commonjs/components/widgets/SearchBar.js +9 -0
  64. package/lib/commonjs/components/widgets/SearchBar.js.map +1 -1
  65. package/lib/commonjs/components/widgets/SnackBarCustom.js +9 -0
  66. package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
  67. package/lib/commonjs/components/widgets/SplitTextInput.js +9 -0
  68. package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
  69. package/lib/commonjs/components/widgets/TabsComponent.js +12 -1
  70. package/lib/commonjs/components/widgets/TabsComponent.js.map +1 -1
  71. package/lib/commonjs/index.js +53 -0
  72. package/lib/commonjs/index.js.map +1 -1
  73. package/lib/commonjs/manager/location/LocationManager.js +9 -2
  74. package/lib/commonjs/manager/location/LocationManager.js.map +1 -1
  75. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +3 -3
  76. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  77. package/lib/commonjs/manager/sdk/DispatchSdkCache.js +3 -2
  78. package/lib/commonjs/manager/sdk/DispatchSdkCache.js.map +1 -1
  79. package/lib/commonjs/manager/sdk/callbacksHandler.js +8 -1
  80. package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
  81. package/lib/commonjs/manager/syncmanager/DBConfig.js +3 -1
  82. package/lib/commonjs/manager/syncmanager/DBConfig.js.map +1 -1
  83. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +77 -3
  84. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  85. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +17 -3
  86. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
  87. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +206 -6
  88. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  89. package/lib/commonjs/models/execTasks/ETBaseModels.js.map +1 -1
  90. package/lib/commonjs/models/sdk.js.map +1 -1
  91. package/lib/commonjs/styles/executionTasks/CommonStyles.js +4 -4
  92. package/lib/commonjs/styles/executionTasks/CommonStyles.js.map +1 -1
  93. package/lib/commonjs/ui/screens/DeliverScreen.js +18 -1
  94. package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/DoodleScreen.js +9 -0
  96. package/lib/commonjs/ui/screens/DoodleScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/DropCashScreen.js +10 -1
  98. package/lib/commonjs/ui/screens/DropCashScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/FormsScreen.js +7 -0
  100. package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/GeofenceScreen.js +12 -0
  102. package/lib/commonjs/ui/screens/GeofenceScreen.js.map +1 -1
  103. package/lib/commonjs/ui/screens/ImageCaptureScreen.js +9 -0
  104. package/lib/commonjs/ui/screens/ImageCaptureScreen.js.map +1 -1
  105. package/lib/commonjs/ui/screens/PaymentScreen.js +9 -0
  106. package/lib/commonjs/ui/screens/PaymentScreen.js.map +1 -1
  107. package/lib/commonjs/ui/screens/PickupScreen.js +9 -0
  108. package/lib/commonjs/ui/screens/PickupScreen.js.map +1 -1
  109. package/lib/commonjs/ui/screens/ValidateOTPScreen.js +12 -0
  110. package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
  111. package/lib/commonjs/utils/ExecTaskUtils.js +30 -13
  112. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  113. package/lib/commonjs/utils/Logger.js +54 -41
  114. package/lib/commonjs/utils/Logger.js.map +1 -1
  115. package/lib/commonjs/utils/SyncManagerUtils.js +12 -2
  116. package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
  117. package/lib/commonjs/utils/utils.js +24 -0
  118. package/lib/commonjs/utils/utils.js.map +1 -1
  119. package/lib/module/analytics/firebase/FirebaseLogging.js +17 -0
  120. package/lib/module/analytics/firebase/FirebaseLogging.js.map +1 -0
  121. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js +37 -0
  122. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
  123. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +74 -0
  124. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
  125. package/lib/module/analytics/sentry/SentryModels.js +2 -0
  126. package/lib/module/analytics/sentry/SentryModels.js.map +1 -0
  127. package/lib/module/analytics/sentry/SentrySdkConstants.js +72 -0
  128. package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -0
  129. package/lib/module/components/executiontasks/cancellation/CancelET.js +51 -0
  130. package/lib/module/components/executiontasks/cancellation/CancelET.js.map +1 -1
  131. package/lib/module/components/executiontasks/captureInput/CaptureText.js +23 -0
  132. package/lib/module/components/executiontasks/captureInput/CaptureText.js.map +1 -1
  133. package/lib/module/components/executiontasks/deliver/DeliverET.js +16 -0
  134. package/lib/module/components/executiontasks/deliver/DeliverET.js.map +1 -1
  135. package/lib/module/components/executiontasks/deliver/SLDeliverET.js +52 -2
  136. package/lib/module/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
  137. package/lib/module/components/executiontasks/display/DisplayModalET.js +16 -0
  138. package/lib/module/components/executiontasks/display/DisplayModalET.js.map +1 -1
  139. package/lib/module/components/executiontasks/doodle/SignatureET.js +41 -4
  140. package/lib/module/components/executiontasks/doodle/SignatureET.js.map +1 -1
  141. package/lib/module/components/executiontasks/dropCash/DropCashET.js +16 -0
  142. package/lib/module/components/executiontasks/dropCash/DropCashET.js.map +1 -1
  143. package/lib/module/components/executiontasks/dropCash/SLDropCash.js +23 -0
  144. package/lib/module/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
  145. package/lib/module/components/executiontasks/forms/FormGenerator.js +41 -18
  146. package/lib/module/components/executiontasks/forms/FormGenerator.js.map +1 -1
  147. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
  148. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  149. package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
  150. package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
  151. package/lib/module/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
  152. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +29 -16
  153. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  154. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +72 -7
  155. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  156. package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
  157. package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
  158. package/lib/module/components/executiontasks/payments/init/InitPaymentET.js +37 -0
  159. package/lib/module/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
  160. package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
  161. package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
  162. package/lib/module/components/executiontasks/pickup/PickupET.js +16 -0
  163. package/lib/module/components/executiontasks/pickup/PickupET.js.map +1 -1
  164. package/lib/module/components/executiontasks/pickup/SLPickupET.js +44 -0
  165. package/lib/module/components/executiontasks/pickup/SLPickupET.js.map +1 -1
  166. package/lib/module/components/executiontasks/scan/ScanET.js +40 -1
  167. package/lib/module/components/executiontasks/scan/ScanET.js.map +1 -1
  168. package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
  169. package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
  170. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
  171. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  172. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  173. package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
  174. package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
  175. package/lib/module/components/widgets/CancelOrderDialog.js +16 -0
  176. package/lib/module/components/widgets/CancelOrderDialog.js.map +1 -1
  177. package/lib/module/components/widgets/Card.js +17 -1
  178. package/lib/module/components/widgets/Card.js.map +1 -1
  179. package/lib/module/components/widgets/ModalWidget.js +22 -2
  180. package/lib/module/components/widgets/ModalWidget.js.map +1 -1
  181. package/lib/module/components/widgets/SearchBar.js +9 -0
  182. package/lib/module/components/widgets/SearchBar.js.map +1 -1
  183. package/lib/module/components/widgets/SnackBarCustom.js +9 -0
  184. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  185. package/lib/module/components/widgets/SplitTextInput.js +9 -0
  186. package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
  187. package/lib/module/components/widgets/TabsComponent.js +12 -1
  188. package/lib/module/components/widgets/TabsComponent.js.map +1 -1
  189. package/lib/module/index.js +11 -0
  190. package/lib/module/index.js.map +1 -1
  191. package/lib/module/manager/location/LocationManager.js +9 -2
  192. package/lib/module/manager/location/LocationManager.js.map +1 -1
  193. package/lib/module/manager/sdk/DispatchSDKManager.js +3 -3
  194. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  195. package/lib/module/manager/sdk/DispatchSdkCache.js +3 -2
  196. package/lib/module/manager/sdk/DispatchSdkCache.js.map +1 -1
  197. package/lib/module/manager/sdk/callbacksHandler.js +8 -1
  198. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  199. package/lib/module/manager/syncmanager/DBConfig.js +3 -1
  200. package/lib/module/manager/syncmanager/DBConfig.js.map +1 -1
  201. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +77 -3
  202. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  203. package/lib/module/manager/syncmanager/document/DocumentManager.js +17 -3
  204. package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
  205. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +207 -7
  206. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  207. package/lib/module/models/execTasks/ETBaseModels.js.map +1 -1
  208. package/lib/module/models/sdk.js.map +1 -1
  209. package/lib/module/styles/executionTasks/CommonStyles.js +5 -5
  210. package/lib/module/styles/executionTasks/CommonStyles.js.map +1 -1
  211. package/lib/module/ui/screens/DeliverScreen.js +18 -1
  212. package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
  213. package/lib/module/ui/screens/DoodleScreen.js +9 -0
  214. package/lib/module/ui/screens/DoodleScreen.js.map +1 -1
  215. package/lib/module/ui/screens/DropCashScreen.js +10 -0
  216. package/lib/module/ui/screens/DropCashScreen.js.map +1 -1
  217. package/lib/module/ui/screens/FormsScreen.js +7 -0
  218. package/lib/module/ui/screens/FormsScreen.js.map +1 -1
  219. package/lib/module/ui/screens/GeofenceScreen.js +12 -0
  220. package/lib/module/ui/screens/GeofenceScreen.js.map +1 -1
  221. package/lib/module/ui/screens/ImageCaptureScreen.js +9 -0
  222. package/lib/module/ui/screens/ImageCaptureScreen.js.map +1 -1
  223. package/lib/module/ui/screens/PaymentScreen.js +9 -0
  224. package/lib/module/ui/screens/PaymentScreen.js.map +1 -1
  225. package/lib/module/ui/screens/PickupScreen.js +9 -0
  226. package/lib/module/ui/screens/PickupScreen.js.map +1 -1
  227. package/lib/module/ui/screens/ValidateOTPScreen.js +12 -0
  228. package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
  229. package/lib/module/utils/ExecTaskUtils.js +30 -13
  230. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  231. package/lib/module/utils/Logger.js +54 -39
  232. package/lib/module/utils/Logger.js.map +1 -1
  233. package/lib/module/utils/SyncManagerUtils.js +12 -2
  234. package/lib/module/utils/SyncManagerUtils.js.map +1 -1
  235. package/lib/module/utils/utils.js +22 -0
  236. package/lib/module/utils/utils.js.map +1 -1
  237. package/lib/typescript/analytics/firebase/FirebaseLogging.d.ts +2 -0
  238. package/lib/typescript/analytics/sentry/SentryAnalyticsSingleton.d.ts +11 -0
  239. package/lib/typescript/analytics/sentry/SentryAnalyticsUtils.d.ts +2 -0
  240. package/lib/typescript/analytics/sentry/SentryModels.d.ts +15 -0
  241. package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +66 -0
  242. package/lib/typescript/components/executiontasks/imageCapture/CaptureSchema.d.ts +4 -0
  243. package/lib/typescript/components/executiontasks/imageCapture/CaptureUtils.d.ts +7 -1
  244. package/lib/typescript/index.d.ts +7 -0
  245. package/lib/typescript/manager/dispatch/DispatchStateContainer.d.ts +2 -0
  246. package/lib/typescript/manager/location/LocationManager.d.ts +1 -0
  247. package/lib/typescript/manager/sdk/DispatchSdkCache.d.ts +2 -0
  248. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +3 -1
  249. package/lib/typescript/manager/syncmanager/DBConfig.d.ts +4 -0
  250. package/lib/typescript/manager/syncmanager/document/DocumentManager.d.ts +3 -1
  251. package/lib/typescript/manager/syncmanager/document/DocumentSyncManager.d.ts +5 -1
  252. package/lib/typescript/models/execTasks/ETBaseModels.d.ts +25 -6
  253. package/lib/typescript/models/sdk.d.ts +1 -0
  254. package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +4 -4
  255. package/lib/typescript/utils/Logger.d.ts +0 -3
  256. package/lib/typescript/utils/SyncManagerUtils.d.ts +1 -1
  257. package/lib/typescript/utils/utils.d.ts +4 -0
  258. package/package.json +10 -7
  259. package/src/analytics/firebase/FirebaseLogging.ts +25 -0
  260. package/src/analytics/sentry/SentryAnalyticsSingleton.ts +35 -0
  261. package/src/analytics/sentry/SentryAnalyticsUtils.ts +77 -0
  262. package/src/analytics/sentry/SentryModels.ts +18 -0
  263. package/src/analytics/sentry/SentrySdkConstants.ts +77 -0
  264. package/src/components/executiontasks/cancellation/CancelET.tsx +25 -2
  265. package/src/components/executiontasks/captureInput/CaptureText.tsx +15 -2
  266. package/src/components/executiontasks/deliver/DeliverET.tsx +8 -0
  267. package/src/components/executiontasks/deliver/SLDeliverET.tsx +22 -5
  268. package/src/components/executiontasks/display/DisplayModalET.tsx +8 -0
  269. package/src/components/executiontasks/doodle/SignatureET.tsx +37 -4
  270. package/src/components/executiontasks/dropCash/DropCashET.tsx +9 -0
  271. package/src/components/executiontasks/dropCash/SLDropCash.tsx +11 -0
  272. package/src/components/executiontasks/forms/FormGenerator.tsx +46 -29
  273. package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +10 -3
  274. package/src/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.tsx +8 -1
  275. package/src/components/executiontasks/imageCapture/CaptureSchema.ts +4 -0
  276. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +45 -18
  277. package/src/components/executiontasks/imageCapture/ImageCapture.tsx +42 -7
  278. package/src/components/executiontasks/payments/completePayment/CompletePaymentET.tsx +11 -0
  279. package/src/components/executiontasks/payments/init/InitPaymentET.tsx +17 -0
  280. package/src/components/executiontasks/payments/processPayment/ProcessPaymentET.tsx +11 -0
  281. package/src/components/executiontasks/pickup/PickupET.tsx +8 -0
  282. package/src/components/executiontasks/pickup/SLPickupET.tsx +19 -0
  283. package/src/components/executiontasks/scan/ScanET.tsx +19 -1
  284. package/src/components/executiontasks/scan/sub_components/SummaryPage.tsx +11 -0
  285. package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +14 -0
  286. package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +2 -0
  287. package/src/components/executiontasks/verifyOtp/VerifyOtpET.tsx +5 -0
  288. package/src/components/widgets/CancelOrderDialog.tsx +7 -0
  289. package/src/components/widgets/Card.tsx +9 -1
  290. package/src/components/widgets/ModalWidget.tsx +16 -2
  291. package/src/components/widgets/SearchBar.tsx +6 -1
  292. package/src/components/widgets/SnackBarCustom.tsx +4 -0
  293. package/src/components/widgets/SplitTextInput.tsx +6 -0
  294. package/src/components/widgets/TabsComponent.tsx +8 -1
  295. package/src/index.tsx +10 -3
  296. package/src/manager/location/LocationManager.ts +8 -1
  297. package/src/manager/sdk/DispatchSDKManager.ts +8 -2
  298. package/src/manager/sdk/DispatchSdkCache.ts +2 -1
  299. package/src/manager/sdk/callbacksHandler.ts +12 -1
  300. package/src/manager/syncmanager/DBConfig.ts +4 -0
  301. package/src/manager/syncmanager/document/DocumentHttpClient.ts +105 -5
  302. package/src/manager/syncmanager/document/DocumentManager.ts +28 -2
  303. package/src/manager/syncmanager/document/DocumentSyncManager.ts +230 -5
  304. package/src/models/execTasks/ETBaseModels.ts +20 -7
  305. package/src/models/sdk.ts +1 -0
  306. package/src/styles/executionTasks/CommonStyles.ts +5 -5
  307. package/src/ui/screens/DeliverScreen.tsx +9 -0
  308. package/src/ui/screens/DoodleScreen.tsx +5 -0
  309. package/src/ui/screens/DropCashScreen.tsx +6 -0
  310. package/src/ui/screens/FormsScreen.tsx +3 -0
  311. package/src/ui/screens/GeofenceScreen.tsx +11 -1
  312. package/src/ui/screens/ImageCaptureScreen.tsx +5 -0
  313. package/src/ui/screens/PaymentScreen.tsx +5 -0
  314. package/src/ui/screens/PickupScreen.tsx +7 -1
  315. package/src/ui/screens/ValidateOTPScreen.tsx +10 -0
  316. package/src/utils/ExecTaskUtils.ts +36 -10
  317. package/src/utils/Logger.ts +50 -51
  318. package/src/utils/SyncManagerUtils.ts +20 -2
  319. package/src/utils/utils.ts +23 -0
@@ -3,6 +3,10 @@ import * as FileSystem from 'expo-file-system';
3
3
  import { FileSystemUploadType } from 'expo-file-system';
4
4
  import DispatchSdkCache from '../../sdk/DispatchSdkCache';
5
5
  import Logger, { LOG_TYPE } from '../../../utils/Logger';
6
+ import RNFS from 'react-native-fs';
7
+ import { SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
8
+ import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
9
+ import { flattenObject } from '../../../utils/utils';
6
10
  const cache = DispatchSdkCache.getInstance();
7
11
  const cacheKeys = DispatchSdkCache.KEYS;
8
12
  export default class DocumentHttpClient extends HttpClient {
@@ -12,6 +16,23 @@ export default class DocumentHttpClient extends HttpClient {
12
16
  async uploadDocument(document) {
13
17
  if (document.base64 && document.data != null) {
14
18
  const response = await this.uploadBase64File(document);
19
+ let info = '';
20
+ if (response && response.data !== null && response.data.body !== null && response.status !== 202) {
21
+ let body = response.data.body;
22
+ info = body.substring(40);
23
+ } else {
24
+ info = String(response.status);
25
+ }
26
+ let extraParameters = {
27
+ response: info
28
+ };
29
+ fireEventWithScreenName({
30
+ severityLevel: SeverityLevelValue.LOG,
31
+ eventName: SentryEventNameSdkConstants.API_RESPONSE,
32
+ screenName: 'Upload_Base64_File_Response',
33
+ extraParams: extraParameters
34
+ });
35
+ Logger.getInstance().logEvent('uploadBase64FileResponse', flattenObject(extraParameters), LOG_TYPE.SDK_ERROR);
15
36
  if (response && response.data != null && response.data.data != null && response.data.data.id && response.status === 202) {
16
37
  return response.data.data.id;
17
38
  } else {
@@ -19,21 +40,45 @@ export default class DocumentHttpClient extends HttpClient {
19
40
  }
20
41
  } else {
21
42
  const uploadResponse = await this.uploadBinaryFile(document);
22
- Logger.getInstance().logEvent('uploadDocument', JSON.stringify(uploadResponse), LOG_TYPE.SDK_INFO);
43
+ let info = '';
44
+ if (uploadResponse && uploadResponse.body !== null && uploadResponse.status !== 202) {
45
+ let body = uploadResponse.body;
46
+ info = body.substring(40);
47
+ } else {
48
+ info = String(uploadResponse.status);
49
+ }
50
+ let extraParams = {
51
+ response: info
52
+ };
53
+ fireEventWithScreenName({
54
+ severityLevel: SeverityLevelValue.LOG,
55
+ eventName: SentryEventNameSdkConstants.API_RESPONSE,
56
+ screenName: 'Upload_Binary_File_Response',
57
+ extraParams: extraParams
58
+ });
59
+ Logger.getInstance().logEvent('uploadBinaryFileResponse', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
23
60
  if (uploadResponse != null && uploadResponse.status === 202 && uploadResponse.body != null) {
24
61
  var _JSON$parse;
25
62
  FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE
63
+ FileSystem.deleteAsync(document.processed_file_path).then().catch(); // WE DELETE FILE HERE
64
+
26
65
  return (_JSON$parse = JSON.parse(uploadResponse.body)) === null || _JSON$parse === void 0 || (_JSON$parse = _JSON$parse.data) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.id;
27
66
  } else {
28
67
  return null;
29
68
  }
30
69
  }
31
70
  }
71
+
72
+ // This function will upload processed base64 data (overlayed base64 data ) if exist otherwise will uplaod original base 64 data for pod signature.
32
73
  async uploadBase64File(document) {
74
+ let dataToUpload = document.data;
75
+ if (document.processed_file_path !== null && document.processed_file_path !== undefined && document.processed_file_path !== '') {
76
+ dataToUpload = document.processed_file_path;
77
+ }
33
78
  let requestBody = JSON.stringify({
34
79
  file: {
35
80
  type: 'FILE',
36
- data: document.data
81
+ data: dataToUpload
37
82
  },
38
83
  description: document.desc,
39
84
  tags: [{
@@ -49,6 +94,17 @@ export default class DocumentHttpClient extends HttpClient {
49
94
  fileName: document.file_name
50
95
  });
51
96
  const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
97
+ let extraParams = {
98
+ fileName: document.file_name,
99
+ folderName: document.fms_folder_id
100
+ };
101
+ fireEventWithScreenName({
102
+ severityLevel: SeverityLevelValue.LOG,
103
+ eventName: SentryEventNameSdkConstants.API_CALL,
104
+ screenName: 'Upload_Base64_File_Request',
105
+ extraParams: extraParams
106
+ });
107
+ Logger.getInstance().logEvent('uploadBase64FileRequest', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
52
108
  return this.instance.post(`/api/folders/${document.fms_folder_id}/files`, requestBody, {
53
109
  headers: {
54
110
  'accept': 'application/json',
@@ -59,10 +115,28 @@ export default class DocumentHttpClient extends HttpClient {
59
115
  }
60
116
  });
61
117
  }
118
+
119
+ // This function will upload processed (overlayed file) if exist otherwise will uplaod original file for pod images.
62
120
  async uploadBinaryFile(document) {
63
121
  const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
122
+ let filePathToUpload = document.file_path;
123
+ let processedFileExist = await RNFS.exists(document.processed_file_path);
124
+ if (processedFileExist) {
125
+ filePathToUpload = document.processed_file_path;
126
+ }
64
127
  const url = sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;
65
- return FileSystem.uploadAsync(url, document.file_path, {
128
+ let extraParams = {
129
+ fileName: document.file_name,
130
+ folderName: document.fms_folder_id
131
+ };
132
+ fireEventWithScreenName({
133
+ severityLevel: SeverityLevelValue.LOG,
134
+ eventName: SentryEventNameSdkConstants.API_CALL,
135
+ screenName: 'Upload_Binary_File_Request',
136
+ extraParams: extraParams
137
+ });
138
+ Logger.getInstance().logEvent('uploadBinaryFileRequest', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
139
+ return FileSystem.uploadAsync(url, filePathToUpload, {
66
140
  headers: {
67
141
  'accept': 'application/json',
68
142
  'Content-Type': 'multipart/form-data',
@@ -1 +1 @@
1
- {"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","id","status","uploadResponse","uploadBinaryFile","logEvent","JSON","stringify","SDK_INFO","body","_JSON$parse","deleteAsync","file_path","then","catch","parse","requestBody","file","type","description","desc","tags","key","value","dispatch_id","file_name","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","instance","post","fms_folder_id","headers","accessToken","tenantID","url","tenantBaseURL","uploadAsync","httpMethod","uploadType","MULTIPART","fieldName","parameters"],"sources":["DocumentHttpClient.ts"],"sourcesContent":["import HttpClient from '../../../network/client';\nimport type { DocumentRow } from '../DBConfig';\nimport type { AxiosResponse } from 'axios';\nimport * as FileSystem from 'expo-file-system';\nimport { FileSystemUploadResult, FileSystemUploadType } from 'expo-file-system';\nimport DispatchSdkCache from '../../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { DispatchSDKConfig } from '../../../models/sdk';\n\nconst cache = DispatchSdkCache.getInstance();\nconst cacheKeys = DispatchSdkCache.KEYS;\nexport default class DocumentHttpClient extends HttpClient {\n constructor(baseURL: string) {\n super(baseURL);\n }\n public async uploadDocument(document: DocumentRow): Promise<string | null> {\n if (document.base64 && document.data != null) {\n const response = await this.uploadBase64File(document);\n if (\n response &&\n response.data != null &&\n response.data.data != null &&\n response.data.data.id &&\n response.status === 202\n ) {\n return response.data.data.id;\n } else {\n return null;\n }\n } else {\n const uploadResponse = await this.uploadBinaryFile(document);\n Logger.getInstance().logEvent(\n 'uploadDocument',\n JSON.stringify(uploadResponse),\n LOG_TYPE.SDK_INFO\n );\n if (\n uploadResponse != null &&\n uploadResponse.status === 202 &&\n uploadResponse.body != null\n ) {\n FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE\n return JSON.parse(uploadResponse.body)?.data?.id;\n } else {\n return null;\n }\n }\n }\n\n public async uploadBase64File(document: DocumentRow): Promise<AxiosResponse> {\n let requestBody = JSON.stringify({\n file: {\n type: 'FILE',\n data: document.data,\n },\n description: document.desc,\n tags: [\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ],\n fileName: document.file_name,\n });\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n return this.instance.post(\n `/api/folders/${document.fms_folder_id}/files`,\n requestBody,\n {\n headers: {\n 'accept': 'application/json',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'Content-Type': 'application/json',\n },\n }\n );\n }\n private async uploadBinaryFile(\n document: DocumentRow\n ): Promise<FileSystemUploadResult> {\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n const url =\n sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;\n return FileSystem.uploadAsync(url, document.file_path, {\n headers: {\n 'accept': 'application/json',\n 'Content-Type': 'multipart/form-data',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n },\n httpMethod: 'POST',\n uploadType: FileSystemUploadType.MULTIPART,\n fieldName: 'file',\n parameters: {\n tags: JSON.stringify([\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ]),\n },\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","RNFS","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","flattenObject","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","info","body","status","substring","String","extraParameters","severityLevel","LOG","eventName","API_RESPONSE","screenName","extraParams","logEvent","SDK_ERROR","id","uploadResponse","uploadBinaryFile","_JSON$parse","deleteAsync","file_path","then","catch","processed_file_path","JSON","parse","dataToUpload","undefined","requestBody","stringify","file","type","description","desc","tags","key","value","dispatch_id","file_name","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","folderName","fms_folder_id","API_CALL","instance","post","headers","accessToken","tenantID","filePathToUpload","processedFileExist","exists","url","tenantBaseURL","uploadAsync","httpMethod","uploadType","MULTIPART","fieldName","parameters"],"sources":["DocumentHttpClient.ts"],"sourcesContent":["import HttpClient from '../../../network/client';\nimport type { DocumentRow } from '../DBConfig';\nimport type { AxiosResponse } from 'axios';\nimport * as FileSystem from 'expo-file-system';\nimport { FileSystemUploadResult, FileSystemUploadType } from 'expo-file-system';\nimport DispatchSdkCache from '../../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { DispatchSDKConfig } from '../../../models/sdk';\nimport RNFS from 'react-native-fs';\nimport { stat } from 'react-native-fs';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nimport { flattenObject } from '../../../utils/utils';\n\nconst cache = DispatchSdkCache.getInstance();\nconst cacheKeys = DispatchSdkCache.KEYS;\nexport default class DocumentHttpClient extends HttpClient {\n constructor(baseURL: string) {\n super(baseURL);\n }\n public async uploadDocument(document: DocumentRow): Promise<string | null> {\n if (document.base64 && document.data != null) {\n const response = await this.uploadBase64File(document);\n\n let info = '';\n if (\n response &&\n response.data !== null &&\n response.data.body !== null &&\n response.status !== 202\n ) {\n let body = response.data.body;\n info = body.substring(40);\n } else {\n info = String(response.status);\n }\n let extraParameters = { response: info };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'Upload_Base64_File_Response',\n extraParams: extraParameters,\n });\n\n Logger.getInstance().logEvent(\n 'uploadBase64FileResponse',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n if (\n response &&\n response.data != null &&\n response.data.data != null &&\n response.data.data.id &&\n response.status === 202\n ) {\n return response.data.data.id;\n } else {\n return null;\n }\n } else {\n const uploadResponse = await this.uploadBinaryFile(document);\n let info = '';\n if (\n uploadResponse &&\n uploadResponse.body !== null &&\n uploadResponse.status !== 202\n ) {\n let body = uploadResponse.body;\n info = body.substring(40);\n } else {\n info = String(uploadResponse.status);\n }\n let extraParams = { response: info };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'Upload_Binary_File_Response',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileResponse',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n if (\n uploadResponse != null &&\n uploadResponse.status === 202 &&\n uploadResponse.body != null\n ) {\n FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE\n FileSystem.deleteAsync(document.processed_file_path).then().catch(); // WE DELETE FILE HERE\n\n return JSON.parse(uploadResponse.body)?.data?.id;\n } else {\n return null;\n }\n }\n }\n\n // This function will upload processed base64 data (overlayed base64 data ) if exist otherwise will uplaod original base 64 data for pod signature.\n public async uploadBase64File(document: DocumentRow): Promise<AxiosResponse> {\n let dataToUpload = document.data;\n if (\n document.processed_file_path !== null &&\n document.processed_file_path !== undefined &&\n document.processed_file_path !== ''\n ) {\n dataToUpload = document.processed_file_path;\n }\n let requestBody = JSON.stringify({\n file: {\n type: 'FILE',\n data: dataToUpload,\n },\n description: document.desc,\n tags: [\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ],\n fileName: document.file_name,\n });\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n let extraParams = {\n fileName: document.file_name,\n folderName: document.fms_folder_id,\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Base64_File_Request',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBase64FileRequest',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n return this.instance.post(\n `/api/folders/${document.fms_folder_id}/files`,\n requestBody,\n {\n headers: {\n 'accept': 'application/json',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'Content-Type': 'application/json',\n },\n }\n );\n }\n\n // This function will upload processed (overlayed file) if exist otherwise will uplaod original file for pod images.\n private async uploadBinaryFile(\n document: DocumentRow\n ): Promise<FileSystemUploadResult> {\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n let filePathToUpload = document.file_path;\n let processedFileExist = await RNFS.exists(document.processed_file_path);\n if (processedFileExist) {\n filePathToUpload = document.processed_file_path;\n }\n const url =\n sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;\n let extraParams = {\n fileName: document.file_name,\n folderName: document.fms_folder_id,\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Binary_File_Request',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileRequest',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n return FileSystem.uploadAsync(url, filePathToUpload, {\n headers: {\n 'accept': 'application/json',\n 'Content-Type': 'multipart/form-data',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n },\n httpMethod: 'POST',\n uploadType: FileSystemUploadType.MULTIPART,\n fieldName: 'file',\n parameters: {\n tags: JSON.stringify([\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ]),\n },\n });\n }\n}\n"],"mappings":"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"}
@@ -28,12 +28,18 @@ export default class DocumentManager {
28
28
  ${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\
29
29
  ${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\
30
30
  ${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\
31
+ ${DOCUMENT_COLUMNS.GEO_TIMESTAMP} TEXT,\
32
+ ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} TEXT,\
31
33
  ${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`, []);
32
34
  }
35
+ async truncateDocumentTable() {
36
+ await Database.executeQuery(`DELETE FROM ${DOCUMENT_TABLE};`, []);
37
+ }
33
38
  async insertDocument(fmsFolderID, desc, dspID,
34
39
  // jobID: string,
35
40
  // objectiveRef: string,
36
- base64, fileName, fileType, data, filePath, priority) {
41
+ base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority) {
42
+ console.log('insertDocument2:', fmsFolderID);
37
43
  return await Database.executeQuery(`INSERT INTO ${DOCUMENT_TABLE}(\
38
44
  ${DOCUMENT_COLUMNS.DATA},\
39
45
  ${DOCUMENT_COLUMNS.DISPATCH_ID},\
@@ -43,8 +49,10 @@ export default class DocumentManager {
43
49
  ${DOCUMENT_COLUMNS.FILE_NAME},\
44
50
  ${DOCUMENT_COLUMNS.FILE_TYPE},\
45
51
  ${DOCUMENT_COLUMNS.DESCRIPTION},\
46
- ${DOCUMENT_COLUMNS.PRIORITY}) \
47
- values (?,?,?,?,?,?,?,?,?)`, [data, dspID, fmsFolderID, base64, filePath, fileName, fileType, desc, priority ? priority : 1]);
52
+ ${DOCUMENT_COLUMNS.PRIORITY},\
53
+ ${DOCUMENT_COLUMNS.GEO_TIMESTAMP},\
54
+ ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH}) \
55
+ values (?,?,?,?,?,?,?,?,?,?,?)`, [data, dspID, fmsFolderID, base64, filePath, fileName, fileType, desc, priority ? priority : 1, geoTimeStamp, processedFilePath]);
48
56
  }
49
57
  async getAllDocuments(dispatchID) {
50
58
  if (!dispatchID) {
@@ -69,6 +77,12 @@ export default class DocumentManager {
69
77
  if (!id || !fmsID) return;
70
78
  await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`, [fmsID, id]);
71
79
  }
80
+
81
+ // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.
82
+ async updateProcesedFilePath(id, origialFilePath, processedFilePath) {
83
+ if (!id || !processedFilePath) return;
84
+ await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.FILE_PATH} = ?, ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`, [origialFilePath, processedFilePath, id]);
85
+ }
72
86
  async updateDocSyncError(id, uploadError) {
73
87
  if (!id) throw new TypeError('Document ID cannot be null');
74
88
  await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE}\
@@ -1 +1 @@
1
- {"version":3,"names":["DOCUMENT_COLUMNS","DOCUMENT_TABLE","Database","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","ID","DATA","BASE64","FILE_PATH","DISPATCH_ID","FILE_NAME","FILE_TYPE","SYNCED","FMS_ID","FMS_FOLDER_ID","PRIORITY","SYNC_ERROR","DESCRIPTION","insertDocument","fmsFolderID","desc","dspID","base64","fileName","fileType","data","filePath","priority","getAllDocuments","dispatchID","resultSet","rows","_array","getAllUnsyncedDocs","deleteAllSyncedDocuments","markDocumentSynced","id","fmsID","updateDocSyncError","uploadError","TypeError","getUnsyncedDocument","rs","_class","_defineProperty"],"sources":["DocumentManager.ts"],"sourcesContent":["import { DOCUMENT_COLUMNS, DOCUMENT_TABLE, DocumentRow } from '../DBConfig';\nimport * as Database from '../database';\nimport type { SQLResultSet } from 'expo-sqlite';\n\nexport default class DocumentManager {\n private static instance: DocumentManager;\n\n private constructor() {}\n\n public static async getInstance(): Promise<DocumentManager> {\n if (!DocumentManager.instance) {\n let managerInstance = new DocumentManager();\n await managerInstance.init();\n DocumentManager.instance = managerInstance;\n }\n return DocumentManager.instance;\n }\n\n public async init(): Promise<void> {\n await Database.executeQuery(\n `CREATE TABLE IF NOT EXISTS ${DOCUMENT_TABLE} (\\\n ${DOCUMENT_COLUMNS.ID} INTEGER PRIMARY KEY AUTOINCREMENT,\\\n ${DOCUMENT_COLUMNS.DATA} TEXT,\\\n ${DOCUMENT_COLUMNS.BASE64} INTEGER NOT NULL DEFAULT 0,\\\n ${DOCUMENT_COLUMNS.FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID} TEXT NOT NULL,\\\n ${DOCUMENT_COLUMNS.FILE_NAME} TEXT,\\\n ${DOCUMENT_COLUMNS.FILE_TYPE} TEXT,\\\n ${DOCUMENT_COLUMNS.SYNCED} INTEGER DEFAULT 0 NOT NULL,\\\n ${DOCUMENT_COLUMNS.FMS_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\\\n ${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`,\n []\n );\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n desc: string,\n dspID: string,\n // jobID: string,\n // objectiveRef: string,\n base64: boolean,\n fileName: string,\n fileType: string,\n data?: string | null,\n filePath?: string | null,\n priority?: number\n ): Promise<SQLResultSet> {\n return await Database.executeQuery(\n `INSERT INTO ${DOCUMENT_TABLE}(\\\n ${DOCUMENT_COLUMNS.DATA},\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID},\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID},\\\n ${DOCUMENT_COLUMNS.BASE64},\\\n ${DOCUMENT_COLUMNS.FILE_PATH},\\\n ${DOCUMENT_COLUMNS.FILE_NAME},\\\n ${DOCUMENT_COLUMNS.FILE_TYPE},\\\n ${DOCUMENT_COLUMNS.DESCRIPTION},\\\n ${DOCUMENT_COLUMNS.PRIORITY}) \\\n values (?,?,?,?,?,?,?,?,?)`,\n [\n data,\n dspID,\n fmsFolderID,\n base64,\n filePath,\n fileName,\n fileType,\n desc,\n priority ? priority : 1,\n ]\n );\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!dispatchID) {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE};`,\n []\n );\n return resultSet.rows._array;\n } else {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.DISPATCH_ID} =?;`,\n [dispatchID]\n );\n return resultSet.rows._array;\n }\n }\n\n public async getAllUnsyncedDocs(): Promise<DocumentRow[]> {\n let resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE} \\\n where ${DOCUMENT_COLUMNS.SYNCED} = 0;`,\n []\n );\n return resultSet.rows._array;\n }\n\n public deleteAllSyncedDocuments(dispatchID: string) {\n return Database.executeQuery(\n `DELETE FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 1 and ${DOCUMENT_COLUMNS.DISPATCH_ID} = ?;`,\n [dispatchID]\n );\n }\n\n public async markDocumentSynced(id: number, fmsID: string): Promise<void> {\n if (!id || !fmsID) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [fmsID, id]\n );\n }\n\n public async updateDocSyncError(\n id: number,\n uploadError: string\n ): Promise<void> {\n if (!id) throw new TypeError('Document ID cannot be null');\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE}\\\n SET \\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} = ?\\\n WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [uploadError, id]\n );\n }\n\n public async getUnsyncedDocument(): Promise<DocumentRow[]> {\n let rs = await Database.executeQuery(\n `SELECT * from ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 0 \\\n ORDER BY ${DOCUMENT_COLUMNS.PRIORITY} ASC LIMIT 1;`,\n []\n );\n return rs.rows._array;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DOCUMENT_COLUMNS","DOCUMENT_TABLE","Database","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","ID","DATA","BASE64","FILE_PATH","DISPATCH_ID","FILE_NAME","FILE_TYPE","SYNCED","FMS_ID","FMS_FOLDER_ID","PRIORITY","SYNC_ERROR","GEO_TIMESTAMP","PROCESSED_FILE_PATH","DESCRIPTION","truncateDocumentTable","insertDocument","fmsFolderID","desc","dspID","base64","fileName","fileType","data","filePath","geoTimeStamp","processedFilePath","priority","console","log","getAllDocuments","dispatchID","resultSet","rows","_array","getAllUnsyncedDocs","deleteAllSyncedDocuments","markDocumentSynced","id","fmsID","updateProcesedFilePath","origialFilePath","updateDocSyncError","uploadError","TypeError","getUnsyncedDocument","rs","_class","_defineProperty"],"sources":["DocumentManager.ts"],"sourcesContent":["import { DOCUMENT_COLUMNS, DOCUMENT_TABLE, DocumentRow } from '../DBConfig';\nimport * as Database from '../database';\nimport type { SQLResultSet } from 'expo-sqlite';\n\nexport default class DocumentManager {\n private static instance: DocumentManager;\n\n private constructor() {}\n\n public static async getInstance(): Promise<DocumentManager> {\n if (!DocumentManager.instance) {\n let managerInstance = new DocumentManager();\n await managerInstance.init();\n DocumentManager.instance = managerInstance;\n }\n return DocumentManager.instance;\n }\n\n public async init(): Promise<void> {\n await Database.executeQuery(\n `CREATE TABLE IF NOT EXISTS ${DOCUMENT_TABLE} (\\\n ${DOCUMENT_COLUMNS.ID} INTEGER PRIMARY KEY AUTOINCREMENT,\\\n ${DOCUMENT_COLUMNS.DATA} TEXT,\\\n ${DOCUMENT_COLUMNS.BASE64} INTEGER NOT NULL DEFAULT 0,\\\n ${DOCUMENT_COLUMNS.FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID} TEXT NOT NULL,\\\n ${DOCUMENT_COLUMNS.FILE_NAME} TEXT,\\\n ${DOCUMENT_COLUMNS.FILE_TYPE} TEXT,\\\n ${DOCUMENT_COLUMNS.SYNCED} INTEGER DEFAULT 0 NOT NULL,\\\n ${DOCUMENT_COLUMNS.FMS_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\\\n ${DOCUMENT_COLUMNS.GEO_TIMESTAMP} TEXT,\\\n ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`,\n []\n );\n }\n\n public async truncateDocumentTable(): Promise<void> {\n await Database.executeQuery(`DELETE FROM ${DOCUMENT_TABLE};`, []);\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n desc: string,\n dspID: string,\n // jobID: string,\n // objectiveRef: string,\n base64: boolean,\n fileName: string,\n fileType: string,\n data?: string | null,\n filePath?: string | null,\n geoTimeStamp?: string | null,\n processedFilePath?: string | null,\n priority?: number\n ): Promise<SQLResultSet> {\n console.log('insertDocument2:', fmsFolderID);\n return await Database.executeQuery(\n `INSERT INTO ${DOCUMENT_TABLE}(\\\n ${DOCUMENT_COLUMNS.DATA},\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID},\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID},\\\n ${DOCUMENT_COLUMNS.BASE64},\\\n ${DOCUMENT_COLUMNS.FILE_PATH},\\\n ${DOCUMENT_COLUMNS.FILE_NAME},\\\n ${DOCUMENT_COLUMNS.FILE_TYPE},\\\n ${DOCUMENT_COLUMNS.DESCRIPTION},\\\n ${DOCUMENT_COLUMNS.PRIORITY},\\\n ${DOCUMENT_COLUMNS.GEO_TIMESTAMP},\\\n ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH}) \\\n values (?,?,?,?,?,?,?,?,?,?,?)`,\n [\n data,\n dspID,\n fmsFolderID,\n base64,\n filePath,\n fileName,\n fileType,\n desc,\n priority ? priority : 1,\n geoTimeStamp,\n processedFilePath,\n ]\n );\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!dispatchID) {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE};`,\n []\n );\n return resultSet.rows._array;\n } else {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.DISPATCH_ID} =?;`,\n [dispatchID]\n );\n return resultSet.rows._array;\n }\n }\n\n public async getAllUnsyncedDocs(): Promise<DocumentRow[]> {\n let resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE} \\\n where ${DOCUMENT_COLUMNS.SYNCED} = 0;`,\n []\n );\n return resultSet.rows._array;\n }\n\n public deleteAllSyncedDocuments(dispatchID: string) {\n return Database.executeQuery(\n `DELETE FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 1 and ${DOCUMENT_COLUMNS.DISPATCH_ID} = ?;`,\n [dispatchID]\n );\n }\n\n public async markDocumentSynced(id: number, fmsID: string): Promise<void> {\n if (!id || !fmsID) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [fmsID, id]\n );\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n public async updateProcesedFilePath(\n id: number,\n origialFilePath: String,\n processedFilePath: String\n ): Promise<void> {\n if (!id || !processedFilePath) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.FILE_PATH} = ?, ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [origialFilePath, processedFilePath, id]\n );\n }\n\n public async updateDocSyncError(\n id: number,\n uploadError: string\n ): Promise<void> {\n if (!id) throw new TypeError('Document ID cannot be null');\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE}\\\n SET \\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} = ?\\\n WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [uploadError, id]\n );\n }\n\n public async getUnsyncedDocument(): Promise<DocumentRow[]> {\n let rs = await Database.executeQuery(\n `SELECT * from ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 0 \\\n ORDER BY ${DOCUMENT_COLUMNS.PRIORITY} ASC LIMIT 1;`,\n []\n );\n return rs.rows._array;\n }\n}\n"],"mappings":"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"}
@@ -4,11 +4,18 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
4
4
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
5
  import DocumentManager from './DocumentManager';
6
6
  import DocumentHttpClient from './DocumentHttpClient';
7
- import { isEmptyOrBlank } from '../../../utils/utils';
7
+ import { isEmptyOrBlank, flattenObject } from '../../../utils/utils';
8
8
  import { BaseError } from '../../../errors/BaseError';
9
9
  import BaseErrorCodes, { InvalidArgumentsError, InvalidBaseURL, SyncManagerNotInitialized } from '../../../errors/ErrorCodes';
10
10
  import Logger, { LOG_TYPE } from '../../../utils/Logger';
11
11
  import NetworkUtil from '../../../utils/NetworkUtil';
12
+ import Marker, { Position, TextBackgroundType, ImageFormat } from 'react-native-image-marker';
13
+ import RNFS from 'react-native-fs';
14
+ import Storage from '../../../utils/storage';
15
+ import { Platform } from 'react-native';
16
+ import { SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
17
+ import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
18
+ const latlngToDms = require('latlng-to-dms');
12
19
  export default class DocumentSyncManager {
13
20
  get retries() {
14
21
  return this._retries;
@@ -71,8 +78,8 @@ export default class DocumentSyncManager {
71
78
  async insertDocument(fmsFolderID, data, base64, desc, dspID,
72
79
  // jobID: string,
73
80
  // objRef: string,
74
- filePath, fileType, fileName) {
75
- let priority = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;
81
+ filePath, fileType, fileName, geoTimeStamp, processedFilePath) {
82
+ let priority = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 1;
76
83
  if (isEmptyOrBlank(desc) || isEmptyOrBlank(dspID) ||
77
84
  // isEmptyOrBlank(jobID) ||
78
85
  // isEmptyOrBlank(objRef) ||
@@ -82,10 +89,11 @@ export default class DocumentSyncManager {
82
89
  Logger.getInstance().logEvent('insertDocument', 'INIT DOC SYNC AGAIN', LOG_TYPE.SDK_INFO);
83
90
  this.docManager = await DocumentManager.getInstance();
84
91
  }
92
+ console.log('insertDocument1:', fmsFolderID);
85
93
  let insertResponse = await ((_this$docManager = this.docManager) === null || _this$docManager === void 0 ? void 0 : _this$docManager.insertDocument(fmsFolderID, desc, dspID,
86
94
  // jobID,
87
95
  // objRef,
88
- base64, fileName, fileType, data, filePath, priority));
96
+ base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority));
89
97
  return insertResponse;
90
98
  }
91
99
  }
@@ -102,6 +110,16 @@ export default class DocumentSyncManager {
102
110
  Logger.getInstance().logEvent('updateDocument', err.message, LOG_TYPE.SDK_WARNING);
103
111
  }
104
112
  }
113
+
114
+ // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.
115
+ async updateDocumentProcessedPath(documentRow, origialFilePath, processedPath) {
116
+ if (!this.docManager) this.docManager = await DocumentManager.getInstance();
117
+ try {
118
+ await this.docManager.updateProcesedFilePath(documentRow.id, origialFilePath, processedPath);
119
+ } catch (err) {
120
+ Logger.getInstance().logEvent('updateDocument', err.message, LOG_TYPE.SDK_WARNING);
121
+ }
122
+ }
105
123
  async updateDocError(documentRow, uploadError) {
106
124
  if (!this.docManager) this.docManager = await DocumentManager.getInstance();
107
125
  try {
@@ -115,21 +133,203 @@ export default class DocumentSyncManager {
115
133
  throw new BaseError(BaseErrorCodes.SyncManagerNotInitialized, SyncManagerNotInitialized);
116
134
  }
117
135
  }
136
+
137
+ // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.
138
+ async processImageData(documentRow) {
139
+ // If processed_file_path of overlayed image already existing then do not generate it again.
140
+ if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
141
+ let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
142
+ let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
143
+ let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
144
+ let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
145
+ let lat = objGeoStamp.lat; // Latitide
146
+ let lng = objGeoStamp.lng; // Longitude
147
+ let accuracy = objGeoStamp.accuracy; // Location accuracy
148
+ let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
149
+ let strDMSWithAccuracy = strDMS;
150
+ if (accuracy !== '') {
151
+ strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
152
+ }
153
+
154
+ let fontSize = 14;
155
+ let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size
156
+ let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio
157
+ let nFileSize = Number(fileSize);
158
+ let ncRatio = Number(cRatio);
159
+ let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made
160
+ if (Platform.OS !== 'android') {
161
+ fontSize = 28;
162
+ }
163
+ if (wholeRatio >= 75) {
164
+ wholeRatio = 25;
165
+ }
166
+ const options = {
167
+ backgroundImage: {
168
+ // Image for overlay
169
+ src: documentRow.file_path,
170
+ scale: 1
171
+ },
172
+ watermarkTexts: [{
173
+ text: `${dateTime}\n${strDMSWithAccuracy}`,
174
+ //Overlay text
175
+ position: {
176
+ position: Position.topLeft // Overlay text position
177
+ },
178
+
179
+ style: {
180
+ // Style for overlay
181
+ color: '#ffffff',
182
+ fontSize: fontSize,
183
+ fontName: 'Arial',
184
+ textBackgroundStyle: {
185
+ padding: '1% 1%',
186
+ type: TextBackgroundType.none,
187
+ color: '#444444CC'
188
+ }
189
+ }
190
+ }],
191
+ scale: 1,
192
+ quality: 100 - wholeRatio,
193
+ // Compressio ratio in which file will generate
194
+ maxSize: nFileSize,
195
+ // Max file size in which file will generate
196
+ filename: pFilePath,
197
+ saveFormat: ImageFormat.jpg // Saving in jpeg format
198
+ };
199
+
200
+ let processedFilePath = await Marker.markText(options); // Generating overlay image
201
+ if (processedFilePath !== null && processedFilePath !== '') {
202
+ let completeFilePath = processedFilePath;
203
+ // If processd image file path does not have prefix file:// then we are addding manually
204
+ if (!processedFilePath.includes('file')) {
205
+ completeFilePath = 'file://' + processedFilePath;
206
+ }
207
+ // Updating document document table with overlayed image path
208
+ this.updateDocumentProcessedPath(documentRow, documentRow.file_path,
209
+ //original file path catprued from camera
210
+ completeFilePath // completeFilePath is the path with file:// of processed file
211
+ );
212
+
213
+ documentRow.processed_file_path = completeFilePath;
214
+ }
215
+ }
216
+ return documentRow;
217
+ }
218
+
219
+ // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.
220
+ async processBase64Data(documentRow) {
221
+ // If base64 overlayed data already existing then do not generate it again.
222
+ if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
223
+ let filePath = '';
224
+ // If templrary base 64 file already exist then do not create again
225
+ if (documentRow.file_path === null || documentRow.file_path === '') {
226
+ const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;
227
+ await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location
228
+ filePath = imagePath;
229
+ // If file generated frommbase64 data does not have file:// then we are adding manually.
230
+ if (!imagePath.includes('file')) {
231
+ filePath = `file://${imagePath}`;
232
+ }
233
+ documentRow.file_path = filePath;
234
+ } else {
235
+ filePath = documentRow.file_path;
236
+ }
237
+ let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
238
+ let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
239
+ let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
240
+ let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
241
+ let lat = objGeoStamp.lat; // Latitide
242
+ let lng = objGeoStamp.lng; // Longitude
243
+ let accuracy = objGeoStamp.accuracy; // Location accuracy
244
+ let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
245
+ let strDMSWithAccuracy = strDMS;
246
+ if (accuracy !== '') {
247
+ strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
248
+ }
249
+
250
+ const options = {
251
+ backgroundImage: {
252
+ src: filePath,
253
+ // Image for overlay
254
+ scale: 1
255
+ },
256
+ watermarkTexts: [{
257
+ text: `${dateTime}\n${strDMSWithAccuracy}`,
258
+ // Ooverlay text
259
+ position: {
260
+ position: Position.topLeft // Overlay text position
261
+ },
262
+
263
+ style: {
264
+ // Style for overlay
265
+ color: '#ffffff',
266
+ fontSize: 14,
267
+ fontName: 'Arial',
268
+ textBackgroundStyle: {
269
+ padding: '1% 1%',
270
+ type: TextBackgroundType.none,
271
+ color: '#444444CC'
272
+ }
273
+ }
274
+ }],
275
+ scale: 1,
276
+ quality: 100,
277
+ filename: pFilePath,
278
+ saveFormat: ImageFormat.base64 // Saving in base6 format
279
+ };
280
+
281
+ let processedBase64 = await Marker.markText(options); // Generating overlay image
282
+ if (processedBase64 !== null && processedBase64 !== '') {
283
+ // Fetching base64 data from processed data.
284
+ var splittedDase64Data = processedBase64.split('data:image/png;base64,');
285
+ // Updating document document table with overlayed base64 data
286
+ await this.updateDocumentProcessedPath(documentRow, filePath, splittedDase64Data[1]);
287
+ documentRow.processed_file_path = splittedDase64Data[1];
288
+ }
289
+ }
290
+ return documentRow;
291
+ }
292
+
293
+ // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).
294
+ async processPODData(documentRow) {
295
+ if (documentRow.base64 && documentRow.data != null) {
296
+ return await this.processBase64Data(documentRow);
297
+ } else {
298
+ return await this.processImageData(documentRow);
299
+ }
300
+ }
118
301
  async uploadDocToServer(documentRow) {
119
302
  try {
120
303
  var _this$documentHttpCli;
304
+ let docRow = await this.processPODData(documentRow);
305
+ console.log('uploadDocToServer999:', docRow);
121
306
  let fmsID = await ((_this$documentHttpCli = this.documentHttpClient) === null || _this$documentHttpCli === void 0 ? void 0 : _this$documentHttpCli.uploadDocument(documentRow));
307
+ let extraParameters = {
308
+ fmsID: fmsID ?? '',
309
+ fileName: docRow.file_name,
310
+ folderName: docRow.fms_folder_id
311
+ };
122
312
  // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202
123
313
  if (fmsID) {
124
314
  this._retries = 0;
125
- await this.updateDocument(documentRow, fmsID);
315
+ await this.updateDocument(docRow, fmsID);
126
316
  } else {
127
317
  this._retries++;
128
- Logger.getInstance().logEvent('uploadDocToServer-sync-error', 'Unexpected Error', LOG_TYPE.SDK_ERROR);
129
- await this.updateDocError(documentRow, 'Unexpected Error');
318
+ Logger.getInstance().logEvent('uploadDocToServer-empty-fms-id', flattenObject(extraParameters), LOG_TYPE.SDK_ERROR);
319
+ await this.updateDocError(docRow, 'Unexpected Error');
130
320
  }
131
321
  } catch (error) {
132
322
  var _error$response, _error$response2;
323
+ const cta = 'uploadDocToServer-error';
324
+ fireEventWithScreenName({
325
+ severityLevel: SeverityLevelValue.ERROR,
326
+ eventName: SentryEventNameSdkConstants.API_ERROR,
327
+ screenName: cta,
328
+ cta: cta,
329
+ extraParams: {
330
+ error: error.message
331
+ }
332
+ });
133
333
  this._retries++;
134
334
  Logger.getInstance().logEvent('uploadDocToServer-sync-error', error.message, LOG_TYPE.SDK_ERROR);
135
335
  await this.updateDocError(documentRow, JSON.stringify({