@finspringinnovations/fdsdk 0.0.1

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 (315) hide show
  1. package/README.md +184 -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 +8 -0
  7. package/lib/api/baseApi.js +456 -0
  8. package/lib/api/customerApi.d.ts +855 -0
  9. package/lib/api/customerApi.js +213 -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 +32 -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 +4 -0
  33. package/lib/assets/images/images.js +10 -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 +16 -0
  39. package/lib/components/ActiveFDCard.js +95 -0
  40. package/lib/components/AmountInput.d.ts +20 -0
  41. package/lib/components/AmountInput.js +144 -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 +57 -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 +21 -0
  55. package/lib/components/FDCard.js +96 -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 +18 -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 +45 -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 +114 -0
  95. package/lib/config/appDataConfig.js +264 -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 +37 -0
  99. package/lib/config/workflowConstants.js +38 -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 +25 -0
  103. package/lib/constants/strings/base64Images.js +28 -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 +69 -0
  125. package/lib/index.js +182 -0
  126. package/lib/navigation/RootNavigator.d.ts +8 -0
  127. package/lib/navigation/RootNavigator.js +205 -0
  128. package/lib/navigation/SimpleNavigator.d.ts +11 -0
  129. package/lib/navigation/SimpleNavigator.js +107 -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 +15 -0
  133. package/lib/navigation/index.js +42 -0
  134. package/lib/navigation/types.d.ts +113 -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 +34 -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/BookFD.d.ts +0 -0
  149. package/lib/screens/BookFD.js +315 -0
  150. package/lib/screens/Employee.d.ts +18 -0
  151. package/lib/screens/Employee.js +594 -0
  152. package/lib/screens/FDCalculator.d.ts +18 -0
  153. package/lib/screens/FDCalculator.js +759 -0
  154. package/lib/screens/FDList.d.ts +27 -0
  155. package/lib/screens/FDList.js +1008 -0
  156. package/lib/screens/FindIFSC.d.ts +16 -0
  157. package/lib/screens/FindIFSC.js +248 -0
  158. package/lib/screens/Home.d.ts +0 -0
  159. package/lib/screens/Home.js +143 -0
  160. package/lib/screens/NomineeDetail.d.ts +17 -0
  161. package/lib/screens/NomineeDetail.js +592 -0
  162. package/lib/screens/PayNow.d.ts +14 -0
  163. package/lib/screens/PayNow.js +230 -0
  164. package/lib/screens/Payment.d.ts +11 -0
  165. package/lib/screens/Payment.js +191 -0
  166. package/lib/screens/PaymentStatus.d.ts +16 -0
  167. package/lib/screens/PaymentStatus.js +397 -0
  168. package/lib/screens/ReviewKYC.d.ts +21 -0
  169. package/lib/screens/ReviewKYC.js +660 -0
  170. package/lib/state/paymentSession.d.ts +8 -0
  171. package/lib/state/paymentSession.js +13 -0
  172. package/lib/store/fdListSelectedSlice.d.ts +21 -0
  173. package/lib/store/fdListSelectedSlice.js +26 -0
  174. package/lib/store/hooks.d.ts +8 -0
  175. package/lib/store/hooks.js +31 -0
  176. package/lib/store/index.d.ts +3 -0
  177. package/lib/store/index.js +8 -0
  178. package/lib/store/onboardingSlice.d.ts +12 -0
  179. package/lib/store/onboardingSlice.js +32 -0
  180. package/lib/store/store.d.ts +13 -0
  181. package/lib/store/store.js +33 -0
  182. package/lib/theme/ThemeContext.d.ts +210 -0
  183. package/lib/theme/ThemeContext.js +90 -0
  184. package/lib/theme/colors.d.ts +80 -0
  185. package/lib/theme/colors.js +85 -0
  186. package/lib/theme/index.d.ts +34 -0
  187. package/lib/theme/index.js +69 -0
  188. package/lib/theme/shadows.d.ts +53 -0
  189. package/lib/theme/shadows.js +58 -0
  190. package/lib/theme/typography.d.ts +134 -0
  191. package/lib/theme/typography.js +143 -0
  192. package/lib/types/dataTypes.d.ts +34 -0
  193. package/lib/types/dataTypes.js +2 -0
  194. package/lib/types/workflowTypes.d.ts +2 -0
  195. package/lib/types/workflowTypes.js +2 -0
  196. package/lib/utils/apiLogger.d.ts +48 -0
  197. package/lib/utils/apiLogger.js +105 -0
  198. package/lib/utils/encryption.d.ts +28 -0
  199. package/lib/utils/encryption.js +113 -0
  200. package/lib/utils/getFDData.d.ts +48 -0
  201. package/lib/utils/getFDData.js +154 -0
  202. package/lib/utils/globalData.d.ts +2 -0
  203. package/lib/utils/globalData.js +10 -0
  204. package/package.json +76 -0
  205. package/src/api/applicationApi.ts +12 -0
  206. package/src/api/bankApi.ts +42 -0
  207. package/src/api/baseApi.ts +513 -0
  208. package/src/api/customerApi.ts +291 -0
  209. package/src/api/fdApi.ts +150 -0
  210. package/src/api/fdCalculatorApi.ts +41 -0
  211. package/src/api/index.ts +29 -0
  212. package/src/api/interestRateApi.ts +143 -0
  213. package/src/api/kycApi.ts +63 -0
  214. package/src/api/masterDataApi.ts +34 -0
  215. package/src/api/nomineeApi.ts +34 -0
  216. package/src/api/onboardingApi.ts +64 -0
  217. package/src/api/panApi.ts +25 -0
  218. package/src/api/paymentApi.ts +34 -0
  219. package/src/api/workflowApi.ts +94 -0
  220. package/src/assets/images/arrow-filled.png +0 -0
  221. package/src/assets/images/arrow-left.png +0 -0
  222. package/src/assets/images/backicon.png +0 -0
  223. package/src/assets/images/calendar.png +0 -0
  224. package/src/assets/images/chevron-down.png +0 -0
  225. package/src/assets/images/chevron-down@2x.png +0 -0
  226. package/src/assets/images/chevron-down@3x.png +0 -0
  227. package/src/assets/images/images.js +8 -0
  228. package/src/components/AadhaarInput.tsx +91 -0
  229. package/src/components/ActionButton.tsx +129 -0
  230. package/src/components/ActiveFDCard.tsx +158 -0
  231. package/src/components/AmountInput.tsx +217 -0
  232. package/src/components/CheckboxOption.tsx +93 -0
  233. package/src/components/CompanyHeader.tsx +78 -0
  234. package/src/components/DropdownSelector.tsx +77 -0
  235. package/src/components/EmptyState.tsx +109 -0
  236. package/src/components/ErrorDisplay.tsx +135 -0
  237. package/src/components/FAQItem.tsx +90 -0
  238. package/src/components/FDCard.tsx +165 -0
  239. package/src/components/FormDropdown.tsx +214 -0
  240. package/src/components/FormSection.tsx +86 -0
  241. package/src/components/Header.tsx +110 -0
  242. package/src/components/IFSCSearchResultCard.tsx +139 -0
  243. package/src/components/InfoBox.tsx +55 -0
  244. package/src/components/InterestRateCard.tsx +77 -0
  245. package/src/components/LoadingIndicator.tsx +63 -0
  246. package/src/components/OTPInput.tsx +213 -0
  247. package/src/components/PaymentDetailsCard.tsx +120 -0
  248. package/src/components/PendingFDBottomSheet.tsx +235 -0
  249. package/src/components/README.md +210 -0
  250. package/src/components/SafeAreaWrapper.tsx +68 -0
  251. package/src/components/ScreenHeader.tsx +83 -0
  252. package/src/components/StatusDisplay.tsx +139 -0
  253. package/src/components/TextFieldWithLabel.tsx +502 -0
  254. package/src/components/TrustBox.tsx +63 -0
  255. package/src/components/ValidationErrorAlert.tsx +57 -0
  256. package/src/components/ValidationMessage.tsx +134 -0
  257. package/src/components/index.tsx +47 -0
  258. package/src/config/apiConfig.ts +217 -0
  259. package/src/config/appDataConfig.ts +279 -0
  260. package/src/config/encryptionConfig.ts +65 -0
  261. package/src/config/workflowConstants.ts +43 -0
  262. package/src/constants/strings/README.md +146 -0
  263. package/src/constants/strings/bank.ts +92 -0
  264. package/src/constants/strings/base64Images.ts +29 -0
  265. package/src/constants/strings/common.ts +63 -0
  266. package/src/constants/strings/employee.ts +85 -0
  267. package/src/constants/strings/faq.ts +23 -0
  268. package/src/constants/strings/fd.ts +172 -0
  269. package/src/constants/strings/home.ts +67 -0
  270. package/src/constants/strings/index.ts +21 -0
  271. package/src/constants/strings/kyc.ts +100 -0
  272. package/src/constants/strings/nominee.ts +90 -0
  273. package/src/hooks/useAuth.ts +42 -0
  274. package/src/hooks/useFDData.ts +48 -0
  275. package/src/index.tsx +173 -0
  276. package/src/navigation/RootNavigator.tsx +352 -0
  277. package/src/navigation/SimpleNavigator.tsx +107 -0
  278. package/src/navigation/helpers.ts +85 -0
  279. package/src/navigation/index.tsx +81 -0
  280. package/src/navigation/types.ts +124 -0
  281. package/src/navigation/workflowNavigator.ts +131 -0
  282. package/src/providers/ApiProvider.tsx +43 -0
  283. package/src/providers/MasterDataProvider.tsx +30 -0
  284. package/src/screens/AadhaarVerification.tsx +809 -0
  285. package/src/screens/AddBankAccount.tsx +541 -0
  286. package/src/screens/BankDetail.tsx +826 -0
  287. package/src/screens/BookFD.tsx +330 -0
  288. package/src/screens/Employee.tsx +822 -0
  289. package/src/screens/FDCalculator.tsx +987 -0
  290. package/src/screens/FDList.tsx +1284 -0
  291. package/src/screens/FindIFSC.tsx +332 -0
  292. package/src/screens/Home.tsx +152 -0
  293. package/src/screens/NomineeDetail.tsx +800 -0
  294. package/src/screens/PayNow.tsx +282 -0
  295. package/src/screens/Payment.tsx +224 -0
  296. package/src/screens/PaymentStatus.tsx +561 -0
  297. package/src/screens/ReviewKYC.tsx +956 -0
  298. package/src/state/paymentSession.ts +13 -0
  299. package/src/store/fdListSelectedSlice.ts +42 -0
  300. package/src/store/hooks.ts +27 -0
  301. package/src/store/index.ts +3 -0
  302. package/src/store/onboardingSlice.ts +37 -0
  303. package/src/store/store.ts +35 -0
  304. package/src/theme/ThemeContext.tsx +82 -0
  305. package/src/theme/colors.ts +90 -0
  306. package/src/theme/index.ts +64 -0
  307. package/src/theme/shadows.ts +61 -0
  308. package/src/theme/typography.ts +151 -0
  309. package/src/types/dataTypes.ts +37 -0
  310. package/src/types/env.d.ts +93 -0
  311. package/src/types/workflowTypes.ts +12 -0
  312. package/src/utils/apiLogger.ts +166 -0
  313. package/src/utils/encryption.ts +159 -0
  314. package/src/utils/getFDData.ts +175 -0
  315. package/src/utils/globalData.ts +7 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const ThemeContext_1 = require("../theme/ThemeContext");
9
+ const FormSection = ({ title, subtitle, children, containerStyle, titleStyle, subtitleStyle, contentStyle, showDivider = false, dividerStyle, }) => {
10
+ const colors = (0, ThemeContext_1.useColors)();
11
+ const typography = (0, ThemeContext_1.useTypography)();
12
+ const styles = createStyles(colors, typography);
13
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.container, containerStyle] },
14
+ (title || subtitle) && (react_1.default.createElement(react_native_1.View, { style: styles.header },
15
+ title && (react_1.default.createElement(react_native_1.Text, { style: [styles.title, titleStyle] }, title)),
16
+ subtitle && (react_1.default.createElement(react_native_1.Text, { style: [styles.subtitle, subtitleStyle] }, subtitle)))),
17
+ showDivider && (react_1.default.createElement(react_native_1.View, { style: [styles.divider, dividerStyle] })),
18
+ react_1.default.createElement(react_native_1.View, { style: [styles.content, contentStyle] }, children)));
19
+ };
20
+ const createStyles = (colors, typography) => react_native_1.StyleSheet.create({
21
+ container: {
22
+ marginBottom: 24,
23
+ },
24
+ header: {
25
+ marginBottom: 16,
26
+ },
27
+ title: Object.assign(Object.assign({}, typography.styles.h3), { color: colors.text, marginBottom: 4 }),
28
+ subtitle: Object.assign(Object.assign({}, typography.styles.bodyMedium), { color: colors.textLight, lineHeight: 20 }),
29
+ divider: {
30
+ height: 1,
31
+ backgroundColor: colors.border + '20',
32
+ marginBottom: 16,
33
+ },
34
+ content: {
35
+ // Content styling can be customized via contentStyle prop
36
+ },
37
+ });
38
+ exports.default = FormSection;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface HeaderProps {
3
+ title: string;
4
+ onBackPress?: () => void;
5
+ backgroundColor?: string;
6
+ titleColor?: string;
7
+ customStyles?: {
8
+ container?: object;
9
+ title?: object;
10
+ backButton?: object;
11
+ };
12
+ }
13
+ declare const Header: React.FC<HeaderProps>;
14
+ export default Header;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const Ionicons_1 = __importDefault(require("react-native-vector-icons/Ionicons"));
9
+ const ThemeContext_1 = require("../theme/ThemeContext");
10
+ const base64Images_1 = require("../constants/strings/base64Images");
11
+ const Header = ({ title, onBackPress, backgroundColor, titleColor, customStyles = {}, }) => {
12
+ const colors = (0, ThemeContext_1.useColors)();
13
+ const typography = (0, ThemeContext_1.useTypography)();
14
+ const spacing = (0, ThemeContext_1.useSpacing)();
15
+ const { themeName } = (0, ThemeContext_1.useTheme)();
16
+ const styles = createStyles(colors, typography, spacing, themeName);
17
+ const headerBg = colors.headerBg;
18
+ const textColor = titleColor || colors.headerText || colors.background;
19
+ const BackIcon = () => (react_1.default.createElement(Ionicons_1.default, { name: "arrow-back", size: 24, color: textColor, style: styles.backIcon }));
20
+ return (react_1.default.createElement(react_1.default.Fragment, null,
21
+ react_1.default.createElement(react_native_1.View, { style: [styles.header, { backgroundColor: headerBg }, customStyles.container] },
22
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: [styles.backButton, customStyles.backButton], onPress: onBackPress },
23
+ react_1.default.createElement(react_native_1.Image, { source: { uri: base64Images_1.base64Images.backArrow }, style: [styles.backIcon, { tintColor: textColor }], resizeMode: "contain", width: 24, height: 24 })),
24
+ react_1.default.createElement(react_native_1.Text, { style: [styles.headerTitle, { color: textColor }, customStyles.title] }, title))));
25
+ };
26
+ const isAndroid15OrHigher = react_native_1.Platform.OS === "android" && react_native_1.Platform.Version >= 15;
27
+ const createStyles = (colors, typography, spacing, themeName) => react_native_1.StyleSheet.create({
28
+ header: {
29
+ height: react_native_1.Platform.OS === 'ios' ? 100 : isAndroid15OrHigher ? 80 : 70, // Set fixed height to 200px
30
+ paddingHorizontal: spacing.lg,
31
+ flexDirection: 'row',
32
+ alignItems: 'center', // Vertically center the content
33
+ justifyContent: 'flex-start', // Align content to the left
34
+ borderBottomWidth: themeName === 'dark' ? 1 : 0,
35
+ borderBottomColor: themeName === 'dark' ? colors.border : 'transparent',
36
+ },
37
+ backButton: {
38
+ marginTop: react_native_1.Platform.OS === 'ios' ? 30 : isAndroid15OrHigher ? 15 : 0,
39
+ marginRight: spacing.lg,
40
+ alignItems: 'center',
41
+ justifyContent: 'center',
42
+ },
43
+ backIcon: {
44
+ // Icon styling handled by Ionicons component
45
+ width: 24,
46
+ height: 24,
47
+ resizeMode: 'contain',
48
+ // backgroundColor: "red",
49
+ },
50
+ headerTitle: Object.assign({ marginTop: react_native_1.Platform.OS === 'ios' ? 30 : isAndroid15OrHigher ? 15 : 0 }, typography.styles.h3),
51
+ });
52
+ exports.default = Header;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export interface IFSCSearchResultCardProps {
3
+ bankName: string;
4
+ branchName: string;
5
+ ifscCode: string;
6
+ bankShortDesc?: string;
7
+ bankCode?: string;
8
+ onSelect: () => void;
9
+ disabled?: boolean;
10
+ buttonTitle?: string;
11
+ }
12
+ declare const IFSCSearchResultCard: React.FC<IFSCSearchResultCardProps>;
13
+ export default IFSCSearchResultCard;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const ThemeContext_1 = require("../theme/ThemeContext");
9
+ const IFSCSearchResultCard = ({ bankName, branchName, ifscCode, bankShortDesc, bankCode, onSelect, disabled = false, buttonTitle = 'Select', }) => {
10
+ const colors = (0, ThemeContext_1.useColors)();
11
+ const typography = (0, ThemeContext_1.useTypography)();
12
+ const { themeName } = (0, ThemeContext_1.useTheme)();
13
+ const styles = createStyles(colors, typography, themeName);
14
+ return (react_1.default.createElement(react_native_1.View, { style: styles.resultCard },
15
+ react_1.default.createElement(react_native_1.View, { style: styles.resultInfo },
16
+ react_1.default.createElement(react_native_1.View, { style: styles.bankHeader },
17
+ react_1.default.createElement(react_native_1.Text, { style: styles.bankName }, bankName)),
18
+ react_1.default.createElement(react_native_1.Text, { style: styles.branchName }, branchName),
19
+ react_1.default.createElement(react_native_1.View, { style: styles.ifscContainer },
20
+ react_1.default.createElement(react_native_1.Text, { style: styles.ifscCode }, "IFSC:"),
21
+ react_1.default.createElement(react_native_1.Text, { style: styles.ifscValue }, ifscCode))),
22
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: styles.selectButton, onPress: onSelect, activeOpacity: 0.7, disabled: disabled },
23
+ react_1.default.createElement(react_native_1.Text, { style: styles.selectButtonText }, buttonTitle))));
24
+ };
25
+ const createStyles = (colors, typography, themeName) => react_native_1.StyleSheet.create({
26
+ resultCard: {
27
+ borderRadius: 12,
28
+ padding: 1,
29
+ marginBottom: 16,
30
+ flexDirection: 'row',
31
+ justifyContent: 'space-between',
32
+ alignItems: 'center',
33
+ },
34
+ resultInfo: {
35
+ flex: 1,
36
+ marginRight: 12,
37
+ },
38
+ bankHeader: {
39
+ flexDirection: 'row',
40
+ alignItems: 'center',
41
+ marginBottom: 4,
42
+ },
43
+ bankName: Object.assign(Object.assign({}, typography.styles.h3), { color: colors.text, flex: 1 }),
44
+ bankShortDesc: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.textLight, marginLeft: 8 }),
45
+ branchName: Object.assign(Object.assign({}, typography.styles.h3), { color: colors.text, marginBottom: 4 }),
46
+ ifscContainer: {
47
+ flexDirection: 'row',
48
+ alignItems: 'center',
49
+ marginBottom: 4,
50
+ },
51
+ ifscCode: Object.assign(Object.assign({}, typography.styles.h3), { color: colors.text, marginRight: 8 }),
52
+ ifscValue: Object.assign(Object.assign({}, typography.styles.h3), { fontWeight: typography.fontWeight.semiBold, color: colors.text }),
53
+ bankCodeContainer: {
54
+ flexDirection: 'row',
55
+ alignItems: 'center',
56
+ marginTop: 4,
57
+ },
58
+ bankCodeLabel: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.textLight, marginRight: 8 }),
59
+ bankCodeValue: Object.assign(Object.assign({}, typography.styles.bodySmall), { fontWeight: typography.fontWeight.medium, color: colors.text }),
60
+ selectButton: {
61
+ backgroundColor: themeName === 'dark' ? colors.buttonBackground : colors.headerBg,
62
+ paddingHorizontal: 24,
63
+ paddingVertical: 10,
64
+ borderRadius: themeName === 'dark' ? 5 : 25,
65
+ minWidth: 80,
66
+ alignItems: 'center',
67
+ },
68
+ selectButtonText: Object.assign(Object.assign({ color: themeName === 'dark' ? colors.buttonTextColor : 'white' }, typography.styles.bodyMedium), { fontWeight: typography.fontWeight.semiBold }),
69
+ });
70
+ exports.default = IFSCSearchResultCard;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface InfoBoxProps {
3
+ message: string;
4
+ containerStyle?: any;
5
+ showNonStockIcon?: boolean;
6
+ }
7
+ declare const InfoBox: React.FC<InfoBoxProps>;
8
+ export default InfoBox;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const Ionicons_1 = __importDefault(require("react-native-vector-icons/Ionicons"));
9
+ const base64Images_1 = require("../constants/strings/base64Images");
10
+ const ThemeContext_1 = require("../theme/ThemeContext");
11
+ const InfoBox = ({ message, containerStyle, showNonStockIcon = false }) => {
12
+ const colors = (0, ThemeContext_1.useColors)();
13
+ const typography = (0, ThemeContext_1.useTypography)();
14
+ const { themeName } = (0, ThemeContext_1.useTheme)();
15
+ const styles = createStyles(colors, typography);
16
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.container, containerStyle] },
17
+ showNonStockIcon ? (react_1.default.createElement(react_native_1.Image, { source: { uri: themeName === 'dark' ? base64Images_1.base64Images.stockDark : base64Images_1.base64Images.nonStock }, style: styles.imageIcon, resizeMode: "contain" })) : (react_1.default.createElement(Ionicons_1.default, { name: "information-circle", size: 16, color: colors.success, style: styles.icon })),
18
+ react_1.default.createElement(react_native_1.Text, { style: styles.text }, message)));
19
+ };
20
+ const createStyles = (colors, typography) => react_native_1.StyleSheet.create({
21
+ container: {
22
+ backgroundColor: 'rgba(0,235,180,0.1)',
23
+ padding: 12,
24
+ borderRadius: 8,
25
+ marginTop: 16,
26
+ flexDirection: 'row',
27
+ alignItems: 'center',
28
+ },
29
+ icon: {
30
+ marginRight: 8,
31
+ },
32
+ imageIcon: {
33
+ width: 16,
34
+ height: 16,
35
+ marginRight: 8,
36
+ },
37
+ text: Object.assign(Object.assign({}, typography.styles.bodyMedium), { color: colors.textLight, flex: 1 }),
38
+ });
39
+ exports.default = InfoBox;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface InterestRateCardProps {
3
+ interestRate: string;
4
+ maturityAmount: string;
5
+ children?: React.ReactNode;
6
+ }
7
+ declare const InterestRateCard: React.FC<InterestRateCardProps>;
8
+ export default InterestRateCard;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const ThemeContext_1 = require("../theme/ThemeContext");
9
+ const InterestRateCard = ({ interestRate, maturityAmount, children, }) => {
10
+ const colors = (0, ThemeContext_1.useColors)();
11
+ const typography = (0, ThemeContext_1.useTypography)();
12
+ const { themeName } = (0, ThemeContext_1.useTheme)();
13
+ const styles = createStyles(colors, typography, themeName);
14
+ return (react_1.default.createElement(react_native_1.View, { style: styles.card },
15
+ react_1.default.createElement(react_native_1.View, { style: styles.row },
16
+ react_1.default.createElement(react_native_1.View, { style: styles.left },
17
+ react_1.default.createElement(react_native_1.Text, { style: styles.label }, "Interest Rate"),
18
+ react_1.default.createElement(react_native_1.Text, { style: styles.value }, interestRate)),
19
+ react_1.default.createElement(react_native_1.View, { style: styles.right },
20
+ react_1.default.createElement(react_native_1.Text, { style: styles.label }, "On Maturity"),
21
+ react_1.default.createElement(react_native_1.Text, { style: styles.valueRight }, maturityAmount))),
22
+ children));
23
+ };
24
+ const createStyles = (colors, typography, themeName) => react_native_1.StyleSheet.create({
25
+ card: {
26
+ backgroundColor: themeName === 'dark' ? colors.inputBackground : 'rgba(0,235,180,0.1)',
27
+ padding: 16,
28
+ borderRadius: 4,
29
+ marginTop: 25,
30
+ },
31
+ row: {
32
+ flexDirection: 'row',
33
+ justifyContent: 'space-between',
34
+ },
35
+ left: {
36
+ flex: 1,
37
+ },
38
+ right: {
39
+ flex: 1,
40
+ alignItems: 'flex-end',
41
+ },
42
+ label: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: themeName === 'dark' ? colors.labelColor : colors.textLight, marginBottom: 4 }),
43
+ value: Object.assign(Object.assign({}, typography.styles.bodyLarge), { fontWeight: '600', color: colors.text }),
44
+ valueRight: Object.assign(Object.assign({}, typography.styles.bodyLarge), { fontWeight: '700', color: colors.text }),
45
+ });
46
+ exports.default = InterestRateCard;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface LoadingIndicatorProps {
3
+ message?: string;
4
+ size?: 'small' | 'large';
5
+ color?: string;
6
+ containerStyle?: object;
7
+ messageStyle?: object;
8
+ showMessage?: boolean;
9
+ overlay?: boolean;
10
+ }
11
+ declare const LoadingIndicator: React.FC<LoadingIndicatorProps>;
12
+ export default LoadingIndicator;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const ThemeContext_1 = require("../theme/ThemeContext");
9
+ const LoadingIndicator = ({ message = 'Loading...', size = 'large', color, containerStyle, messageStyle, showMessage = true, overlay = false, }) => {
10
+ const colors = (0, ThemeContext_1.useColors)();
11
+ const typography = (0, ThemeContext_1.useTypography)();
12
+ const styles = createStyles(colors, typography, overlay);
13
+ const indicatorColor = color || colors.primary;
14
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.container, containerStyle] },
15
+ react_1.default.createElement(react_native_1.ActivityIndicator, { size: size, color: indicatorColor }),
16
+ showMessage && message && (react_1.default.createElement(react_native_1.Text, { style: [styles.message, messageStyle] }, message))));
17
+ };
18
+ const createStyles = (colors, typography, overlay) => react_native_1.StyleSheet.create({
19
+ container: Object.assign({ alignItems: 'center', justifyContent: 'center', padding: 20 }, (overlay && {
20
+ position: 'absolute',
21
+ top: 0,
22
+ left: 0,
23
+ right: 0,
24
+ bottom: 0,
25
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
26
+ zIndex: 1000,
27
+ })),
28
+ message: Object.assign(Object.assign({}, typography.styles.bodyMedium), { color: colors.textLight, marginTop: 12, textAlign: 'center' }),
29
+ });
30
+ exports.default = LoadingIndicator;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export interface OTPInputProps {
3
+ length?: number;
4
+ value: string[];
5
+ onChangeText: (value: string, index: number) => void;
6
+ onKeyPress?: (key: string, index: number) => void;
7
+ instruction?: string;
8
+ sessionTime?: number;
9
+ onResend?: () => void;
10
+ isResendEnabled?: boolean;
11
+ autoFocus?: boolean;
12
+ error?: boolean;
13
+ errorMessage?: string;
14
+ disabled?: boolean;
15
+ }
16
+ declare const OTPInput: React.FC<OTPInputProps>;
17
+ export default OTPInput;
@@ -0,0 +1,144 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const react_1 = __importStar(require("react"));
37
+ const react_native_1 = require("react-native");
38
+ const ThemeContext_1 = require("../theme/ThemeContext");
39
+ const OTPInput = ({ length = 6, value, onChangeText, onKeyPress, instruction = "Enter the 6-digit OTP that sent to your registered Aadhaar number", sessionTime, onResend, isResendEnabled = false, autoFocus = true, error = false, errorMessage, disabled = false, }) => {
40
+ const colors = (0, ThemeContext_1.useColors)();
41
+ const typography = (0, ThemeContext_1.useTypography)();
42
+ const { themeName } = (0, ThemeContext_1.useTheme)();
43
+ const styles = createStyles(colors, typography, themeName);
44
+ const inputRefs = (0, react_1.useRef)([]);
45
+ const [resendCountdown, setResendCountdown] = react_1.default.useState(60);
46
+ const [showTimerText, setShowTimerText] = react_1.default.useState(true);
47
+ (0, react_1.useEffect)(() => {
48
+ if (autoFocus && inputRefs.current[0]) {
49
+ inputRefs.current[0].focus();
50
+ }
51
+ }, [autoFocus]);
52
+ // Start countdown timer for resend OTP
53
+ (0, react_1.useEffect)(() => {
54
+ if (resendCountdown <= 0)
55
+ return;
56
+ const timer = setInterval(() => {
57
+ setResendCountdown((prev) => (prev > 0 ? prev - 1 : 0));
58
+ }, 1000);
59
+ return () => clearInterval(timer);
60
+ }, [resendCountdown]);
61
+ // Handle resend button press
62
+ const handleResendPress = () => {
63
+ if (onResend && isResendEnabled) {
64
+ // Call the resend function - parent will handle timer state
65
+ onResend();
66
+ }
67
+ };
68
+ const formatResendTime = (seconds) => {
69
+ const mm = Math.floor(seconds / 60).toString().padStart(2, '0');
70
+ const ss = (seconds % 60).toString().padStart(2, '0');
71
+ return `${mm}:${ss}`;
72
+ };
73
+ const handleChangeText = (text, index) => {
74
+ var _a;
75
+ onChangeText(text, index);
76
+ // Auto-focus next field
77
+ if (text && index < length - 1) {
78
+ (_a = inputRefs.current[index + 1]) === null || _a === void 0 ? void 0 : _a.focus();
79
+ }
80
+ };
81
+ const handleKeyPress = (key, index) => {
82
+ var _a;
83
+ if (onKeyPress) {
84
+ onKeyPress(key, index);
85
+ }
86
+ // Auto-focus previous field on backspace
87
+ if (key === 'Backspace' && !value[index] && index > 0) {
88
+ (_a = inputRefs.current[index - 1]) === null || _a === void 0 ? void 0 : _a.focus();
89
+ }
90
+ };
91
+ return (react_1.default.createElement(react_native_1.View, null,
92
+ react_1.default.createElement(react_native_1.Text, { style: styles.instruction }, instruction),
93
+ react_1.default.createElement(react_native_1.View, { style: styles.otpContainer }, Array.from({ length }, (_, index) => (react_1.default.createElement(react_native_1.TextInput, { key: index, ref: (ref) => {
94
+ if (ref)
95
+ inputRefs.current[index] = ref;
96
+ }, style: [
97
+ styles.otpInput,
98
+ error && styles.otpInputError,
99
+ disabled && styles.otpInputDisabled
100
+ ], value: value[index] || '', onChangeText: (text) => handleChangeText(text, index), onKeyPress: ({ nativeEvent }) => handleKeyPress(nativeEvent.key, index), keyboardType: "numeric", maxLength: 1, textAlign: "center", editable: !disabled })))),
101
+ (sessionTime || 0) > 0 && !isResendEnabled && (react_1.default.createElement(react_native_1.Text, { style: styles.sessionText },
102
+ "Resend OTP in ",
103
+ formatResendTime(sessionTime || 0))),
104
+ onResend && isResendEnabled && (react_1.default.createElement(react_native_1.View, { style: styles.resendContainer },
105
+ react_1.default.createElement(react_native_1.Text, { style: styles.resendText }, "Didn't receive any code? "),
106
+ react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: handleResendPress, disabled: !isResendEnabled },
107
+ react_1.default.createElement(react_native_1.Text, { style: [
108
+ styles.resendLink,
109
+ !isResendEnabled && styles.resendLinkDisabled,
110
+ ] }, "Resend code"))))));
111
+ };
112
+ const createStyles = (colors, typography, themeName) => react_native_1.StyleSheet.create({
113
+ instruction: Object.assign(Object.assign({}, typography.styles.bodySmall), { paddingHorizontal: 40, color: colors.textLight, marginBottom: 24, marginTop: 24, lineHeight: 16, textAlign: 'center' }),
114
+ otpContainer: {
115
+ flexDirection: 'row',
116
+ justifyContent: 'center',
117
+ marginBottom: 16,
118
+ gap: 8,
119
+ },
120
+ otpInput: Object.assign(Object.assign({ width: 48, height: 48, borderWidth: 1, borderColor: themeName === 'dark' ? colors.inputBorder : colors.primary, borderRadius: 8 }, typography.styles.bodyLarge), { color: colors.text, backgroundColor: themeName === 'dark' ? colors.inputBackground : 'white' }),
121
+ otpInputError: {
122
+ borderColor: colors.error,
123
+ borderWidth: 2,
124
+ },
125
+ otpInputDisabled: {
126
+ backgroundColor: colors.backgroundLight,
127
+ borderColor: colors.border,
128
+ opacity: 0.6,
129
+ },
130
+ errorText: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.error, textAlign: 'center', marginTop: 8, marginBottom: 8 }),
131
+ sessionText: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.textLight, marginBottom: 3, marginTop: 5, textAlign: 'center' }),
132
+ resendContainer: {
133
+ flexDirection: 'row',
134
+ alignItems: 'center',
135
+ marginTop: 10,
136
+ justifyContent: 'center',
137
+ },
138
+ resendText: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.textLight }),
139
+ resendLink: Object.assign(Object.assign({}, typography.styles.bodySmall), { color: colors.primary, fontWeight: '500', textDecorationLine: 'underline' }),
140
+ resendLinkDisabled: {
141
+ color: colors.textLight,
142
+ },
143
+ });
144
+ exports.default = OTPInput;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export interface PaymentDetailsCardProps {
3
+ companyName: string;
4
+ amount: number;
5
+ fdRate: string;
6
+ tenure: string;
7
+ interestPayout: string;
8
+ showCompanyLine?: boolean;
9
+ customStyles?: {
10
+ card?: object;
11
+ companyName?: object;
12
+ companyLine?: object;
13
+ detailsContainer?: object;
14
+ detailRow?: object;
15
+ detailLabel?: object;
16
+ detailValue?: object;
17
+ };
18
+ }
19
+ declare const PaymentDetailsCard: React.FC<PaymentDetailsCardProps>;
20
+ export default PaymentDetailsCard;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const ThemeContext_1 = require("../theme/ThemeContext");
9
+ const PaymentDetailsCard = ({ companyName, amount, fdRate, tenure, interestPayout, showCompanyLine = true, customStyles = {}, }) => {
10
+ const colors = (0, ThemeContext_1.useColors)();
11
+ const typography = (0, ThemeContext_1.useTypography)();
12
+ const { themeName } = (0, ThemeContext_1.useTheme)();
13
+ const styles = createStyles(colors, typography, themeName);
14
+ const formatAmount = (amount) => {
15
+ return amount.toLocaleString('en-IN');
16
+ };
17
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.card, customStyles.card] },
18
+ react_1.default.createElement(react_native_1.Text, { style: [styles.companyName, customStyles.companyName] }, companyName),
19
+ showCompanyLine && (react_1.default.createElement(react_native_1.View, { style: [styles.companyLine, customStyles.companyLine] })),
20
+ react_1.default.createElement(react_native_1.View, { style: [styles.detailsContainer, customStyles.detailsContainer] },
21
+ react_1.default.createElement(react_native_1.View, { style: [styles.detailRow, customStyles.detailRow] },
22
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailLabel, customStyles.detailLabel] }, "Amount"),
23
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailValue, customStyles.detailValue] },
24
+ "\u20B9 ",
25
+ formatAmount(amount))),
26
+ react_1.default.createElement(react_native_1.View, { style: [styles.detailRow, customStyles.detailRow] },
27
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailLabel, customStyles.detailLabel] }, "FD Rate"),
28
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailValue, customStyles.detailValue] }, fdRate)),
29
+ react_1.default.createElement(react_native_1.View, { style: [styles.detailRow, customStyles.detailRow] },
30
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailLabel, customStyles.detailLabel] }, "Tenure"),
31
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailValue, customStyles.detailValue] }, tenure)),
32
+ react_1.default.createElement(react_native_1.View, { style: [styles.detailRow, customStyles.detailRow] },
33
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailLabel, customStyles.detailLabel] }, "Interest Payout"),
34
+ react_1.default.createElement(react_native_1.Text, { style: [styles.detailValue, customStyles.detailValue] }, interestPayout)))));
35
+ };
36
+ const createStyles = (colors, typography, themeName) => {
37
+ var _a, _b, _c, _d;
38
+ return react_native_1.StyleSheet.create({
39
+ card: {
40
+ backgroundColor: themeName === 'dark' ? '#0B2940' : '#0B2940',
41
+ borderRadius: 16,
42
+ padding: 20,
43
+ alignItems: 'flex-start',
44
+ marginHorizontal: 16,
45
+ borderWidth: 1,
46
+ borderColor: '#1F4C73',
47
+ },
48
+ companyName: Object.assign(Object.assign({}, typography.styles.h3), { color: '#FFFFFF', marginBottom: 12 }),
49
+ companyLine: {
50
+ height: 1,
51
+ backgroundColor: '#1F4C73',
52
+ marginBottom: 12,
53
+ width: '100%',
54
+ },
55
+ detailsContainer: {
56
+ width: '100%',
57
+ },
58
+ detailRow: {
59
+ flexDirection: 'row',
60
+ justifyContent: 'space-between',
61
+ alignItems: 'center',
62
+ paddingVertical: 8,
63
+ },
64
+ detailLabel: Object.assign(Object.assign({}, typography.styles.text12Regular), { color: '#BFD5F6' }),
65
+ detailValue: Object.assign(Object.assign({}, typography.styles.text14Medium), { color: '#FFFFFF', lineHeight: ((_d = (_b = (_a = typography.styles.text14Medium) === null || _a === void 0 ? void 0 : _a.lineHeight) !== null && _b !== void 0 ? _b : (_c = typography.styles.text14Medium) === null || _c === void 0 ? void 0 : _c.fontSize) !== null && _d !== void 0 ? _d : 14) + 3 }),
66
+ });
67
+ };
68
+ exports.default = PaymentDetailsCard;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ interface PendingFDData {
3
+ name: string;
4
+ invested: number;
5
+ value: number;
6
+ returns: number;
7
+ maturityDate: string;
8
+ }
9
+ export interface PendingFDBottomSheetProps {
10
+ visible: boolean;
11
+ onClose: () => void;
12
+ onContinue: () => void;
13
+ onBookNew: () => void;
14
+ pendingFDData?: PendingFDData;
15
+ isBookingNewLoading?: boolean;
16
+ }
17
+ declare const PendingFDBottomSheet: React.FC<PendingFDBottomSheetProps>;
18
+ export default PendingFDBottomSheet;