manage-app-sdk 0.0.2

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 (133) hide show
  1. package/README.md +2 -0
  2. package/dist/Constants/Home.js +85 -0
  3. package/dist/assets/AppConstant.js +293 -0
  4. package/dist/assets/androidResources/Connectivity.java +52 -0
  5. package/dist/assets/androidResources/ConnectivityPackage.java +25 -0
  6. package/dist/assets/fonts/VoltePlay-Bold.ttf +0 -0
  7. package/dist/assets/fonts/VoltePlay-Light.ttf +0 -0
  8. package/dist/assets/fonts/VoltePlay-Medium.ttf +0 -0
  9. package/dist/assets/fonts/VoltePlay-Regular.ttf +0 -0
  10. package/dist/assets/fonts/VoltePlay-SemiBold.ttf +0 -0
  11. package/dist/assets/gif/loader.gif +0 -0
  12. package/dist/assets/images/PartnerLogosSmall.png +0 -0
  13. package/dist/assets/images/Union.png +0 -0
  14. package/dist/assets/images/appIcon.png +0 -0
  15. package/dist/assets/images/desktop-alert.png +0 -0
  16. package/dist/assets/images/desktop-cross.png +0 -0
  17. package/dist/assets/images/mobile-bg.png +0 -0
  18. package/dist/assets/images/stepper-one-small.png +0 -0
  19. package/dist/assets/images/stepper-one.png +0 -0
  20. package/dist/assets/images/stepper-two-small.png +0 -0
  21. package/dist/assets/images/stepper-two.png +0 -0
  22. package/dist/assets/images/tablet-bg.png +0 -0
  23. package/dist/assets/png/Tataplay-Binge.png +0 -0
  24. package/dist/assets/png/arrowBack.png +0 -0
  25. package/dist/assets/png/backArrowPng.png +0 -0
  26. package/dist/assets/svg/BingeLogoSvg.js +44 -0
  27. package/dist/assets/svg/CrossSvg.js +32 -0
  28. package/dist/assets/svg/OfferSvg.js +31 -0
  29. package/dist/assets/svg/PlansSvg.js +75 -0
  30. package/dist/assets/svg/TickSvg.js +28 -0
  31. package/dist/assets/svg/arrowBack.js +27 -0
  32. package/dist/assets/svg/arrowSvg.js +31 -0
  33. package/dist/components/AppIcon/AppIcon.js +70 -0
  34. package/dist/components/AppleBanner/AppleMusicBanner.js +36 -0
  35. package/dist/components/AppleBanner/AppleMusicBannerStyles.js +32 -0
  36. package/dist/components/AppleBanner/AppleMusicBlackBanner.js +66 -0
  37. package/dist/components/AppsContainer/AppsContainer.js +112 -0
  38. package/dist/components/BottomSheet/BottomSheet.js +173 -0
  39. package/dist/components/BottomSheet/BottomSheetStyles.js +48 -0
  40. package/dist/components/Buttons/PrimaryButton/PrimaryButton.js +50 -0
  41. package/dist/components/Buttons/RadioButton/RadioButton.js +24 -0
  42. package/dist/components/Buttons/TextButton/TextButton.js +44 -0
  43. package/dist/components/CheckButton/CheckButton.js +36 -0
  44. package/dist/components/CommonModal/CommonModel.js +79 -0
  45. package/dist/components/CommonModal/ModalTypes.js +10 -0
  46. package/dist/components/Confetti/ConfettiBurst.js +120 -0
  47. package/dist/components/Confetti/FallingConfetti.js +190 -0
  48. package/dist/components/Confetti/MultiConfettiBurst.js +73 -0
  49. package/dist/components/Coupon/CouponCard.js +47 -0
  50. package/dist/components/Coupon/CouponStyles.js +54 -0
  51. package/dist/components/Footer/Footer.js +177 -0
  52. package/dist/components/Footer/MServiceFooter/MServiceFooter.js +103 -0
  53. package/dist/components/Footer/OnButtonFooter/OneButtonFooter.js +65 -0
  54. package/dist/components/Footer/PlanSummaryFooter/SummaryFooter.js +180 -0
  55. package/dist/components/Footer/PrimeAoFooter/PrimeAoFooter.js +193 -0
  56. package/dist/components/Footer/UpgradeFooter/UpgradeFooter.js +89 -0
  57. package/dist/components/Footer/UpgradeFooter/styles.js +73 -0
  58. package/dist/components/GradientBorderContainer/GradientBorderContainer.js +79 -0
  59. package/dist/components/GradientText/GradientText.js +60 -0
  60. package/dist/components/Header/ManageAppHeader.js +71 -0
  61. package/dist/components/HighlightedText/HighlightedText.js +53 -0
  62. package/dist/components/Input/OtpInput.js +105 -0
  63. package/dist/components/Loader/Loader.js +39 -0
  64. package/dist/components/MServicePaymentMethod/MServicePaymentMethod.js +395 -0
  65. package/dist/components/MicroDrama/MicroDramaBanner.js +67 -0
  66. package/dist/components/MicroDrama/MicroDramaCard.js +33 -0
  67. package/dist/components/MicroDrama/styles.js +29 -0
  68. package/dist/components/OfferCard/OfferCard.js +100 -0
  69. package/dist/components/PaymentMethod/PaymentMethod.js +370 -0
  70. package/dist/components/Plan/CurrentPlanCard.js +138 -0
  71. package/dist/components/Plan/PlanCard.js +268 -0
  72. package/dist/components/Plan/PlanCardStyles.js +371 -0
  73. package/dist/components/Plan/RenderAppIcons.js +115 -0
  74. package/dist/components/Plan/SpecialPlanCard.js +272 -0
  75. package/dist/components/PopUps/CancelPopUp/CancelPopUp.js +190 -0
  76. package/dist/components/PopUps/ConfettiAnimation.js +172 -0
  77. package/dist/components/PopUps/ConfettiBurst.js +142 -0
  78. package/dist/components/PopUps/CouponPopUp/CouponPopUp.js +185 -0
  79. package/dist/components/PopUps/ErrorMsgPopup/ErrorMsgPopup.js +104 -0
  80. package/dist/components/PopUps/InternetErrorPopUp/InternetErrorPopUp.js +122 -0
  81. package/dist/components/PopUps/MServicePopUp/MServicePopUp.js +155 -0
  82. package/dist/components/PopUps/MpinPopUp/MpinPopUp.js +193 -0
  83. package/dist/components/PopUps/OtpPopup/OtpPopup.js +345 -0
  84. package/dist/components/PopUps/PlanCancelledPopUp/PlanCancelledPopUp.js +183 -0
  85. package/dist/components/PopUps/PlanDetailPopup/PlanDetailPopup.js +121 -0
  86. package/dist/components/PopUps/PopUp/PopUp.js +171 -0
  87. package/dist/components/PrimeAddOn/PrimeAddOn.js +72 -0
  88. package/dist/components/PrimeAddOn/PrimeAddOnStyles.js +79 -0
  89. package/dist/components/PrimeAddOn/SummaryPage/PrimeAddOnBanner.js +109 -0
  90. package/dist/components/PrimeBanner/PrimeBanner.js +27 -0
  91. package/dist/components/PrimeBanner/PrimeBannerStyles.js +36 -0
  92. package/dist/components/SectionItem/SectionItem.js +42 -0
  93. package/dist/components/Toast/Toast.js +71 -0
  94. package/dist/components/Toast/ToastStyle.js +62 -0
  95. package/dist/navigation/Routes.js +84 -0
  96. package/dist/navigation/RoutesConstants.js +18 -0
  97. package/dist/screens/AppDiscontinue/ChooseApp.js +325 -0
  98. package/dist/screens/AppDiscontinue/styles.js +89 -0
  99. package/dist/screens/AppsReplacement/AppsReplacement.js +359 -0
  100. package/dist/screens/AppsReplacement/styles.js +92 -0
  101. package/dist/screens/ChooseYourPlan/ChooseYourPlan.js +596 -0
  102. package/dist/screens/ChooseYourPlan/ChooseYourPlanStyles.js +28 -0
  103. package/dist/screens/ChooseYourPlan/OffersCarousel.js +146 -0
  104. package/dist/screens/CreateSession/CreateSession.js +620 -0
  105. package/dist/screens/MyPlan/MyPlan.js +429 -0
  106. package/dist/screens/MyPlan/MyPlanStyles.js +227 -0
  107. package/dist/screens/PaymentStatus/PaymentStatus.js +492 -0
  108. package/dist/screens/PaymentStatus/styles.js +68 -0
  109. package/dist/screens/PlanCancellation/CancelPlan.js +127 -0
  110. package/dist/screens/PlanCancellation/InfiniteAutoScroll.js +67 -0
  111. package/dist/screens/PlanCancellation/styles.js +83 -0
  112. package/dist/screens/PlanSummary/PlanSummary.js +748 -0
  113. package/dist/screens/PlanSummary/PlanSummaryStyles.js +385 -0
  114. package/dist/screens/PrimePlanSummary/PrimePlanSummary.js +252 -0
  115. package/dist/screens/PrimePlanSummary/PrimePlanSummaryStyles.js +102 -0
  116. package/dist/screens/SelectApps/SelectApps.js +513 -0
  117. package/dist/screens/SelectApps/SelectAppsStyles.js +165 -0
  118. package/dist/screens/SplashScreen/SplashScreen.js +82 -0
  119. package/dist/services/apiCall/action.js +718 -0
  120. package/dist/services/apiCall/apiServiceUtils.js +136 -0
  121. package/dist/services/apiCall/constants.js +42 -0
  122. package/dist/services/apiCall/parser.js +92 -0
  123. package/dist/services/apiCall/reducer.js +591 -0
  124. package/dist/services/global/action.js +111 -0
  125. package/dist/services/global/commonReducer.js +97 -0
  126. package/dist/services/global/constants.js +22 -0
  127. package/dist/services/serviceCommonHandler.js +220 -0
  128. package/dist/store/configureStore.js +13 -0
  129. package/dist/store/rootReducer.js +14 -0
  130. package/dist/utils/commonUtils.js +381 -0
  131. package/dist/utils/fontUtils.js +13 -0
  132. package/dist/utils/string.js +101 -0
  133. package/package.json +53 -0
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _reactNative = require("react-native");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _styles = _interopRequireDefault(require("./styles"));
11
+ var _ManageAppHeader = _interopRequireDefault(require("../../components/Header/ManageAppHeader"));
12
+ var _reactRedux = require("react-redux");
13
+ var _native = require("@react-navigation/native");
14
+ var _action = require("../../services/global/action");
15
+ var _Loader = _interopRequireDefault(require("../../components/Loader/Loader"));
16
+ var _commonUtils = require("../../utils/commonUtils");
17
+ var _AppConstant = require("../../assets/AppConstant");
18
+ var _serviceCommonHandler = require("../../services/serviceCommonHandler");
19
+ var _reactNativeFastImage = _interopRequireDefault(require("react-native-fast-image"));
20
+ var _InfiniteAutoScroll = _interopRequireDefault(require("./InfiniteAutoScroll"));
21
+ var _OneButtonFooter = _interopRequireDefault(require("../../components/Footer/OnButtonFooter/OneButtonFooter"));
22
+ var _TextButton = _interopRequireDefault(require("../../components/Buttons/TextButton/TextButton"));
23
+ var _PrimaryButton = _interopRequireDefault(require("../../components/Buttons/PrimaryButton/PrimaryButton"));
24
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
25
+ const CancelPlan = () => {
26
+ const dispatch = (0, _reactRedux.useDispatch)();
27
+ const navigation = (0, _native.useNavigation)();
28
+ const route = (0, _native.useRoute)();
29
+ const {
30
+ onClose,
31
+ onReady
32
+ } = route === null || route === void 0 ? void 0 : route.params;
33
+ const [pageData, setPageData] = (0, _react.useState)(null);
34
+ const [render, setRender] = (0, _react.useState)(false);
35
+ const {
36
+ isLoading
37
+ } = (0, _reactRedux.useSelector)(state => state.commonReducer);
38
+ const fetchPageData = (0, _react.useCallback)(async () => {
39
+ dispatch((0, _action.showLoader)());
40
+ try {
41
+ const url = "https://uatmanageapps.tataplaybinge.com/cms-assets/v1/app-data/retention_page.json?v=52.0";
42
+ // const apiPath = AppConstant.getApiUrlFromManifest("rentention_page");
43
+
44
+ const responseObj = await (0, _commonUtils.fetchWithHeaders)(url, _serviceCommonHandler.serviceConsts.method.get);
45
+ if (responseObj && responseObj.status === "SUCCESS") {
46
+ var _responseObj$data;
47
+ setPageData(responseObj === null || responseObj === void 0 || (_responseObj$data = responseObj.data) === null || _responseObj$data === void 0 ? void 0 : _responseObj$data.field_json_data);
48
+ setRender(true);
49
+ dispatch((0, _action.hideLoader)());
50
+ } else {
51
+ dispatch((0, _action.hideLoader)());
52
+ setRender(true);
53
+ dispatch((0, _action.setApiError)("Something went wrong. Please try again later", true));
54
+ }
55
+ } catch (error) {
56
+ dispatch((0, _action.hideLoader)());
57
+ setRender(true);
58
+ (0, _commonUtils.handleError)(error);
59
+ } finally {
60
+ onReady === null || onReady === void 0 || onReady();
61
+ }
62
+ }, [onReady]);
63
+ (0, _react.useEffect)(() => {
64
+ fetchPageData();
65
+ }, []);
66
+ const handleCancellation = () => {};
67
+ const handlePlanClick = () => {};
68
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
69
+ style: _styles.default.container
70
+ }, /*#__PURE__*/_react.default.createElement(_ManageAppHeader.default, {
71
+ title: (pageData === null || pageData === void 0 ? void 0 : pageData.title) ?? "Leaving Already ?",
72
+ style: _styles.default.headerStyle
73
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
74
+ style: _styles.default.innerContainer
75
+ }, render && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
76
+ style: _styles.default.scrollView,
77
+ contentContainerStyle: _styles.default.scrollViewContent
78
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
79
+ style: _styles.default.subTitle
80
+ }, pageData === null || pageData === void 0 ? void 0 : pageData.desc), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
81
+ style: _styles.default.listContainer
82
+ }, /*#__PURE__*/_react.default.createElement(_InfiniteAutoScroll.default, {
83
+ data: pageData === null || pageData === void 0 ? void 0 : pageData.appBucket,
84
+ renderItem: ({
85
+ item
86
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
87
+ style: _styles.default.iconWrapper
88
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeFastImage.default, {
89
+ source: {
90
+ uri: `${_serviceCommonHandler.serviceConsts.baseUrls.imageBaseUrl}${item}.png`
91
+ },
92
+ style: _styles.default.appIcon,
93
+ resizeMode: "contain"
94
+ })),
95
+ style: _styles.default.marqueeList
96
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
97
+ style: _styles.default.watchDeviceText
98
+ }, pageData === null || pageData === void 0 ? void 0 : pageData.watchDevice), /*#__PURE__*/_react.default.createElement(PlanCard, {
99
+ item: {},
100
+ pageData: pageData === null || pageData === void 0 ? void 0 : pageData.card,
101
+ onClick: handlePlanClick
102
+ })), /*#__PURE__*/_react.default.createElement(_OneButtonFooter.default, {
103
+ buttonComponent: () => /*#__PURE__*/_react.default.createElement(_TextButton.default, {
104
+ title: "Confirm Cancellation",
105
+ onPress: handleCancellation
106
+ })
107
+ })), isLoading && /*#__PURE__*/_react.default.createElement(_Loader.default, null)));
108
+ };
109
+ const PlanCard = ({
110
+ item = {},
111
+ pageData,
112
+ onClick
113
+ }) => {
114
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
115
+ style: _styles.default.planCard
116
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
117
+ style: _styles.default.planHeading
118
+ }, `13 ${pageData === null || pageData === void 0 ? void 0 : pageData.title}`, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
119
+ style: _styles.default.priceHeading
120
+ }, " ₹199/month")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
121
+ style: _styles.default.benefitText
122
+ }, (pageData === null || pageData === void 0 ? void 0 : pageData.chooseApp) + (pageData === null || pageData === void 0 ? void 0 : pageData.currentCount)), /*#__PURE__*/_react.default.createElement(_PrimaryButton.default, {
123
+ title: pageData === null || pageData === void 0 ? void 0 : pageData.primaryBtn,
124
+ onPress: onClick
125
+ }));
126
+ };
127
+ var _default = exports.default = CancelPlan;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _AppConstant = require("../../assets/AppConstant");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const AnimatedFlatList = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.FlatList);
13
+ const MIN_REPEAT = 4;
14
+ const InfiniteAutoScroll = ({
15
+ data = [],
16
+ itemWidth = 48,
17
+ renderItem,
18
+ style
19
+ }) => {
20
+ const listRef = (0, _reactNativeReanimated.useAnimatedRef)();
21
+ const ratio = _AppConstant.AppConstant.dimension.aspectRatio;
22
+ const ITEM_WIDTH = itemWidth * ratio;
23
+ const scrollX = (0, _reactNativeReanimated.useSharedValue)(0);
24
+ const SCROLL_SPEED = 1;
25
+ const originalWidth = ITEM_WIDTH * data.length;
26
+ const [repeatCount, setRepeatCount] = (0, _react.useState)(MIN_REPEAT);
27
+ const repeatedData = (0, _react.useMemo)(() => {
28
+ return Array.from({
29
+ length: repeatCount
30
+ }, () => data).flat();
31
+ }, [data, repeatCount]);
32
+ (0, _reactNativeReanimated.useFrameCallback)(() => {
33
+ "worklet";
34
+
35
+ if (!originalWidth) return;
36
+ scrollX.value += SCROLL_SPEED;
37
+ if (scrollX.value >= originalWidth * 2) {
38
+ scrollX.value -= originalWidth * 1.165;
39
+ }
40
+ (0, _reactNativeReanimated.scrollTo)(listRef, scrollX.value, 0, false);
41
+ });
42
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
43
+ onLayout: e => {
44
+ const containerWidth = e.nativeEvent.layout.width;
45
+ const neededRepeat = Math.ceil((containerWidth + originalWidth) / originalWidth);
46
+ setRepeatCount(Math.max(MIN_REPEAT, neededRepeat + 1));
47
+ },
48
+ style: {
49
+ overflow: "hidden"
50
+ }
51
+ }, /*#__PURE__*/_react.default.createElement(AnimatedFlatList, {
52
+ ref: listRef,
53
+ data: repeatedData,
54
+ horizontal: true,
55
+ scrollEnabled: false,
56
+ showsHorizontalScrollIndicator: false,
57
+ keyExtractor: (_, index) => index.toString(),
58
+ renderItem: renderItem,
59
+ getItemLayout: (_, index) => ({
60
+ length: ITEM_WIDTH,
61
+ offset: ITEM_WIDTH * index,
62
+ index
63
+ }),
64
+ style: style
65
+ }));
66
+ };
67
+ var _default = exports.default = InfiniteAutoScroll;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _AppConstant = require("../../assets/AppConstant");
9
+ var _fontUtils = require("../../utils/fontUtils");
10
+ var _commonUtils = require("../../utils/commonUtils");
11
+ const ratio = _AppConstant.AppConstant.dimension.aspectRatio;
12
+ var _default = exports.default = styles = _reactNative.StyleSheet.create({
13
+ container: {
14
+ flex: 1
15
+ },
16
+ innerContainer: {
17
+ flex: 1,
18
+ alignItems: "center"
19
+ },
20
+ headerStyle: {
21
+ width: "100%"
22
+ },
23
+ iconWrapper: {
24
+ width: 48 * ratio,
25
+ height: 48 * ratio,
26
+ marginRight: 8 * ratio
27
+ },
28
+ appIcon: {
29
+ width: "100%",
30
+ height: "100%",
31
+ resizeMode: "contain",
32
+ borderRadius: 4 * ratio
33
+ },
34
+ marqueeList: {
35
+ marginTop: 20 * ratio
36
+ },
37
+ listContainer: {
38
+ height: 75 * ratio,
39
+ marginBottom: 15 * ratio
40
+ },
41
+ subTitle: {
42
+ color: "#FFFFFF",
43
+ fontFamily: _fontUtils.FONTS.Regular,
44
+ fontSize: (0, _AppConstant.normalizeFont)(16)
45
+ },
46
+ watchDeviceText: {
47
+ fontSize: (0, _AppConstant.normalizeFont)(12),
48
+ fontFamily: _fontUtils.FONTS.Medium,
49
+ color: "#FFFFFF",
50
+ marginBottom: 10 * ratio
51
+ },
52
+ scrollView: {
53
+ flex: 1
54
+ },
55
+ scrollViewContent: {
56
+ flex: 1,
57
+ alignItems: "center"
58
+ },
59
+ planCard: {
60
+ width: ((0, _commonUtils.isTablet)() ? 500 : 341) * ratio,
61
+ backgroundColor: "#EFE8FB",
62
+ alignItems: "center",
63
+ borderRadius: 10 * ratio,
64
+ paddingHorizontal: 16 * ratio,
65
+ paddingVertical: 16 * ratio,
66
+ marginTop: 10 * ratio
67
+ },
68
+ planHeading: {
69
+ fontSize: (0, _AppConstant.normalizeFont)(18),
70
+ fontFamily: _fontUtils.FONTS.SemiBold,
71
+ textAlign: "center"
72
+ },
73
+ priceHeading: {
74
+ fontSize: (0, _AppConstant.normalizeFont)(22)
75
+ },
76
+ benefitText: {
77
+ fontSize: (0, _AppConstant.normalizeFont)(13),
78
+ color: "#130036",
79
+ textAlign: "center",
80
+ fontFamily: _fontUtils.FONTS.Medium,
81
+ marginVertical: 10 * ratio
82
+ }
83
+ });