@finspringinnovations/fixeddepositsdk 1.0.0

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 (311) hide show
  1. package/README.md +128 -0
  2. package/lib/api/applicationApi.d.ts +1 -0
  3. package/lib/api/applicationApi.js +11 -0
  4. package/lib/api/bankApi.d.ts +352 -0
  5. package/lib/api/bankApi.js +54 -0
  6. package/lib/api/baseApi.d.ts +6 -0
  7. package/lib/api/baseApi.js +406 -0
  8. package/lib/api/customerApi.d.ts +855 -0
  9. package/lib/api/customerApi.js +241 -0
  10. package/lib/api/fdApi.d.ts +979 -0
  11. package/lib/api/fdApi.js +112 -0
  12. package/lib/api/fdCalculatorApi.d.ts +179 -0
  13. package/lib/api/fdCalculatorApi.js +36 -0
  14. package/lib/api/index.d.ts +14 -0
  15. package/lib/api/index.js +45 -0
  16. package/lib/api/interestRateApi.d.ts +585 -0
  17. package/lib/api/interestRateApi.js +101 -0
  18. package/lib/api/kycApi.d.ts +486 -0
  19. package/lib/api/kycApi.js +71 -0
  20. package/lib/api/masterDataApi.d.ts +158 -0
  21. package/lib/api/masterDataApi.js +35 -0
  22. package/lib/api/nomineeApi.d.ts +325 -0
  23. package/lib/api/nomineeApi.js +46 -0
  24. package/lib/api/onboardingApi.d.ts +192 -0
  25. package/lib/api/onboardingApi.js +41 -0
  26. package/lib/api/panApi.d.ts +0 -0
  27. package/lib/api/panApi.js +23 -0
  28. package/lib/api/paymentApi.d.ts +325 -0
  29. package/lib/api/paymentApi.js +46 -0
  30. package/lib/api/workflowApi.d.ts +654 -0
  31. package/lib/api/workflowApi.js +90 -0
  32. package/lib/assets/images/images.d.ts +6 -0
  33. package/lib/assets/images/images.js +12 -0
  34. package/lib/components/AadhaarInput.d.ts +13 -0
  35. package/lib/components/AadhaarInput.js +47 -0
  36. package/lib/components/ActionButton.d.ts +12 -0
  37. package/lib/components/ActionButton.js +87 -0
  38. package/lib/components/ActiveFDCard.d.ts +18 -0
  39. package/lib/components/ActiveFDCard.js +116 -0
  40. package/lib/components/AmountInput.d.ts +20 -0
  41. package/lib/components/AmountInput.js +142 -0
  42. package/lib/components/CheckboxOption.d.ts +11 -0
  43. package/lib/components/CheckboxOption.js +41 -0
  44. package/lib/components/CompanyHeader.d.ts +7 -0
  45. package/lib/components/CompanyHeader.js +59 -0
  46. package/lib/components/DropdownSelector.d.ts +9 -0
  47. package/lib/components/DropdownSelector.js +49 -0
  48. package/lib/components/EmptyState.d.ts +17 -0
  49. package/lib/components/EmptyState.js +44 -0
  50. package/lib/components/ErrorDisplay.d.ts +17 -0
  51. package/lib/components/ErrorDisplay.js +69 -0
  52. package/lib/components/FAQItem.d.ts +9 -0
  53. package/lib/components/FAQItem.js +52 -0
  54. package/lib/components/FDCard.d.ts +23 -0
  55. package/lib/components/FDCard.js +116 -0
  56. package/lib/components/FormDropdown.d.ts +18 -0
  57. package/lib/components/FormDropdown.js +155 -0
  58. package/lib/components/FormSection.d.ts +14 -0
  59. package/lib/components/FormSection.js +38 -0
  60. package/lib/components/Header.d.ts +14 -0
  61. package/lib/components/Header.js +52 -0
  62. package/lib/components/IFSCSearchResultCard.d.ts +13 -0
  63. package/lib/components/IFSCSearchResultCard.js +70 -0
  64. package/lib/components/InfoBox.d.ts +8 -0
  65. package/lib/components/InfoBox.js +39 -0
  66. package/lib/components/InterestRateCard.d.ts +8 -0
  67. package/lib/components/InterestRateCard.js +46 -0
  68. package/lib/components/LoadingIndicator.d.ts +12 -0
  69. package/lib/components/LoadingIndicator.js +30 -0
  70. package/lib/components/OTPInput.d.ts +17 -0
  71. package/lib/components/OTPInput.js +144 -0
  72. package/lib/components/PaymentDetailsCard.d.ts +20 -0
  73. package/lib/components/PaymentDetailsCard.js +68 -0
  74. package/lib/components/PendingFDBottomSheet.d.ts +19 -0
  75. package/lib/components/PendingFDBottomSheet.js +122 -0
  76. package/lib/components/SafeAreaWrapper.d.ts +13 -0
  77. package/lib/components/SafeAreaWrapper.js +41 -0
  78. package/lib/components/ScreenHeader.d.ts +11 -0
  79. package/lib/components/ScreenHeader.js +46 -0
  80. package/lib/components/StatusDisplay.d.ts +15 -0
  81. package/lib/components/StatusDisplay.js +88 -0
  82. package/lib/components/TextFieldWithLabel.d.ts +46 -0
  83. package/lib/components/TextFieldWithLabel.js +326 -0
  84. package/lib/components/TrustBox.d.ts +8 -0
  85. package/lib/components/TrustBox.js +46 -0
  86. package/lib/components/ValidationErrorAlert.d.ts +23 -0
  87. package/lib/components/ValidationErrorAlert.js +39 -0
  88. package/lib/components/ValidationMessage.d.ts +9 -0
  89. package/lib/components/ValidationMessage.js +98 -0
  90. package/lib/components/index.d.ts +35 -0
  91. package/lib/components/index.js +64 -0
  92. package/lib/config/apiConfig.d.ts +34 -0
  93. package/lib/config/apiConfig.js +158 -0
  94. package/lib/config/appDataConfig.d.ts +159 -0
  95. package/lib/config/appDataConfig.js +310 -0
  96. package/lib/config/encryptionConfig.d.ts +21 -0
  97. package/lib/config/encryptionConfig.js +61 -0
  98. package/lib/config/workflowConstants.d.ts +62 -0
  99. package/lib/config/workflowConstants.js +63 -0
  100. package/lib/constants/strings/bank.d.ts +72 -0
  101. package/lib/constants/strings/bank.js +86 -0
  102. package/lib/constants/strings/base64Images.d.ts +26 -0
  103. package/lib/constants/strings/base64Images.js +29 -0
  104. package/lib/constants/strings/common.d.ts +53 -0
  105. package/lib/constants/strings/common.js +62 -0
  106. package/lib/constants/strings/employee.d.ts +61 -0
  107. package/lib/constants/strings/employee.js +77 -0
  108. package/lib/constants/strings/faq.d.ts +14 -0
  109. package/lib/constants/strings/faq.js +20 -0
  110. package/lib/constants/strings/fd.d.ts +122 -0
  111. package/lib/constants/strings/fd.js +151 -0
  112. package/lib/constants/strings/home.d.ts +49 -0
  113. package/lib/constants/strings/home.js +62 -0
  114. package/lib/constants/strings/index.d.ts +16 -0
  115. package/lib/constants/strings/index.js +44 -0
  116. package/lib/constants/strings/kyc.d.ts +80 -0
  117. package/lib/constants/strings/kyc.js +94 -0
  118. package/lib/constants/strings/nominee.d.ts +64 -0
  119. package/lib/constants/strings/nominee.js +81 -0
  120. package/lib/hooks/useAuth.d.ts +25 -0
  121. package/lib/hooks/useAuth.js +39 -0
  122. package/lib/hooks/useFDData.d.ts +11 -0
  123. package/lib/hooks/useFDData.js +40 -0
  124. package/lib/index.d.ts +48 -0
  125. package/lib/index.js +161 -0
  126. package/lib/navigation/RootNavigator.d.ts +9 -0
  127. package/lib/navigation/RootNavigator.js +459 -0
  128. package/lib/navigation/SimpleNavigator.d.ts +11 -0
  129. package/lib/navigation/SimpleNavigator.js +114 -0
  130. package/lib/navigation/helpers.d.ts +11 -0
  131. package/lib/navigation/helpers.js +83 -0
  132. package/lib/navigation/index.d.ts +17 -0
  133. package/lib/navigation/index.js +42 -0
  134. package/lib/navigation/types.d.ts +139 -0
  135. package/lib/navigation/types.js +2 -0
  136. package/lib/navigation/workflowNavigator.d.ts +22 -0
  137. package/lib/navigation/workflowNavigator.js +104 -0
  138. package/lib/providers/ApiProvider.d.ts +7 -0
  139. package/lib/providers/ApiProvider.js +16 -0
  140. package/lib/providers/MasterDataProvider.d.ts +10 -0
  141. package/lib/providers/MasterDataProvider.js +54 -0
  142. package/lib/screens/AadhaarVerification.d.ts +7 -0
  143. package/lib/screens/AadhaarVerification.js +627 -0
  144. package/lib/screens/AddBankAccount.d.ts +22 -0
  145. package/lib/screens/AddBankAccount.js +381 -0
  146. package/lib/screens/BankDetail.d.ts +16 -0
  147. package/lib/screens/BankDetail.js +596 -0
  148. package/lib/screens/Employee.d.ts +18 -0
  149. package/lib/screens/Employee.js +594 -0
  150. package/lib/screens/FDCalculator.d.ts +18 -0
  151. package/lib/screens/FDCalculator.js +767 -0
  152. package/lib/screens/FDList.d.ts +28 -0
  153. package/lib/screens/FDList.js +1853 -0
  154. package/lib/screens/FindIFSC.d.ts +16 -0
  155. package/lib/screens/FindIFSC.js +248 -0
  156. package/lib/screens/NomineeDetail.d.ts +17 -0
  157. package/lib/screens/NomineeDetail.js +592 -0
  158. package/lib/screens/PayNow.d.ts +14 -0
  159. package/lib/screens/PayNow.js +230 -0
  160. package/lib/screens/Payment.d.ts +11 -0
  161. package/lib/screens/Payment.js +191 -0
  162. package/lib/screens/PaymentStatus.d.ts +16 -0
  163. package/lib/screens/PaymentStatus.js +431 -0
  164. package/lib/screens/ReviewKYC.d.ts +23 -0
  165. package/lib/screens/ReviewKYC.js +727 -0
  166. package/lib/state/paymentSession.d.ts +8 -0
  167. package/lib/state/paymentSession.js +13 -0
  168. package/lib/store/fdListSelectedSlice.d.ts +21 -0
  169. package/lib/store/fdListSelectedSlice.js +26 -0
  170. package/lib/store/hooks.d.ts +8 -0
  171. package/lib/store/hooks.js +8 -0
  172. package/lib/store/index.d.ts +3 -0
  173. package/lib/store/index.js +8 -0
  174. package/lib/store/onboardingSlice.d.ts +12 -0
  175. package/lib/store/onboardingSlice.js +32 -0
  176. package/lib/store/store.d.ts +13 -0
  177. package/lib/store/store.js +27 -0
  178. package/lib/theme/ThemeContext.d.ts +210 -0
  179. package/lib/theme/ThemeContext.js +92 -0
  180. package/lib/theme/colors.d.ts +80 -0
  181. package/lib/theme/colors.js +85 -0
  182. package/lib/theme/index.d.ts +35 -0
  183. package/lib/theme/index.js +78 -0
  184. package/lib/theme/shadows.d.ts +53 -0
  185. package/lib/theme/shadows.js +58 -0
  186. package/lib/theme/typography.d.ts +134 -0
  187. package/lib/theme/typography.js +143 -0
  188. package/lib/types/dataTypes.d.ts +34 -0
  189. package/lib/types/dataTypes.js +2 -0
  190. package/lib/types/workflowTypes.d.ts +2 -0
  191. package/lib/types/workflowTypes.js +2 -0
  192. package/lib/utils/apiLogger.d.ts +48 -0
  193. package/lib/utils/apiLogger.js +105 -0
  194. package/lib/utils/encryption.d.ts +28 -0
  195. package/lib/utils/encryption.js +113 -0
  196. package/lib/utils/getFDData.d.ts +48 -0
  197. package/lib/utils/getFDData.js +145 -0
  198. package/lib/utils/globalData.d.ts +2 -0
  199. package/lib/utils/globalData.js +10 -0
  200. package/package.json +51 -0
  201. package/src/api/applicationApi.ts +12 -0
  202. package/src/api/bankApi.ts +42 -0
  203. package/src/api/baseApi.ts +463 -0
  204. package/src/api/customerApi.ts +324 -0
  205. package/src/api/fdApi.ts +150 -0
  206. package/src/api/fdCalculatorApi.ts +41 -0
  207. package/src/api/index.ts +29 -0
  208. package/src/api/interestRateApi.ts +143 -0
  209. package/src/api/kycApi.ts +63 -0
  210. package/src/api/masterDataApi.ts +37 -0
  211. package/src/api/nomineeApi.ts +34 -0
  212. package/src/api/onboardingApi.ts +64 -0
  213. package/src/api/panApi.ts +25 -0
  214. package/src/api/paymentApi.ts +34 -0
  215. package/src/api/workflowApi.ts +94 -0
  216. package/src/assets/images/Mahindra.png +0 -0
  217. package/src/assets/images/arrow-filled.png +0 -0
  218. package/src/assets/images/arrow-left.png +0 -0
  219. package/src/assets/images/backicon.png +0 -0
  220. package/src/assets/images/calendar.png +0 -0
  221. package/src/assets/images/chevron-down.png +0 -0
  222. package/src/assets/images/chevron-down@2x.png +0 -0
  223. package/src/assets/images/chevron-down@3x.png +0 -0
  224. package/src/assets/images/images.js +10 -0
  225. package/src/assets/images/shriram_logo.png +0 -0
  226. package/src/components/AadhaarInput.tsx +91 -0
  227. package/src/components/ActionButton.tsx +129 -0
  228. package/src/components/ActiveFDCard.tsx +188 -0
  229. package/src/components/AmountInput.tsx +217 -0
  230. package/src/components/CheckboxOption.tsx +93 -0
  231. package/src/components/CompanyHeader.tsx +80 -0
  232. package/src/components/DropdownSelector.tsx +77 -0
  233. package/src/components/EmptyState.tsx +109 -0
  234. package/src/components/ErrorDisplay.tsx +135 -0
  235. package/src/components/FAQItem.tsx +90 -0
  236. package/src/components/FDCard.tsx +186 -0
  237. package/src/components/FormDropdown.tsx +214 -0
  238. package/src/components/FormSection.tsx +86 -0
  239. package/src/components/Header.tsx +110 -0
  240. package/src/components/IFSCSearchResultCard.tsx +139 -0
  241. package/src/components/InfoBox.tsx +55 -0
  242. package/src/components/InterestRateCard.tsx +77 -0
  243. package/src/components/LoadingIndicator.tsx +63 -0
  244. package/src/components/OTPInput.tsx +213 -0
  245. package/src/components/PaymentDetailsCard.tsx +120 -0
  246. package/src/components/PendingFDBottomSheet.tsx +237 -0
  247. package/src/components/README.md +210 -0
  248. package/src/components/SafeAreaWrapper.tsx +68 -0
  249. package/src/components/ScreenHeader.tsx +83 -0
  250. package/src/components/StatusDisplay.tsx +139 -0
  251. package/src/components/TextFieldWithLabel.tsx +502 -0
  252. package/src/components/TrustBox.tsx +63 -0
  253. package/src/components/ValidationErrorAlert.tsx +57 -0
  254. package/src/components/ValidationMessage.tsx +134 -0
  255. package/src/components/index.tsx +47 -0
  256. package/src/config/apiConfig.ts +217 -0
  257. package/src/config/appDataConfig.ts +358 -0
  258. package/src/config/encryptionConfig.ts +65 -0
  259. package/src/config/workflowConstants.ts +70 -0
  260. package/src/constants/strings/README.md +146 -0
  261. package/src/constants/strings/bank.ts +92 -0
  262. package/src/constants/strings/base64Images.ts +31 -0
  263. package/src/constants/strings/common.ts +63 -0
  264. package/src/constants/strings/employee.ts +85 -0
  265. package/src/constants/strings/faq.ts +23 -0
  266. package/src/constants/strings/fd.ts +172 -0
  267. package/src/constants/strings/home.ts +67 -0
  268. package/src/constants/strings/index.ts +21 -0
  269. package/src/constants/strings/kyc.ts +100 -0
  270. package/src/constants/strings/nominee.ts +90 -0
  271. package/src/hooks/useAuth.ts +42 -0
  272. package/src/hooks/useFDData.ts +48 -0
  273. package/src/index.tsx +139 -0
  274. package/src/navigation/RootNavigator.tsx +687 -0
  275. package/src/navigation/SimpleNavigator.tsx +123 -0
  276. package/src/navigation/helpers.ts +85 -0
  277. package/src/navigation/index.tsx +84 -0
  278. package/src/navigation/types.ts +146 -0
  279. package/src/navigation/workflowNavigator.ts +131 -0
  280. package/src/providers/ApiProvider.tsx +23 -0
  281. package/src/providers/MasterDataProvider.tsx +30 -0
  282. package/src/screens/AadhaarVerification.tsx +809 -0
  283. package/src/screens/AddBankAccount.tsx +541 -0
  284. package/src/screens/BankDetail.tsx +826 -0
  285. package/src/screens/Employee.tsx +822 -0
  286. package/src/screens/FDCalculator.tsx +1002 -0
  287. package/src/screens/FDList.tsx +2199 -0
  288. package/src/screens/FindIFSC.tsx +332 -0
  289. package/src/screens/NomineeDetail.tsx +800 -0
  290. package/src/screens/PayNow.tsx +282 -0
  291. package/src/screens/Payment.tsx +224 -0
  292. package/src/screens/PaymentStatus.tsx +595 -0
  293. package/src/screens/ReviewKYC.tsx +1062 -0
  294. package/src/state/paymentSession.ts +13 -0
  295. package/src/store/fdListSelectedSlice.ts +42 -0
  296. package/src/store/hooks.ts +6 -0
  297. package/src/store/index.ts +3 -0
  298. package/src/store/onboardingSlice.ts +37 -0
  299. package/src/store/store.ts +27 -0
  300. package/src/theme/ThemeContext.tsx +84 -0
  301. package/src/theme/colors.ts +90 -0
  302. package/src/theme/index.ts +85 -0
  303. package/src/theme/shadows.ts +61 -0
  304. package/src/theme/typography.ts +151 -0
  305. package/src/types/dataTypes.ts +37 -0
  306. package/src/types/env.d.ts +93 -0
  307. package/src/types/workflowTypes.ts +12 -0
  308. package/src/utils/apiLogger.ts +166 -0
  309. package/src/utils/encryption.ts +159 -0
  310. package/src/utils/getFDData.ts +165 -0
  311. package/src/utils/globalData.ts +7 -0
package/lib/index.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.ApiLogger = exports.apiLogger = exports.getWorkflowTaskName = exports.getWorkflowStateName = exports.WORKFLOW_CONSTANTS = exports.WORKFLOW_TASKS = exports.WORKFLOW_STATES = exports.validateAndProceed = exports.showValidationErrorAlert = exports.clearSDKColors = exports.getSDKColors = exports.setSDKColors = exports.clearAllData = exports.clearEnvironmentData = exports.isEnvironmentInitialized = exports.getEnvironmentData = exports.initializeEnvironment = exports.clearAppData = exports.validateAppData = exports.getUserDemographics = exports.getUserInfoForAPI = exports.isSDKInitialized = exports.getAppData = exports.initializeSDK = exports.logEnvironmentInfo = exports.debugApiCall = exports.debugApiConfig = exports.validateEncryptionConfig = exports.getEncryptionEnvironmentConfig = exports.getEncryptionConfigs = exports.getEncryptionConfig = exports.useAppSelector = exports.useAppDispatch = exports.store = exports.useAuth = exports.useFDData = exports.useMasterData = exports.MasterDataProvider = exports.ApiProvider = exports.useSpacing = exports.useShadows = exports.useTypography = exports.useColors = exports.useTheme = exports.ThemeProvider = exports.FDSDKNavigator = exports.SimpleNavigator = exports.SDKNavigationContainer = exports.PendingFDBottomSheet = exports.FDList = void 0;
43
+ exports.FDSDK = exports.getFDData = exports.getCurrentApiConfig = exports.isEncryptionEnabled = exports.toggleEncryption = void 0;
44
+ // React Native crypto polyfill - MUST be imported first
45
+ require("react-native-get-random-values");
46
+ // Main SDK UI exports (trimmed to FDList “home”)
47
+ const FDList_1 = __importDefault(require("./screens/FDList"));
48
+ const PendingFDBottomSheet_1 = __importDefault(require("./components/PendingFDBottomSheet"));
49
+ exports.FDList = FDList_1.default;
50
+ exports.PendingFDBottomSheet = PendingFDBottomSheet_1.default;
51
+ // Export navigation - Direct imports to ensure they work
52
+ const navigation_1 = require("./navigation");
53
+ Object.defineProperty(exports, "SDKNavigationContainer", { enumerable: true, get: function () { return navigation_1.SDKNavigationContainer; } });
54
+ Object.defineProperty(exports, "FDSDKNavigator", { enumerable: true, get: function () { return navigation_1.SDKNavigationContainer; } });
55
+ Object.defineProperty(exports, "SimpleNavigator", { enumerable: true, get: function () { return navigation_1.SimpleNavigator; } });
56
+ // Export theme system
57
+ __exportStar(require("./theme"), exports);
58
+ var ThemeContext_1 = require("./theme/ThemeContext");
59
+ Object.defineProperty(exports, "ThemeProvider", { enumerable: true, get: function () { return ThemeContext_1.ThemeProvider; } });
60
+ Object.defineProperty(exports, "useTheme", { enumerable: true, get: function () { return ThemeContext_1.useTheme; } });
61
+ Object.defineProperty(exports, "useColors", { enumerable: true, get: function () { return ThemeContext_1.useColors; } });
62
+ Object.defineProperty(exports, "useTypography", { enumerable: true, get: function () { return ThemeContext_1.useTypography; } });
63
+ Object.defineProperty(exports, "useShadows", { enumerable: true, get: function () { return ThemeContext_1.useShadows; } });
64
+ Object.defineProperty(exports, "useSpacing", { enumerable: true, get: function () { return ThemeContext_1.useSpacing; } });
65
+ // Export API system
66
+ __exportStar(require("./api"), exports);
67
+ var ApiProvider_1 = require("./providers/ApiProvider");
68
+ Object.defineProperty(exports, "ApiProvider", { enumerable: true, get: function () { return ApiProvider_1.ApiProvider; } });
69
+ var MasterDataProvider_1 = require("./providers/MasterDataProvider");
70
+ Object.defineProperty(exports, "MasterDataProvider", { enumerable: true, get: function () { return MasterDataProvider_1.MasterDataProvider; } });
71
+ Object.defineProperty(exports, "useMasterData", { enumerable: true, get: function () { return MasterDataProvider_1.useMasterData; } });
72
+ var useFDData_1 = require("./hooks/useFDData");
73
+ Object.defineProperty(exports, "useFDData", { enumerable: true, get: function () { return useFDData_1.useFDData; } });
74
+ var useAuth_1 = require("./hooks/useAuth");
75
+ Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return useAuth_1.useAuth; } });
76
+ var store_1 = require("./store");
77
+ Object.defineProperty(exports, "store", { enumerable: true, get: function () { return store_1.store; } });
78
+ Object.defineProperty(exports, "useAppDispatch", { enumerable: true, get: function () { return store_1.useAppDispatch; } });
79
+ Object.defineProperty(exports, "useAppSelector", { enumerable: true, get: function () { return store_1.useAppSelector; } });
80
+ // Export encryption utilities
81
+ __exportStar(require("./utils/encryption"), exports);
82
+ var encryptionConfig_1 = require("./config/encryptionConfig");
83
+ Object.defineProperty(exports, "getEncryptionConfig", { enumerable: true, get: function () { return encryptionConfig_1.getEncryptionConfig; } });
84
+ Object.defineProperty(exports, "getEncryptionConfigs", { enumerable: true, get: function () { return encryptionConfig_1.getEncryptionConfigs; } });
85
+ Object.defineProperty(exports, "getEncryptionEnvironmentConfig", { enumerable: true, get: function () { return encryptionConfig_1.getEnvironmentConfig; } });
86
+ Object.defineProperty(exports, "validateEncryptionConfig", { enumerable: true, get: function () { return encryptionConfig_1.validateEncryptionConfig; } });
87
+ // Export configuration utilities
88
+ __exportStar(require("./config/apiConfig"), exports);
89
+ var apiConfig_1 = require("./config/apiConfig");
90
+ Object.defineProperty(exports, "debugApiConfig", { enumerable: true, get: function () { return apiConfig_1.debugApiConfig; } });
91
+ Object.defineProperty(exports, "debugApiCall", { enumerable: true, get: function () { return apiConfig_1.debugApiCall; } });
92
+ Object.defineProperty(exports, "logEnvironmentInfo", { enumerable: true, get: function () { return apiConfig_1.logEnvironmentInfo; } });
93
+ // Export app data configuration and theming helpers
94
+ var appDataConfig_1 = require("./config/appDataConfig");
95
+ Object.defineProperty(exports, "initializeSDK", { enumerable: true, get: function () { return appDataConfig_1.initializeSDK; } });
96
+ Object.defineProperty(exports, "getAppData", { enumerable: true, get: function () { return appDataConfig_1.getAppData; } });
97
+ Object.defineProperty(exports, "isSDKInitialized", { enumerable: true, get: function () { return appDataConfig_1.isSDKInitialized; } });
98
+ Object.defineProperty(exports, "getUserInfoForAPI", { enumerable: true, get: function () { return appDataConfig_1.getUserInfoForAPI; } });
99
+ Object.defineProperty(exports, "getUserDemographics", { enumerable: true, get: function () { return appDataConfig_1.getUserDemographics; } });
100
+ Object.defineProperty(exports, "validateAppData", { enumerable: true, get: function () { return appDataConfig_1.validateAppData; } });
101
+ Object.defineProperty(exports, "clearAppData", { enumerable: true, get: function () { return appDataConfig_1.clearAppData; } });
102
+ Object.defineProperty(exports, "initializeEnvironment", { enumerable: true, get: function () { return appDataConfig_1.initializeEnvironment; } });
103
+ Object.defineProperty(exports, "getEnvironmentData", { enumerable: true, get: function () { return appDataConfig_1.getEnvironmentData; } });
104
+ Object.defineProperty(exports, "isEnvironmentInitialized", { enumerable: true, get: function () { return appDataConfig_1.isEnvironmentInitialized; } });
105
+ Object.defineProperty(exports, "clearEnvironmentData", { enumerable: true, get: function () { return appDataConfig_1.clearEnvironmentData; } });
106
+ Object.defineProperty(exports, "clearAllData", { enumerable: true, get: function () { return appDataConfig_1.clearAllData; } });
107
+ Object.defineProperty(exports, "setSDKColors", { enumerable: true, get: function () { return appDataConfig_1.setSDKColors; } });
108
+ Object.defineProperty(exports, "getSDKColors", { enumerable: true, get: function () { return appDataConfig_1.getSDKColors; } });
109
+ Object.defineProperty(exports, "clearSDKColors", { enumerable: true, get: function () { return appDataConfig_1.clearSDKColors; } });
110
+ // Export validation utilities
111
+ var ValidationErrorAlert_1 = require("./components/ValidationErrorAlert");
112
+ Object.defineProperty(exports, "showValidationErrorAlert", { enumerable: true, get: function () { return ValidationErrorAlert_1.showValidationErrorAlert; } });
113
+ Object.defineProperty(exports, "validateAndProceed", { enumerable: true, get: function () { return ValidationErrorAlert_1.validateAndProceed; } });
114
+ // Export workflow constants
115
+ var workflowConstants_1 = require("./config/workflowConstants");
116
+ Object.defineProperty(exports, "WORKFLOW_STATES", { enumerable: true, get: function () { return workflowConstants_1.WORKFLOW_STATES; } });
117
+ Object.defineProperty(exports, "WORKFLOW_TASKS", { enumerable: true, get: function () { return workflowConstants_1.WORKFLOW_TASKS; } });
118
+ Object.defineProperty(exports, "WORKFLOW_CONSTANTS", { enumerable: true, get: function () { return workflowConstants_1.WORKFLOW_CONSTANTS; } });
119
+ Object.defineProperty(exports, "getWorkflowStateName", { enumerable: true, get: function () { return workflowConstants_1.getWorkflowStateName; } });
120
+ Object.defineProperty(exports, "getWorkflowTaskName", { enumerable: true, get: function () { return workflowConstants_1.getWorkflowTaskName; } });
121
+ // Export logging utilities
122
+ var apiLogger_1 = require("./utils/apiLogger");
123
+ Object.defineProperty(exports, "apiLogger", { enumerable: true, get: function () { return apiLogger_1.apiLogger; } });
124
+ Object.defineProperty(exports, "ApiLogger", { enumerable: true, get: function () { return apiLogger_1.ApiLogger; } });
125
+ // Export encryption control utilities
126
+ var baseApi_1 = require("./api/baseApi");
127
+ Object.defineProperty(exports, "toggleEncryption", { enumerable: true, get: function () { return baseApi_1.toggleEncryption; } });
128
+ Object.defineProperty(exports, "isEncryptionEnabled", { enumerable: true, get: function () { return baseApi_1.isEncryptionEnabled; } });
129
+ Object.defineProperty(exports, "getCurrentApiConfig", { enumerable: true, get: function () { return baseApi_1.getCurrentApiConfig; } });
130
+ // Export FD data retrieval utility
131
+ var getFDData_1 = require("./utils/getFDData");
132
+ Object.defineProperty(exports, "getFDData", { enumerable: true, get: function () { return getFDData_1.getFDData; } });
133
+ // SDK Main Class
134
+ class FDSDK {
135
+ constructor(config = {}) {
136
+ this.config = Object.assign({ apiBaseUrl: 'https://api.fd.com', environment: 'production', theme: 'primary' }, config);
137
+ // Log environment information when SDK instance is created
138
+ Promise.resolve().then(() => __importStar(require('./config/apiConfig'))).then(({ logEnvironmentInfo }) => {
139
+ logEnvironmentInfo();
140
+ });
141
+ }
142
+ getConfig() {
143
+ return this.config;
144
+ }
145
+ updateConfig(newConfig) {
146
+ this.config = Object.assign(Object.assign({}, this.config), newConfig);
147
+ }
148
+ // Utility methods
149
+ static getVersion() {
150
+ return '1.0.0';
151
+ }
152
+ static getPlatformInfo() {
153
+ return {
154
+ platform: 'react-native',
155
+ version: '1.0.0',
156
+ };
157
+ }
158
+ }
159
+ exports.FDSDK = FDSDK;
160
+ // Default export
161
+ exports.default = FDSDK;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { SDKNavigationConfig } from './types';
3
+ interface RootNavigatorProps {
4
+ config?: SDKNavigationConfig;
5
+ onExit?: (fdDetails?: any) => void;
6
+ onPanRequired?: () => void;
7
+ }
8
+ declare const RootNavigator: React.FC<RootNavigatorProps>;
9
+ export default RootNavigator;
@@ -0,0 +1,459 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const react_1 = __importStar(require("react"));
40
+ const stack_1 = require("@react-navigation/stack");
41
+ const react_native_1 = require("react-native");
42
+ const helpers_1 = require("./helpers");
43
+ // Import screens
44
+ const FDList_1 = __importDefault(require("../screens/FDList"));
45
+ const FDCalculator_1 = __importDefault(require("../screens/FDCalculator"));
46
+ const AadhaarVerification_1 = __importDefault(require("../screens/AadhaarVerification"));
47
+ const ReviewKYC_1 = __importDefault(require("../screens/ReviewKYC"));
48
+ const Employee_1 = __importDefault(require("../screens/Employee"));
49
+ const NomineeDetail_1 = __importDefault(require("../screens/NomineeDetail"));
50
+ const BankDetail_1 = __importDefault(require("../screens/BankDetail"));
51
+ const AddBankAccount_1 = __importDefault(require("../screens/AddBankAccount"));
52
+ const FindIFSC_1 = __importDefault(require("../screens/FindIFSC"));
53
+ const PayNow_1 = __importDefault(require("../screens/PayNow"));
54
+ const Payment_1 = __importDefault(require("../screens/Payment"));
55
+ const PaymentStatus_1 = __importDefault(require("../screens/PaymentStatus"));
56
+ // Import full SDK navigators and initialization functions
57
+ const shriramfdsdk_1 = require("@finspringinnovations/shriramfdsdk");
58
+ const mahindrafdsdk_1 = require("@finspringinnovations/mahindrafdsdk");
59
+ // Import NavigationContainer and tree wrappers
60
+ const native_1 = require("@react-navigation/native");
61
+ // Import navigation helpers
62
+ const helpers_2 = require("./helpers");
63
+ const paymentSession_1 = require("../state/paymentSession");
64
+ // Import data getters from fdsdk
65
+ const appDataConfig_1 = require("../config/appDataConfig");
66
+ const MasterDataProvider_1 = require("../providers/MasterDataProvider");
67
+ const ThemeContext_1 = require("../theme/ThemeContext");
68
+ const Stack = (0, stack_1.createStackNavigator)();
69
+ const MahindraRootNavigatorAny = mahindrafdsdk_1.RootNavigator;
70
+ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
71
+ // State to track external SDK navigation
72
+ const [externalSDK, setExternalSDK] = react_1.default.useState(null);
73
+ const [externalSDKFDData, setExternalSDKFDData] = react_1.default.useState(null);
74
+ // Get master data and theme from fdsdk – same theme (and themeName for dark/primary) is passed to Shriram and Mahindra
75
+ const { masterData } = (0, MasterDataProvider_1.useMasterData)();
76
+ const { theme: fdsdkTheme, themeName: fdsdkThemeName } = (0, ThemeContext_1.useTheme)();
77
+ // Handle Android hardware back button
78
+ (0, react_1.useEffect)(() => {
79
+ if (react_native_1.Platform.OS !== 'android')
80
+ return;
81
+ let lastBackPressTime = 0;
82
+ const onBackPress = () => {
83
+ var _a, _b, _c;
84
+ // Check if navigation is ready
85
+ if (!((_a = helpers_1.navigationRef.current) === null || _a === void 0 ? void 0 : _a.isReady())) {
86
+ return false;
87
+ }
88
+ const now = Date.now();
89
+ // Ignore synthetic back events triggered during forward navigation (debounce)
90
+ if (now - lastBackPressTime < 300) {
91
+ return false;
92
+ }
93
+ lastBackPressTime = now;
94
+ const currentRoute = (_c = (_b = helpers_1.navigationRef.current) === null || _b === void 0 ? void 0 : _b.getCurrentRoute()) === null || _c === void 0 ? void 0 : _c.name;
95
+ // Block back on Payment and PaymentStatus screens
96
+ if (currentRoute === "Payment" || currentRoute === "PaymentStatus") {
97
+ return true; // block hardware back
98
+ }
99
+ // FD Calculator should always redirect to FD List
100
+ if (currentRoute === "FDCalculator") {
101
+ helpers_1.navigationRef.current.navigate('FDList');
102
+ return true;
103
+ }
104
+ // Skip FDList - let screen-specific handler handle it
105
+ if (currentRoute === "FDList") {
106
+ return false; // Let screen-specific handler handle it
107
+ }
108
+ // Enable back navigation everywhere else - use the same goBack() helper that header back buttons use
109
+ (0, helpers_2.goBack)(); // This calls the same function as the header back button
110
+ return true;
111
+ };
112
+ const subscription = react_native_1.BackHandler.addEventListener("hardwareBackPress", onBackPress);
113
+ return () => {
114
+ subscription.remove();
115
+ };
116
+ }, []);
117
+ const { initialRouteName = 'FDList', customScreenOptions = {}, } = config;
118
+ const ensureExternalSdkInitialized = react_1.default.useCallback((sdkType) => {
119
+ const appData = (0, appDataConfig_1.getAppData)();
120
+ const storedEnv = (0, appDataConfig_1.getEnvironmentData)();
121
+ const envData = storedEnv;
122
+ if (!appData) {
123
+ react_native_1.Alert.alert('Error', 'FDSDK app data is missing. Please restart the flow.');
124
+ return false;
125
+ }
126
+ if (!envData) {
127
+ react_native_1.Alert.alert('Error', 'FDSDK environment data is missing. Please initialize environment from host app.');
128
+ return false;
129
+ }
130
+ try {
131
+ if (sdkType === 'shriram') {
132
+ (0, shriramfdsdk_1.initializeEnvironment)(envData);
133
+ (0, shriramfdsdk_1.initializeSDK)(appData);
134
+ }
135
+ else {
136
+ (0, mahindrafdsdk_1.initializeEnvironment)(envData);
137
+ (0, mahindrafdsdk_1.initializeSDK)(appData);
138
+ }
139
+ return true;
140
+ }
141
+ catch (error) {
142
+ react_native_1.Alert.alert('Error', `Failed to initialize ${sdkType === 'shriram' ? 'Shriram' : 'Mahindra'} SDK: ${(error === null || error === void 0 ? void 0 : error.message) || 'Unknown error'}`);
143
+ return false;
144
+ }
145
+ }, []);
146
+ // Default screen options
147
+ const defaultScreenOptions = Object.assign({ headerShown: false, cardStyle: { backgroundColor: '#f8f9fa' }, animationEnabled: true, gestureEnabled: true }, customScreenOptions);
148
+ return (react_1.default.createElement(Stack.Navigator, { initialRouteName: initialRouteName, screenOptions: defaultScreenOptions },
149
+ react_1.default.createElement(Stack.Screen, { name: "FDList", options: { title: 'Fixed Deposits' } }, (props) => (react_1.default.createElement(FDList_1.default, Object.assign({ onGoBack: () => {
150
+ onExit === null || onExit === void 0 ? void 0 : onExit();
151
+ }, onSelectFD: (fdId) => {
152
+ // FD selected
153
+ }, onNavigateToFDCalculator: (fdData) => {
154
+ (0, helpers_2.navigate)('FDCalculator', { fdData });
155
+ }, onNavigateToExternalSDK: (sdkType, fdData, context) => {
156
+ try {
157
+ // Get app data and environment data from fdsdk
158
+ const appData = (0, appDataConfig_1.getAppData)();
159
+ const envData = (0, appDataConfig_1.getEnvironmentData)();
160
+ // Validate that we have the required data
161
+ if (!appData) {
162
+ console.error('Cannot navigate to external SDK: App data not initialized');
163
+ react_native_1.Alert.alert('Error', 'App data not available. Please initialize the SDK first.');
164
+ return;
165
+ }
166
+ if (!envData) {
167
+ console.error('Cannot navigate to external SDK: Environment data not initialized');
168
+ react_native_1.Alert.alert('Error', 'Environment data not available. Please initialize the SDK first.');
169
+ return;
170
+ }
171
+ // Initialize the target SDK with all data
172
+ if (sdkType === 'shriram') {
173
+ try {
174
+ // Initialize Shriram SDK
175
+ (0, shriramfdsdk_1.initializeEnvironment)(envData);
176
+ (0, shriramfdsdk_1.initializeSDK)(appData);
177
+ // Navigate to external SDK
178
+ setExternalSDK('shriram');
179
+ setExternalSDKFDData(fdData);
180
+ (0, helpers_2.navigate)('ExternalSDK', {
181
+ sdkType: 'shriram',
182
+ fdData,
183
+ providerId: context === null || context === void 0 ? void 0 : context.providerId,
184
+ fdListSelectedData: context === null || context === void 0 ? void 0 : context.fdListSelectedData,
185
+ completeFDData: context === null || context === void 0 ? void 0 : context.completeFDData,
186
+ onboardingIds: context === null || context === void 0 ? void 0 : context.onboardingIds,
187
+ });
188
+ }
189
+ catch (error) {
190
+ console.error('Failed to initialize Shriram SDK:', error);
191
+ react_native_1.Alert.alert('Error', `Failed to initialize Shriram SDK: ${(error === null || error === void 0 ? void 0 : error.message) || 'Unknown error'}`);
192
+ }
193
+ }
194
+ else if (sdkType === 'mahindra') {
195
+ try {
196
+ // Initialize Mahindra SDK
197
+ (0, mahindrafdsdk_1.initializeEnvironment)(envData);
198
+ (0, mahindrafdsdk_1.initializeSDK)(appData);
199
+ // Navigate to external SDK
200
+ setExternalSDK('mahindra');
201
+ setExternalSDKFDData(fdData);
202
+ (0, helpers_2.navigate)('ExternalSDK', {
203
+ sdkType: 'mahindra',
204
+ fdData,
205
+ providerId: context === null || context === void 0 ? void 0 : context.providerId,
206
+ fdListSelectedData: context === null || context === void 0 ? void 0 : context.fdListSelectedData,
207
+ completeFDData: context === null || context === void 0 ? void 0 : context.completeFDData,
208
+ onboardingIds: context === null || context === void 0 ? void 0 : context.onboardingIds,
209
+ });
210
+ }
211
+ catch (error) {
212
+ console.error('Failed to initialize Mahindra SDK:', error);
213
+ react_native_1.Alert.alert('Error', `Failed to initialize Mahindra SDK: ${(error === null || error === void 0 ? void 0 : error.message) || 'Unknown error'}`);
214
+ }
215
+ }
216
+ else {
217
+ console.warn('Unknown SDK type:', sdkType);
218
+ }
219
+ }
220
+ catch (error) {
221
+ console.error('Error in onNavigateToExternalSDK:', error);
222
+ react_native_1.Alert.alert('Error', `Navigation error: ${(error === null || error === void 0 ? void 0 : error.message) || 'Unknown error'}`);
223
+ }
224
+ } }, props)))),
225
+ react_1.default.createElement(Stack.Screen, { name: "FDCalculator", options: { title: 'FD Calculator' } }, (props) => {
226
+ var _a;
227
+ return (react_1.default.createElement(FDCalculator_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onNavigateToReviewKYC: () => { var _a; return (0, helpers_2.navigate)('ReviewKYC', { fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }); }, fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }, props)));
228
+ }),
229
+ react_1.default.createElement(Stack.Screen, { name: "ExternalSDK", options: { title: 'External SDK', gestureEnabled: false } }, (props) => {
230
+ var _a, _b, _c, _d;
231
+ const { sdkType } = props.route.params || {};
232
+ const routeParams = props.route.params || {};
233
+ const externalMasterData = routeParams.masterData;
234
+ // #region agent log
235
+ fetch('http://127.0.0.1:7653/ingest/94b18a39-caf3-48fd-98f5-bf1838d9491a', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '04da7c' }, body: JSON.stringify({ sessionId: '04da7c', runId: 'pending-masterdata-trace', hypothesisId: 'H3', location: 'fdsdk/navigation/RootNavigator.tsx:295', message: 'ExternalSDK route handoff', data: { sdkType: sdkType || null, providerId: (routeParams === null || routeParams === void 0 ? void 0 : routeParams.providerId) || null, onboardingProviderId: ((_a = routeParams === null || routeParams === void 0 ? void 0 : routeParams.onboardingIds) === null || _a === void 0 ? void 0 : _a.providerId) || null, fdListSelectedProviderId: ((_b = routeParams === null || routeParams === void 0 ? void 0 : routeParams.fdListSelectedData) === null || _b === void 0 ? void 0 : _b.providerId) || null, hasMasterData: !!externalMasterData, masterDataHasDataKey: !!(externalMasterData === null || externalMasterData === void 0 ? void 0 : externalMasterData.data) }, timestamp: Date.now() }) }).catch(() => { });
236
+ // #endregion agent log
237
+ console.log('[RootNavigator][DEBUG][ExternalSDK] ENTRY', {
238
+ sdkType,
239
+ providerId: routeParams.providerId,
240
+ onboardingProviderId: (_c = routeParams.onboardingIds) === null || _c === void 0 ? void 0 : _c.providerId,
241
+ fdListSelectedProviderId: (_d = routeParams.fdListSelectedData) === null || _d === void 0 ? void 0 : _d.providerId,
242
+ hasMasterData: !!externalMasterData,
243
+ masterDataTopKeys: externalMasterData ? Object.keys(externalMasterData).slice(0, 20) : [],
244
+ nestedDataTopKeys: (externalMasterData === null || externalMasterData === void 0 ? void 0 : externalMasterData.data) ? Object.keys(externalMasterData.data).slice(0, 20) : [],
245
+ });
246
+ if (sdkType === 'shriram' || sdkType === 'mahindra') {
247
+ const ok = ensureExternalSdkInitialized(sdkType);
248
+ if (!ok)
249
+ return null;
250
+ }
251
+ // Component to set master data and initial FD context in external SDK
252
+ const ShriramSDKWithMasterData = ({ masterData }) => {
253
+ const { setMasterData } = (0, shriramfdsdk_1.useMasterData)();
254
+ const shriramDispatch = (0, shriramfdsdk_1.useAppDispatch)();
255
+ const routeParams = props.route.params || {};
256
+ // Set master data
257
+ react_1.default.useEffect(() => {
258
+ if (masterData) {
259
+ const dataToSet = masterData.data || masterData;
260
+ setMasterData(dataToSet);
261
+ }
262
+ }, [masterData, setMasterData]);
263
+ // Set FDListSelectedData using Shriram setter
264
+ react_1.default.useEffect(() => {
265
+ if (routeParams.fdListSelectedData) {
266
+ try {
267
+ shriramDispatch((0, shriramfdsdk_1.setFDListSelected)(routeParams.fdListSelectedData));
268
+ }
269
+ catch (e) {
270
+ console.log('[RootNavigator] Error setting Shriram FDListSelected:', e);
271
+ }
272
+ }
273
+ }, [routeParams.fdListSelectedData, shriramDispatch]);
274
+ // Set OnboardingIds using Shriram setter
275
+ react_1.default.useEffect(() => {
276
+ var _a;
277
+ if (routeParams.onboardingIds) {
278
+ try {
279
+ shriramDispatch((0, shriramfdsdk_1.setOnboardingIds)(Object.assign(Object.assign({}, routeParams.onboardingIds), { providerId: routeParams.providerId || ((_a = routeParams.onboardingIds) === null || _a === void 0 ? void 0 : _a.providerId) })));
280
+ }
281
+ catch (e) {
282
+ console.log('[RootNavigator] Error setting Shriram OnboardingIds:', e);
283
+ }
284
+ }
285
+ }, [routeParams.onboardingIds, shriramDispatch]);
286
+ // Set GlobalData using Shriram setter if present - only set completeFDData boolean
287
+ react_1.default.useEffect(() => {
288
+ if (routeParams.shriramSDKGlobalData) {
289
+ try {
290
+ const completeFDData = !!routeParams.shriramSDKGlobalData;
291
+ (0, shriramfdsdk_1.setGlobalData)({ completeFDData });
292
+ console.log('[RootNavigator] Set ShriramSDKGlobalData completeFDData:', completeFDData);
293
+ }
294
+ catch (e) {
295
+ console.log('[RootNavigator] Error setting Shriram GlobalData:', e);
296
+ }
297
+ }
298
+ }, [routeParams.shriramSDKGlobalData]);
299
+ return (react_1.default.createElement(shriramfdsdk_1.RootNavigator, { config: {
300
+ initialRouteName: routeParams.initialRouteName || 'FDCalculator',
301
+ initialPaymentStatusParams: routeParams.initialPaymentStatusParams,
302
+ initialFDContext: {
303
+ providerId: routeParams.providerId,
304
+ fdListSelectedData: routeParams.fdListSelectedData,
305
+ completeFDData: routeParams.completeFDData,
306
+ },
307
+ }, onExit: (fdDetails) => {
308
+ // When exiting external SDK, go back to FDList
309
+ setExternalSDK(null);
310
+ setExternalSDKFDData(null);
311
+ (0, helpers_2.navigate)('FDList');
312
+ if (fdDetails) {
313
+ onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
314
+ }
315
+ }, onPanRequired: () => {
316
+ // Exit full SDK flow back to host app and notify callback
317
+ setExternalSDK(null);
318
+ setExternalSDKFDData(null);
319
+ onPanRequired === null || onPanRequired === void 0 ? void 0 : onPanRequired();
320
+ onExit === null || onExit === void 0 ? void 0 : onExit();
321
+ } }));
322
+ };
323
+ const MahindraSDKWithMasterData = ({ masterData }) => {
324
+ const { setMasterData } = (0, mahindrafdsdk_1.useMasterData)();
325
+ const mahindraDispatch = (0, mahindrafdsdk_1.useAppDispatch)();
326
+ // Set master data
327
+ react_1.default.useEffect(() => {
328
+ if (masterData) {
329
+ const dataToSet = masterData.data || masterData;
330
+ setMasterData(dataToSet);
331
+ }
332
+ }, [masterData, setMasterData]);
333
+ // Set FDListSelectedData using Mahindra setter
334
+ react_1.default.useEffect(() => {
335
+ if (routeParams.fdListSelectedData) {
336
+ try {
337
+ mahindraDispatch((0, mahindrafdsdk_1.setFDListSelected)(routeParams.fdListSelectedData));
338
+ }
339
+ catch (e) {
340
+ console.log('[RootNavigator] Error setting Mahindra FDListSelected:', e);
341
+ }
342
+ }
343
+ }, [routeParams.fdListSelectedData, mahindraDispatch]);
344
+ // Set OnboardingIds using Mahindra setter
345
+ react_1.default.useEffect(() => {
346
+ var _a;
347
+ if (routeParams.onboardingIds) {
348
+ try {
349
+ mahindraDispatch((0, mahindrafdsdk_1.setOnboardingIds)(Object.assign(Object.assign({}, routeParams.onboardingIds), { providerId: routeParams.providerId || ((_a = routeParams.onboardingIds) === null || _a === void 0 ? void 0 : _a.providerId) })));
350
+ }
351
+ catch (e) {
352
+ console.log('[RootNavigator] Error setting Mahindra OnboardingIds:', e);
353
+ }
354
+ }
355
+ }, [routeParams.onboardingIds, mahindraDispatch]);
356
+ return (react_1.default.createElement(MahindraRootNavigatorAny, { config: {
357
+ initialRouteName: routeParams.initialRouteName || 'FDCalculator',
358
+ forceFetchCustomerDetails: !!routeParams.forceFetchCustomerDetails,
359
+ initialFDContext: {
360
+ providerId: routeParams.providerId,
361
+ fdListSelectedData: routeParams.fdListSelectedData,
362
+ completeFDData: routeParams.completeFDData,
363
+ },
364
+ }, onExit: (fdDetails) => {
365
+ // When exiting external SDK, go back to FDList
366
+ setExternalSDK(null);
367
+ setExternalSDKFDData(null);
368
+ (0, helpers_2.navigate)('FDList');
369
+ if (fdDetails) {
370
+ onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
371
+ }
372
+ }, onPanRequired: () => {
373
+ // Exit full SDK flow back to host app and notify callback
374
+ setExternalSDK(null);
375
+ setExternalSDKFDData(null);
376
+ onPanRequired === null || onPanRequired === void 0 ? void 0 : onPanRequired();
377
+ onExit === null || onExit === void 0 ? void 0 : onExit();
378
+ } }));
379
+ };
380
+ if (sdkType === 'shriram') {
381
+ return (react_1.default.createElement(shriramfdsdk_1.ApiProvider, null,
382
+ react_1.default.createElement(shriramfdsdk_1.MasterDataProvider, null,
383
+ react_1.default.createElement(shriramfdsdk_1.ThemeProvider, { theme: fdsdkTheme, initialTheme: fdsdkThemeName },
384
+ react_1.default.createElement(native_1.NavigationIndependentTree, null,
385
+ react_1.default.createElement(native_1.NavigationContainer, { ref: shriramfdsdk_1.navigationRef },
386
+ react_1.default.createElement(ShriramSDKWithMasterData, { masterData: externalMasterData })))))));
387
+ }
388
+ if (sdkType === 'mahindra') {
389
+ return (react_1.default.createElement(mahindrafdsdk_1.ApiProvider, null,
390
+ react_1.default.createElement(mahindrafdsdk_1.MasterDataProvider, null,
391
+ react_1.default.createElement(mahindrafdsdk_1.ThemeProvider, { theme: fdsdkTheme, initialTheme: fdsdkThemeName },
392
+ react_1.default.createElement(native_1.NavigationIndependentTree, null,
393
+ react_1.default.createElement(native_1.NavigationContainer, { ref: mahindrafdsdk_1.navigationRef },
394
+ react_1.default.createElement(MahindraSDKWithMasterData, { masterData: externalMasterData })))))));
395
+ }
396
+ return null;
397
+ }),
398
+ react_1.default.createElement(Stack.Screen, { name: "AadhaarVerification", options: { title: 'Aadhaar Verification' } }, (props) => (react_1.default.createElement(AadhaarVerification_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onVerificationComplete: () => {
399
+ (0, helpers_2.navigate)('Employee');
400
+ } }, props)))),
401
+ react_1.default.createElement(Stack.Screen, { name: "ReviewKYC", options: { title: 'Review KYC' } }, (props) => (react_1.default.createElement(ReviewKYC_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onContinue: () => {
402
+ (0, helpers_2.navigate)('Employee');
403
+ } }, props)))),
404
+ react_1.default.createElement(Stack.Screen, { name: "Employee", options: { title: 'Occupation' } }, (props) => (react_1.default.createElement(Employee_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onContinue: () => {
405
+ (0, helpers_2.navigate)('NomineeDetail');
406
+ } }, props)))),
407
+ react_1.default.createElement(Stack.Screen, { name: "NomineeDetail", options: { title: 'Nominee Details' } }, (props) => (react_1.default.createElement(NomineeDetail_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onSave: () => {
408
+ (0, helpers_2.navigate)('BankDetail');
409
+ } }, props)))),
410
+ react_1.default.createElement(Stack.Screen, { name: "BankDetail", options: { title: 'Bank Details' } }, (props) => (react_1.default.createElement(BankDetail_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onContinue: () => {
411
+ (0, helpers_2.navigate)('PayNow');
412
+ }, onAddAccount: () => {
413
+ (0, helpers_2.navigate)('AddBankAccount');
414
+ } }, props)))),
415
+ react_1.default.createElement(Stack.Screen, { name: "AddBankAccount", options: { title: 'Add Bank Account' } }, (props) => (react_1.default.createElement(AddBankAccount_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onContinue: () => {
416
+ (0, helpers_2.goBack)();
417
+ }, onFindIFSC: () => {
418
+ (0, helpers_2.navigate)('FindIFSC');
419
+ }, selectedIFSC: (() => {
420
+ const params = props.route.params;
421
+ return params === null || params === void 0 ? void 0 : params.selectedIFSC;
422
+ })() }, props)))),
423
+ react_1.default.createElement(Stack.Screen, { name: "FindIFSC", options: { title: 'Find IFSC' } }, (props) => {
424
+ var _a;
425
+ return (react_1.default.createElement(FindIFSC_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onSelect: (ifscData) => {
426
+ (0, helpers_2.pop)(1);
427
+ (0, helpers_2.navigate)('AddBankAccount', { selectedIFSC: ifscData });
428
+ }, initialSearchTerm: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.initialSearchTerm }, props)));
429
+ }),
430
+ react_1.default.createElement(Stack.Screen, { name: "PayNow", options: { title: 'Pay Now' } }, (props) => {
431
+ var _a;
432
+ return (react_1.default.createElement(PayNow_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), onConfirm: () => {
433
+ // onConfirm is handled inside PayNow after createFD; keep fallback
434
+ }, fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }, props)));
435
+ }),
436
+ react_1.default.createElement(Stack.Screen, { name: "Payment", options: { title: 'Payment' } }, (props) => {
437
+ var _a, _b, _c;
438
+ return (react_1.default.createElement(Payment_1.default, Object.assign({ onGoBack: () => (0, helpers_2.goBack)(), paymentUrl: (_c = (_b = (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.paymentUrl) !== null && _b !== void 0 ? _b : (0, paymentSession_1.getPaymentSession)().paymentUrl) !== null && _c !== void 0 ? _c : '', onPaymentSuccess: (data) => {
439
+ (0, helpers_2.navigate)('PaymentStatus', {
440
+ status: 'success',
441
+ paymentData: data
442
+ });
443
+ }, onPaymentFailure: (error) => {
444
+ (0, helpers_2.navigate)('PaymentStatus', {
445
+ status: 'failed',
446
+ paymentData: error
447
+ });
448
+ } }, props)));
449
+ }),
450
+ react_1.default.createElement(Stack.Screen, { name: "PaymentStatus", options: { title: 'Payment Status' } }, (props) => {
451
+ var _a, _b, _c;
452
+ return (react_1.default.createElement(PaymentStatus_1.default, Object.assign({ status: ((_a = props.route.params) === null || _a === void 0 ? void 0 : _a.status) || 'pending', transactionId: (_b = props.route.params) === null || _b === void 0 ? void 0 : _b.transactionId, fdData: (_c = props.route.params) === null || _c === void 0 ? void 0 : _c.fdData, onRetry: () => {
453
+ (0, helpers_2.navigate)('Payment');
454
+ }, onContinue: (fdDetails) => {
455
+ onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
456
+ } }, props)));
457
+ })));
458
+ };
459
+ exports.default = RootNavigator;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export type SimpleNavigationRoute = 'Home' | 'FDList' | 'BookFD' | 'FDCalculator';
3
+ export interface SimpleNavigationConfig {
4
+ initialRouteName?: SimpleNavigationRoute;
5
+ }
6
+ interface SimpleNavigatorProps {
7
+ config?: SimpleNavigationConfig;
8
+ onExit?: () => void;
9
+ }
10
+ declare const SimpleNavigator: React.FC<SimpleNavigatorProps>;
11
+ export default SimpleNavigator;