react-native-unit-components 1.0.1 → 1.0.3

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 (218) hide show
  1. package/README.md +75 -6
  2. package/android/src/main/AndroidManifest.xml +12 -1
  3. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
  4. package/android/src/main/java/com/unitreactnativecomponents/sharepdf/UNSharePDF.kt +75 -0
  5. package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +2 -2
  6. package/android/src/main/res/layout/un_view_google_push_provisioning.xml +1 -13
  7. package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +1 -1
  8. package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +1 -1
  9. package/android/src/main/res/xml/file_paths.xml +4 -0
  10. package/ios/UnitReactNativeComponentsViewManager.m +0 -1
  11. package/ios/UnitReactNativeComponentsViewManager.swift +6 -2
  12. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +103 -0
  13. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
  14. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +47 -0
  15. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
  16. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +63 -8
  17. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  18. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +18 -3
  19. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  20. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +56 -13
  21. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  22. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +4 -3
  23. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
  24. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +3 -3
  25. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
  26. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +114 -46
  27. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  28. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +4 -8
  29. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  30. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +95 -0
  31. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
  32. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +31 -0
  33. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
  34. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +65 -7
  35. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  36. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +56 -10
  37. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  38. package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +20 -0
  39. package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
  40. package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +44 -0
  41. package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  42. package/lib/commonjs/components/index.js +13 -0
  43. package/lib/commonjs/components/index.js.map +1 -1
  44. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +32 -12
  45. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
  46. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +1 -1
  47. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
  48. package/lib/commonjs/helpers/EventBus.js.map +1 -1
  49. package/lib/commonjs/messages/nativeMessages/cardMessage.js +36 -0
  50. package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -0
  51. package/lib/commonjs/messages/nativeMessages/index.js +0 -7
  52. package/lib/commonjs/messages/nativeMessages/index.js.map +1 -1
  53. package/lib/commonjs/messages/nativeMessages/sdkMessage.js +14 -0
  54. package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -0
  55. package/lib/commonjs/messages/webMessages/unitMessages.js +1 -0
  56. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
  57. package/lib/commonjs/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
  58. package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -0
  59. package/lib/commonjs/scripts/html/bodyHtml.js +1 -1
  60. package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -1
  61. package/lib/commonjs/scripts/html/bodyScript.js +22 -5
  62. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
  63. package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
  64. package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
  65. package/lib/commonjs/sharedTypes/index.js +13 -0
  66. package/lib/commonjs/sharedTypes/index.js.map +1 -1
  67. package/lib/commonjs/sharedTypes/onLoadResponse.types.js +6 -0
  68. package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -0
  69. package/lib/commonjs/sharedTypes/wallet.types.js +22 -0
  70. package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -0
  71. package/lib/commonjs/unitSdkManager/UnitSdk.api.js +5 -3
  72. package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
  73. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +18 -0
  74. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
  75. package/lib/commonjs/webComponent/WebComponent.js +35 -10
  76. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  77. package/lib/commonjs/webComponent/WebComponent.utils.js +41 -0
  78. package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -0
  79. package/lib/commonjs/webComponent/html.js +9 -1
  80. package/lib/commonjs/webComponent/html.js.map +1 -1
  81. package/lib/module/components/UNAccountComponent/UNAccountComponent.js +74 -0
  82. package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
  83. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +26 -0
  84. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
  85. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +56 -8
  86. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  87. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -2
  88. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  89. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +50 -12
  90. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  91. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -2
  92. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
  93. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +1 -1
  94. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
  95. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +111 -46
  96. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  97. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +5 -9
  98. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  99. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +68 -0
  100. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
  101. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +21 -0
  102. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
  103. package/lib/module/components/UNCardComponent/UNCardComponent.js +65 -9
  104. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  105. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +48 -9
  106. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  107. package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js +10 -0
  108. package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
  109. package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +29 -0
  110. package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  111. package/lib/module/components/index.js +1 -0
  112. package/lib/module/components/index.js.map +1 -1
  113. package/lib/module/helpers/BottomSheet/BottomSheet.js +30 -13
  114. package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
  115. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -2
  116. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
  117. package/lib/module/helpers/EventBus.js.map +1 -1
  118. package/lib/module/messages/nativeMessages/cardMessage.js +27 -0
  119. package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -0
  120. package/lib/module/messages/nativeMessages/index.js +1 -5
  121. package/lib/module/messages/nativeMessages/index.js.map +1 -1
  122. package/lib/module/messages/nativeMessages/sdkMessage.js +7 -0
  123. package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -0
  124. package/lib/module/messages/webMessages/unitMessages.js +1 -0
  125. package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
  126. package/lib/module/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
  127. package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -0
  128. package/lib/module/scripts/html/bodyHtml.js +1 -1
  129. package/lib/module/scripts/html/bodyHtml.js.map +1 -1
  130. package/lib/module/scripts/html/bodyScript.js +19 -3
  131. package/lib/module/scripts/html/bodyScript.js.map +1 -1
  132. package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
  133. package/lib/module/sharedTypes/card.types.js.map +1 -1
  134. package/lib/module/sharedTypes/index.js +1 -0
  135. package/lib/module/sharedTypes/index.js.map +1 -1
  136. package/lib/module/sharedTypes/onLoadResponse.types.js +2 -0
  137. package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -0
  138. package/lib/module/sharedTypes/wallet.types.js +14 -0
  139. package/lib/module/sharedTypes/wallet.types.js.map +1 -0
  140. package/lib/module/unitSdkManager/UnitSdk.api.js +4 -3
  141. package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
  142. package/lib/module/unitSdkManager/UnitSdkManager.js +13 -0
  143. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
  144. package/lib/module/webComponent/WebComponent.js +32 -10
  145. package/lib/module/webComponent/WebComponent.js.map +1 -1
  146. package/lib/module/webComponent/WebComponent.utils.js +27 -0
  147. package/lib/module/webComponent/WebComponent.utils.js.map +1 -0
  148. package/lib/module/webComponent/html.js +9 -2
  149. package/lib/module/webComponent/html.js.map +1 -1
  150. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +12 -0
  151. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +7 -0
  152. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -0
  153. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +4 -0
  154. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -1
  155. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -1
  156. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +9 -2
  157. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +2 -1
  158. package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.d.ts +6 -0
  159. package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.d.ts +17 -0
  160. package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
  161. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +9 -1
  162. package/lib/typescript/components/UNCardComponent/networking/common/UNNetworkConstants.d.ts +8 -0
  163. package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +1 -0
  164. package/lib/typescript/components/index.d.ts +1 -0
  165. package/lib/typescript/helpers/EventBus.d.ts +3 -3
  166. package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +28 -0
  167. package/lib/typescript/messages/nativeMessages/index.d.ts +7 -2
  168. package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +8 -0
  169. package/lib/typescript/messages/webMessages/unitMessages.d.ts +16 -6
  170. package/lib/typescript/scripts/html/bodyScript.d.ts +4 -1
  171. package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -3
  172. package/lib/typescript/sharedTypes/card.types.d.ts +6 -6
  173. package/lib/typescript/sharedTypes/index.d.ts +1 -0
  174. package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +18 -0
  175. package/lib/typescript/sharedTypes/wallet.types.d.ts +14 -0
  176. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +3 -0
  177. package/lib/typescript/webComponent/WebComponent.d.ts +4 -1
  178. package/lib/typescript/webComponent/WebComponent.utils.d.ts +2 -0
  179. package/package.json +2 -1
  180. package/src/components/UNAccountComponent/UNAccountComponent.tsx +82 -0
  181. package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +30 -0
  182. package/src/components/UNActivityComponent/UNActivityComponent.tsx +57 -8
  183. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +14 -2
  184. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +47 -13
  185. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -2
  186. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -1
  187. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +120 -44
  188. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +7 -10
  189. package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.ts +21 -0
  190. package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +74 -0
  191. package/src/components/UNCardComponent/UNCardComponent.tsx +68 -13
  192. package/src/components/UNCardComponent/UNCardComponent.utils.ts +47 -9
  193. package/src/components/UNCardComponent/networking/common/UNNetworkConstants.ts +11 -0
  194. package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +34 -0
  195. package/src/components/index.ts +1 -0
  196. package/src/helpers/BottomSheet/BottomSheet.styles.ts +2 -2
  197. package/src/helpers/BottomSheet/BottomSheet.tsx +28 -12
  198. package/src/helpers/EventBus.ts +3 -3
  199. package/src/messages/nativeMessages/cardMessage.ts +37 -0
  200. package/src/messages/nativeMessages/index.ts +14 -2
  201. package/src/messages/nativeMessages/sdkMessage.ts +11 -0
  202. package/src/messages/webMessages/unitMessages.ts +20 -7
  203. package/src/scripts/html/bodyHtml.ts +1 -1
  204. package/src/scripts/html/bodyScript.ts +21 -4
  205. package/src/sharedTypes/bookPayment.types.ts +3 -3
  206. package/src/sharedTypes/card.types.ts +6 -6
  207. package/src/sharedTypes/index.ts +1 -0
  208. package/src/sharedTypes/onLoadResponse.types.ts +27 -0
  209. package/src/sharedTypes/wallet.types.ts +17 -0
  210. package/src/unitSdkManager/UnitSdk.api.ts +3 -2
  211. package/src/unitSdkManager/UnitSdkManager.ts +12 -0
  212. package/src/webComponent/WebComponent.tsx +35 -12
  213. package/src/webComponent/WebComponent.utils.ts +26 -0
  214. package/src/webComponent/html.ts +9 -2
  215. package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
  216. package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
  217. /package/lib/typescript/nativeComponent/{UNNativeAddToWalletButton.d.ts → UnitAddToWalletButton.d.ts} +0 -0
  218. /package/src/nativeComponent/{UNNativeAddToWalletButton.tsx → UnitAddToWalletButton.tsx} +0 -0
@@ -1,17 +1,19 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
  import { Dimensions, View } from 'react-native';
3
3
  import { PageMessage } from '../../messages/webMessages/pageMessage';
4
4
  import { UnitMessage } from '../../messages/webMessages/unitMessages';
5
5
  import EventBus from '../../helpers/EventBus';
6
6
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
7
7
  import { useListenerToBus } from '../../hooks/listenerToBus';
8
- import { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';
8
+ import { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';
9
9
  import { PresentationMode } from '../../scripts/html/bodyHtml';
10
10
  import { CardMessage } from '../../messages/webMessages/cardMessage';
11
+ import { launchGetWallets } from './UNCardComponent.utils';
12
+ import { CardAddToWalletErrors, CardNativeMessage } from '../../messages/nativeMessages/cardMessage';
11
13
  export const UNCardComponent = props => {
12
14
  const [height, setHeight] = useState(0);
13
- const [requestRefreshEvent, setRequestRefreshEvent] = useState(null);
14
15
  const windowWidth = Dimensions.get('window').width;
16
+ const walletRef = useRef(null);
15
17
  const webRef = useRef(null);
16
18
 
17
19
  const cardStatusChanged = card => {
@@ -21,7 +23,17 @@ export const UNCardComponent = props => {
21
23
  };
22
24
 
23
25
  const requestRefresh = data => {
24
- setRequestRefreshEvent(data);
26
+ injectRefreshEventIfNeeded(webRef.current, data, props.cardId);
27
+ };
28
+
29
+ const startPushProvisioning = async data => {
30
+ if (data.cardId !== props.cardId) return;
31
+ onAddToWalletClicked();
32
+ };
33
+
34
+ const getAddToWalletStatus = data => {
35
+ if (data.cardId !== props.cardId) return;
36
+ getWallets();
25
37
  };
26
38
 
27
39
  useListenerToBus([{
@@ -30,20 +42,63 @@ export const UNCardComponent = props => {
30
42
  }, {
31
43
  busEventKey: UnitMessage.UNIT_REQUEST_REFRESH,
32
44
  action: requestRefresh
45
+ }, {
46
+ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING,
47
+ action: startPushProvisioning
48
+ }, {
49
+ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS,
50
+ action: getAddToWalletStatus
33
51
  }]);
34
- useEffect(() => {
35
- injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);
36
- }, [requestRefreshEvent]);
37
52
 
38
53
  const handleMessage = message => {
54
+ if (!message || !message.details) return;
55
+
39
56
  switch (message.type) {
40
57
  case UnitMessage.UNIT_REQUEST_RENDERING:
41
- EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, message.details.data);
42
- break;
58
+ {
59
+ const event = {
60
+ componentName: WebComponentType.card,
61
+ componentResourceId: props.cardId,
62
+ requestRenderingEvent: message.details
63
+ };
64
+ EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);
65
+ break;
66
+ }
43
67
 
44
68
  case PageMessage.PAGE_HEIGHT:
45
69
  setHeight(message.details.height);
46
70
  break;
71
+
72
+ case UnitMessage.UNIT_ON_LOAD:
73
+ props.onLoad && props.onLoad(message.details);
74
+ break;
75
+ }
76
+ };
77
+
78
+ const getWallets = async () => {
79
+ try {
80
+ const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule);
81
+ if (!walletResponse) return;
82
+ walletRef.current = walletResponse;
83
+ const walletStatus = {
84
+ status: walletResponse.status
85
+ };
86
+ EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);
87
+ } catch (error) {
88
+ console.error(error);
89
+ }
90
+ };
91
+
92
+ const onAddToWalletClicked = async () => {
93
+ try {
94
+ await launchStartCardProvisioning(props.pushProvisioningModule, walletRef.current);
95
+ } catch (error) {
96
+ if (error instanceof Error) {
97
+ const parsedError = JSON.parse(error.message);
98
+ if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;
99
+ }
100
+
101
+ console.log(error);
47
102
  }
48
103
  };
49
104
 
@@ -56,6 +111,7 @@ export const UNCardComponent = props => {
56
111
  type: WebComponentType.card,
57
112
  presentationMode: PresentationMode.Default,
58
113
  params: getCardParams(props),
114
+ theme: props.theme,
59
115
  script: getCardScript(),
60
116
  onMessage: message => handleMessage(message),
61
117
  width: windowWidth,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","PresentationMode","CardMessage","UNCardComponent","props","height","setHeight","requestRefreshEvent","setRequestRefreshEvent","windowWidth","get","width","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","busEventKey","CARD_STATUS_CHANGED","action","UNIT_REQUEST_REFRESH","current","cardId","handleMessage","message","type","UNIT_REQUEST_RENDERING","Instance","event","details","PAGE_HEIGHT","Default"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\n\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n theme?: string;\n onStatusChanged?: (card: UNCardData) => void;\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);\n const windowWidth = Dimensions.get('window').width;\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data);\n };\n\n useListenerToBus([\n { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },\n { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },\n ]);\n\n useEffect(() => {\n injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);\n }, [requestRefreshEvent]);\n\n const handleMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING:\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, (message.details as RequestRenderingEvent).data);\n break;\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,EAAmCC,QAAnC,QAAmD,OAAnD;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,SAAsBC,WAAtB,QAAyC,wCAAzC;AACA,SAAqDC,WAArD,QAAwE,yCAAxE;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,SAASC,YAAT,EAAuBC,gBAAvB,QAA+C,iCAA/C;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAEA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,0BAAvC,QAAyE,yBAAzE;AACA,SAASC,gBAAT,QAAiC,6BAAjC;AAEA,SAASC,WAAT,QAA4B,wCAA5B;AASA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAAiC;EAC9D,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBjB,QAAQ,CAAC,CAAD,CAApC;EACA,MAAM,CAACkB,mBAAD,EAAsBC,sBAAtB,IAAgDnB,QAAQ,CAA6B,IAA7B,CAA9D;EACA,MAAMoB,WAAW,GAAGnB,UAAU,CAACoB,GAAX,CAAe,QAAf,EAAyBC,KAA7C;EAEA,MAAMC,MAAM,GAAGxB,MAAM,CAAU,IAAV,CAArB;;EAEA,MAAMyB,iBAAiB,GAAIC,IAAD,IAAsB;IAC9C,IAAIV,KAAK,CAACW,eAAV,EAA2B;MACzBX,KAAK,CAACW,eAAN,CAAsBD,IAAtB;IACD;EACF,CAJD;;EAMA,MAAME,cAAc,GAAIC,IAAD,IAA+B;IACpDT,sBAAsB,CAACS,IAAD,CAAtB;EACD,CAFD;;EAIApB,gBAAgB,CAAC,CACf;IAAEqB,WAAW,EAAEhB,WAAW,CAACiB,mBAA3B;IAAgDC,MAAM,EAAEP;EAAxD,CADe,EAEf;IAAEK,WAAW,EAAEzB,WAAW,CAAC4B,oBAA3B;IAAiDD,MAAM,EAAEJ;EAAzD,CAFe,CAAD,CAAhB;EAKA7B,SAAS,CAAC,MAAM;IACda,0BAA0B,CAACY,MAAM,CAACU,OAAR,EAAiBf,mBAAjB,EAAsCH,KAAK,CAACmB,MAA5C,CAA1B;EACD,CAFQ,EAEN,CAAChB,mBAAD,CAFM,CAAT;;EAIA,MAAMiB,aAAa,GAAIC,OAAD,IAA6B;IACjD,QAAQA,OAAO,CAACC,IAAhB;MACE,KAAKjC,WAAW,CAACkC,sBAAjB;QACEjC,QAAQ,CAACkC,QAAT,CAAkBC,KAAlB,CAAwBpC,WAAW,CAACkC,sBAApC,EAA6DF,OAAO,CAACK,OAAT,CAA2Cb,IAAvG;QACA;;MACF,KAAKzB,WAAW,CAACuC,WAAjB;QACEzB,SAAS,CAAEmB,OAAO,CAACK,OAAT,CAAiCzB,MAAlC,CAAT;QACA;IANJ;EAQD,CATD;;EAWA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE;MAAEA;IAAF;EAAb,gBACE,oBAAC,YAAD;IACE,GAAG,EAAEO,MADP;IAEE,IAAI,EAAEhB,gBAAgB,CAACkB,IAFzB;IAGE,gBAAgB,EAAEb,gBAAgB,CAAC+B,OAHrC;IAIE,MAAM,EAAElC,aAAa,CAACM,KAAD,CAJvB;IAKE,MAAM,EAAEL,aAAa,EALvB;IAME,SAAS,EAAE0B,OAAO,IAAID,aAAa,CAACC,OAAD,CANrC;IAOE,KAAK,EAAEhB,WAPT;IAQE,YAAY,EAAE;EARhB,EADF,CADF;AAcD,CAnDM"}
1
+ {"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","CARD_STATUS_CHANGED","action","UNIT_REQUEST_REFRESH","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","Default","theme"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { ResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n theme?: string;\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n onLoad?: (response: ResponseUnitOnLoadEvent) => void\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n const walletRef = useRef<UNWallet | null>(null);\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus([\n { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },\n { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },\n { busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning },\n { busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus }\n ]);\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: CardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
@@ -1,24 +1,63 @@
1
+ import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';
1
2
  import { WebComponentType } from '../../webComponent/WebComponent';
2
- import { UnitMessage } from '../../messages/webMessages/unitMessages';
3
- import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
3
+ import { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';
4
+ import { UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';
4
5
  export const getCardParams = props => {
5
6
  return `
6
7
  card-id="${props.cardId}"
7
8
  customer-token="${props.customerToken}"
8
- theme="${props.theme ?? UnitSDK.getTheme()}"
9
+ enable-mobile-wallet="${!!props.pushProvisioningModule}"
9
10
  `;
10
11
  };
11
12
  export const getCardScript = () => {
12
- return `
13
- const dispatchRefreshEvent = (details) => {
14
- const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
15
- window.dispatchEvent(event)
16
- }
17
- `;
13
+ return DISPATCH_REQUEST_REFRESH;
18
14
  };
19
15
  export const injectRefreshEventIfNeeded = (currentWeb, requestRefreshEvent, cardId) => {
20
16
  if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {
21
17
  currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
22
18
  }
23
19
  };
20
+ export const launchGetWallets = async (customerToken, cardId, pushProvisioningModule) => {
21
+ try {
22
+ const encryptedPayload = await getMobileWalletPayload(customerToken, cardId);
23
+ if (!encryptedPayload) return null;
24
+ const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({
25
+ encPayload: encryptedPayload
26
+ }));
27
+ const parsedWalletsResponse = JSON.parse(walletsResponse);
28
+ const wallets = parsedWalletsResponse.wallets;
29
+ if (!wallets) return null;
30
+
31
+ if (wallets[0].code === UNWalletCode.Apple) {
32
+ return {
33
+ name: UNWalletName.Apple,
34
+ code: UNWalletCode.Apple,
35
+ status: wallets[0].status
36
+ };
37
+ } else {
38
+ const googleWallet = wallets.filter(wallet => {
39
+ return wallet.name === UNWalletName.Google;
40
+ });
41
+ if (!googleWallet) return;
42
+ return {
43
+ name: UNWalletName.Google,
44
+ code: UNWalletCode.Google,
45
+ status: googleWallet[0].status
46
+ };
47
+ }
48
+ } catch (error) {
49
+ return Promise.reject(error);
50
+ }
51
+ };
52
+ export const launchStartCardProvisioning = async (pushProvisioningModule, wallet) => {
53
+ try {
54
+ const response = await pushProvisioningModule.launchStartCardProvisioning(JSON.stringify({
55
+ walletCode: wallet === null || wallet === void 0 ? void 0 : wallet.code,
56
+ walletName: wallet === null || wallet === void 0 ? void 0 : wallet.name
57
+ }));
58
+ return response;
59
+ } catch (error) {
60
+ return Promise.reject(error);
61
+ }
62
+ };
24
63
  //# sourceMappingURL=UNCardComponent.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebComponentType","UnitMessage","UnitSDK","getCardParams","props","cardId","customerToken","theme","getTheme","getCardScript","UNIT_REQUEST_REFRESH","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport { RequestRefreshEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { UnitSDK } from '../../unitSdkManager/UnitSdkManager';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n theme=\"${props.theme ?? UnitSDK.getTheme()}\"\n `;\n};\n\nexport const getCardScript = () => {\n return `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_REFRESH}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n `;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n"],"mappings":"AAEA,SAASA,gBAAT,QAAiC,iCAAjC;AACA,SAA8BC,WAA9B,QAAiD,yCAAjD;AACA,SAASC,OAAT,QAAwB,qCAAxB;AAEA,OAAO,MAAMC,aAAa,GAAIC,KAAD,IAAiC;EAC5D,OAAQ;AACV,eAAeA,KAAK,CAACC,MAAO;AAC5B,sBAAsBD,KAAK,CAACE,aAAc;AAC1C,aAAaF,KAAK,CAACG,KAAN,IAAeL,OAAO,CAACM,QAAR,EAAmB;AAC/C,GAJE;AAKD,CANM;AAQP,OAAO,MAAMC,aAAa,GAAG,MAAM;EACjC,OAAQ;AACV;AACA,qCAAqCR,WAAW,CAACS,oBAAqB;AACtE;AACA;AACA,GALE;AAMD,CAPM;AASP,OAAO,MAAMC,0BAA0B,GAAG,CAACC,UAAD,EAA6BC,mBAA7B,EAA8ER,MAA9E,KAAiG;EACzI,IAAIQ,mBAAmB,IAAIA,mBAAmB,CAACC,YAApB,CAAiCC,QAAjC,CAA0Cf,gBAAgB,CAACgB,IAAjB,CAAsBC,OAAtB,EAA1C,CAAvB,IAAqGJ,mBAAmB,CAACK,UAApB,IAAkCb,MAA3I,EAAmJ;IACjJO,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEO,gBAAZ,CAA8B,yBAAwBC,IAAI,CAACC,SAAL,CAAeR,mBAAf,CAAoC,IAA1F;EACD;AACF,CAJM"}
1
+ {"version":3,"names":["DISPATCH_REQUEST_REFRESH","WebComponentType","getMobileWalletPayload","UNWalletCode","UNWalletName","getCardParams","props","cardId","customerToken","pushProvisioningModule","getCardScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify","launchGetWallets","encryptedPayload","walletsResponse","encPayload","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","error","Promise","reject","launchStartCardProvisioning","response","walletCode","walletName"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { NativeModules } from 'react-native';\nimport { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';\nimport { UNWallet, UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';\nimport type { RequestRefreshEvent } from '../../messages/webMessages/unitMessages';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n enable-mobile-wallet=\"${!!props.pushProvisioningModule}\"\n `;\n};\n\nexport const getCardScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const launchGetWallets = async (customerToken: string, cardId: string, pushProvisioningModule: typeof NativeModules) => {\n try {\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId);\n if (!encryptedPayload) return null;\n\n const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n return Promise.reject(error);\n }\n\n};\n\nexport const launchStartCardProvisioning = async (pushProvisioningModule: typeof NativeModules, wallet: UNWallet | null) => {\n try {\n const response = await pushProvisioningModule.launchStartCardProvisioning(\n JSON.stringify({\n walletCode: wallet?.code,\n walletName: wallet?.name\n }));\n return response;\n }\n\n catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';
2
+ export const APIHeaders = {
3
+ AUTHORIZATION: 'Authorization',
4
+ CONTENT_TYPE: 'application/vnd.api+json'
5
+ };
6
+ export const UNIT_SECURE_URL = {
7
+ [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',
8
+ [UNEnvironment.production]: 'https://secure.api.unit.co'
9
+ };
10
+ //# sourceMappingURL=UNNetworkConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UNEnvironment","APIHeaders","AUTHORIZATION","CONTENT_TYPE","UNIT_SECURE_URL","sandbox","production"],"sources":["UNNetworkConstants.ts"],"sourcesContent":["import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';\n\nexport const APIHeaders = {\n AUTHORIZATION: 'Authorization',\n CONTENT_TYPE: 'application/vnd.api+json',\n};\n\nexport const UNIT_SECURE_URL = {\n [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',\n [UNEnvironment.production]: 'https://secure.api.unit.co'\n};\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,2CAA9B;AAEA,OAAO,MAAMC,UAAU,GAAG;EACxBC,aAAa,EAAE,eADS;EAExBC,YAAY,EAAE;AAFU,CAAnB;AAKP,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACJ,aAAa,CAACK,OAAf,GAAyB,8BADI;EAE7B,CAACL,aAAa,CAACM,UAAf,GAA4B;AAFC,CAAxB"}
@@ -0,0 +1,29 @@
1
+ import axios from 'axios';
2
+ import { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';
3
+ import { UnitSDK } from 'react-native-unit-components';
4
+ const env = UnitSDK.getEnv();
5
+ export const getMobileWalletPayload = async (customerToken, cardId) => {
6
+ const headers = {
7
+ 'Content-Type': APIHeaders.CONTENT_TYPE,
8
+ 'Authorization': `Bearer ${customerToken}`
9
+ };
10
+ const data = {
11
+ data: {
12
+ attributes: {
13
+ signedNonce: UnitSDK.getSignedNonce()
14
+ }
15
+ }
16
+ };
17
+ const baseURL = `${UNIT_SECURE_URL[env]}/cards/${cardId}/mobile-wallet-payload`;
18
+
19
+ try {
20
+ const response = await axios.post(baseURL, data, {
21
+ headers: headers
22
+ });
23
+ const encryptedPayload = response.data.data.attributes.payload;
24
+ return encryptedPayload;
25
+ } catch (error) {
26
+ return Promise.reject(error);
27
+ }
28
+ };
29
+ //# sourceMappingURL=UNWalletPayloadRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["axios","APIHeaders","UNIT_SECURE_URL","UnitSDK","env","getEnv","getMobileWalletPayload","customerToken","cardId","headers","CONTENT_TYPE","data","attributes","signedNonce","getSignedNonce","baseURL","response","post","encryptedPayload","payload","error","Promise","reject"],"sources":["UNWalletPayloadRequest.ts"],"sourcesContent":["import axios from 'axios';\nimport { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';\nimport { UNEnvironment, UnitSDK } from 'react-native-unit-components';\n\nconst env = UnitSDK.getEnv();\n\nexport const getMobileWalletPayload = async (customerToken: string, cardId: string) => {\n const headers = {\n 'Content-Type': APIHeaders.CONTENT_TYPE,\n 'Authorization': `Bearer ${customerToken}`,\n };\n\n const data = {\n data: {\n attributes: {\n signedNonce: UnitSDK.getSignedNonce(),\n },\n },\n };\n\n const baseURL = `${UNIT_SECURE_URL[env as keyof typeof UNEnvironment]}/cards/${cardId}/mobile-wallet-payload`;\n try {\n const response = await axios.post(\n baseURL,\n data,\n {\n headers: headers,\n });\n const encryptedPayload = response.data.data.attributes.payload;\n return encryptedPayload;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,eAArB,QAA4C,8BAA5C;AACA,SAAwBC,OAAxB,QAAuC,8BAAvC;AAEA,MAAMC,GAAG,GAAGD,OAAO,CAACE,MAAR,EAAZ;AAEA,OAAO,MAAMC,sBAAsB,GAAG,OAAOC,aAAP,EAA8BC,MAA9B,KAAiD;EACrF,MAAMC,OAAO,GAAG;IACd,gBAAgBR,UAAU,CAACS,YADb;IAEd,iBAAkB,UAASH,aAAc;EAF3B,CAAhB;EAKA,MAAMI,IAAI,GAAG;IACXA,IAAI,EAAE;MACJC,UAAU,EAAE;QACVC,WAAW,EAAEV,OAAO,CAACW,cAAR;MADH;IADR;EADK,CAAb;EAQA,MAAMC,OAAO,GAAI,GAAEb,eAAe,CAACE,GAAD,CAAoC,UAASI,MAAO,wBAAtF;;EACA,IAAI;IACF,MAAMQ,QAAQ,GAAG,MAAMhB,KAAK,CAACiB,IAAN,CACrBF,OADqB,EAErBJ,IAFqB,EAGrB;MACEF,OAAO,EAAEA;IADX,CAHqB,CAAvB;IAMA,MAAMS,gBAAgB,GAAGF,QAAQ,CAACL,IAAT,CAAcA,IAAd,CAAmBC,UAAnB,CAA8BO,OAAvD;IACA,OAAOD,gBAAP;EACD,CATD,CASE,OAAOE,KAAP,EAAc;IACd,OAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;EACD;AACF,CA3BM"}
@@ -2,4 +2,5 @@ export * from './UNCardComponent/UNCardComponent';
2
2
  export * from './UNBottomSheetComponent/UNBottomSheetComponent';
3
3
  export * from './UNBookPaymentComponent/UNBookPaymentComponent';
4
4
  export * from './UNActivityComponent/UNActivityComponent';
5
+ export * from './UNAccountComponent/UNAccountComponent';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\n"],"mappings":"AAAA,cAAc,mCAAd;AACA,cAAc,iDAAd;AACA,cAAc,iDAAd;AACA,cAAc,2CAAd"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\nexport * from './UNAccountComponent/UNAccountComponent';\n"],"mappings":"AAAA,cAAc,mCAAd;AACA,cAAc,iDAAd;AACA,cAAc,iDAAd;AACA,cAAc,2CAAd;AACA,cAAc,yCAAd"}
@@ -4,8 +4,9 @@ import React, { useEffect, useRef, useState } from 'react';
4
4
  import { Animated, BackHandler, Dimensions, Easing, Image, KeyboardAvoidingView, PanResponder, TouchableOpacity, View } from 'react-native';
5
5
  import PropTypes from 'prop-types';
6
6
  import { CloseIcon } from '../../assets/images';
7
- import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
7
+ import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
8
8
  import { getStylesObject } from './BottomSheet.styles';
9
+ import { useAppStateListener } from '../../hooks/useAppStateListener';
9
10
 
10
11
  const BottomSheet = props => {
11
12
  const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;
@@ -15,6 +16,7 @@ const BottomSheet = props => {
15
16
  const [contentHeight, setContentHeight] = useState(undefined);
16
17
  const [currentHeight, setCurrentHeight] = useState(props.sliderMaxHeight);
17
18
  const [dy, setDy] = useState(0);
19
+ const isAppActive = useAppStateListener();
18
20
 
19
21
  const _parentPanResponder = PanResponder.create({
20
22
  onMoveShouldSetPanResponderCapture: (_, gestureState) => {
@@ -45,6 +47,13 @@ const BottomSheet = props => {
45
47
  }
46
48
  });
47
49
 
50
+ useEffect(() => {
51
+ if (!isAppActive && isPanelOpened) {
52
+ setContentHeight(0);
53
+
54
+ _dismiss(false);
55
+ }
56
+ }, [isAppActive]);
48
57
  useEffect(() => {
49
58
  if (props.isOpen && !isPanelOpened) {
50
59
  fadeIn();
@@ -64,23 +73,29 @@ const BottomSheet = props => {
64
73
  }, []);
65
74
 
66
75
  const fadeIn = () => {
76
+ setIsPanelOpened(true);
67
77
  Animated.timing(fadeAnim, {
68
78
  toValue: 0.3,
69
79
  duration: 500,
70
80
  useNativeDriver: false
71
- }).start(() => {
72
- setIsPanelOpened(true);
73
- });
81
+ }).start();
74
82
  };
75
83
 
76
- const fadeOut = () => {
84
+ const fadeOut = function () {
85
+ let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
86
+
87
+ /*
88
+ withTimeout - most of the time we declare 'Close' after the animation is end.
89
+ In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)
90
+ */
91
+ setIsPanelOpened(false);
92
+ !withTimeout && props.onClose();
77
93
  Animated.timing(fadeAnim, {
78
94
  toValue: 0,
79
95
  duration: 500,
80
96
  useNativeDriver: false
81
97
  }).start(() => {
82
- setIsPanelOpened(false);
83
- props.onClose();
98
+ withTimeout && props.onClose();
84
99
  });
85
100
  };
86
101
 
@@ -97,6 +112,7 @@ const BottomSheet = props => {
97
112
  const {
98
113
  animationDuration
99
114
  } = props;
115
+ props.onOpen();
100
116
 
101
117
  if (contentHeight && currentHeight > sliderMaxHeight - contentHeight) {
102
118
  setToContentHeight(contentHeight);
@@ -132,7 +148,8 @@ const BottomSheet = props => {
132
148
  setToContentHeight(newContentHeight);
133
149
  };
134
150
 
135
- const _dismiss = () => {
151
+ const _dismiss = function () {
152
+ let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
136
153
  const {
137
154
  animationDuration
138
155
  } = props;
@@ -144,7 +161,7 @@ const BottomSheet = props => {
144
161
  }).start(() => {
145
162
  null;
146
163
  });
147
- fadeOut();
164
+ fadeOut(withTimeout);
148
165
  };
149
166
 
150
167
  const {
@@ -154,7 +171,7 @@ const BottomSheet = props => {
154
171
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
155
172
  style: styles.outsideContainer,
156
173
  activeOpacity: 1,
157
- onPress: _dismiss
174
+ onPress: () => _dismiss()
158
175
  }, /*#__PURE__*/React.createElement(Animated.View, {
159
176
  style: styles.animation
160
177
  })), /*#__PURE__*/React.createElement(Animated.View, _extends({}, _parentPanResponder.panHandlers, {
@@ -169,7 +186,7 @@ const BottomSheet = props => {
169
186
  }, /*#__PURE__*/React.createElement(TouchableOpacity, {
170
187
  activeOpacity: 1,
171
188
  style: styles.closeButton,
172
- onPress: _dismiss
189
+ onPress: () => _dismiss()
173
190
  }, /*#__PURE__*/React.createElement(Image, {
174
191
  source: CloseIcon
175
192
  })), /*#__PURE__*/React.createElement(View, {
@@ -179,7 +196,7 @@ const BottomSheet = props => {
179
196
  style: {
180
197
  height: props.height
181
198
  },
182
- keyboardVerticalOffset: props.height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE)
199
+ keyboardVerticalOffset: props.height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)
183
200
  }, children)))));
184
201
  };
185
202
 
@@ -196,7 +213,7 @@ BottomSheet.propTypes = {
196
213
  BottomSheet.defaultProps = {
197
214
  children: /*#__PURE__*/React.createElement(View, null),
198
215
  isOpen: true,
199
- sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE,
216
+ sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,
200
217
  animationDuration: 200,
201
218
  onOpen: () => null,
202
219
  onClose: () => null,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Dimensions","Easing","Image","KeyboardAvoidingView","PanResponder","TouchableOpacity","View","PropTypes","CloseIcon","BOTTOM_SHEET_MAX_PRECANTAGE_SIZE","getStylesObject","BottomSheet","props","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","styles","isPanelOpened","setIsPanelOpened","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","fadeIn","_dismiss","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","onClose","animationDuration","easing","quad","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","propTypes","oneOfType","node","bool","number","func","onOpen","defaultProps","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start(() => { setIsPanelOpened(true); });\n };\n\n const fadeOut = () => {\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n setIsPanelOpened(false);\n props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = () => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut();\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={_dismiss}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={_dismiss}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAA2BC,SAA3B,EAAsCC,MAAtC,EAA8CC,QAA9C,QAA8D,OAA9D;AACA,SACEC,QADF,EAEEC,WAFF,EAGEC,UAHF,EAIEC,MAJF,EAKEC,KALF,EAMEC,oBANF,EAQEC,YARF,EASEC,gBATF,EAUEC,IAVF,QAWO,cAXP;AAYA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SAASC,gCAAT,QAAiD,0EAAjD;AACA,SAASC,eAAT,QAAgC,sBAAhC;;AAeA,MAAMC,WAAW,GAAIC,KAAD,IAA6B;EAC/C,MAAMC,gBAAgB,GAAGjB,MAAM,CAAC,IAAIE,QAAQ,CAACgB,KAAb,CAAmBF,KAAK,CAACG,eAAzB,CAAD,CAAN,CAAkDC,OAA3E;EACA,MAAMC,QAAQ,GAAGrB,MAAM,CAAC,IAAIE,QAAQ,CAACgB,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BE,OAA/C;EACA,MAAME,MAAM,GAAGR,eAAe,CAACO,QAAD,CAA9B;EACA,MAAM,CAACE,aAAD,EAAgBC,gBAAhB,IAAoCvB,QAAQ,CAACe,KAAK,CAACS,MAAP,CAAlD;EACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC1B,QAAQ,CAAqB2B,SAArB,CAAlD;EAEA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC7B,QAAQ,CAASe,KAAK,CAACG,eAAf,CAAlD;EAEA,MAAM,CAACY,EAAD,EAAKC,KAAL,IAAc/B,QAAQ,CAAC,CAAD,CAA5B;;EAEA,MAAMgC,mBAAmB,GAAGzB,YAAY,CAAC0B,MAAb,CAAoB;IAC9CC,kCAAkC,EAAE,CAACC,CAAD,EAAIC,YAAJ,KAAqB;MACvD,OAAOrB,KAAK,CAACsB,6BAAN,IAAuCC,IAAI,CAACC,GAAL,CAASH,YAAY,CAACN,EAAtB,IAA4B,EAA1E;IACD,CAH6C;;IAI9CU,kBAAkB,CAACL,CAAD,EAAIC,YAAJ,EAAkB;MAClC,IAAIrB,KAAK,CAACsB,6BAAN,IAAuCD,YAAY,CAACN,EAAb,GAAkB,CAA7D,EAAgE;QAC9Df,KAAK,CAAC0B,mBAAN;MACD;;MACD,IAAIb,aAAa,GAAGQ,YAAY,CAACN,EAA7B,GAAkC,CAAtC,EAAyC;MACzC,IAAI,CAACf,KAAK,CAAC2B,wBAAP,IAAmCjB,aAAnC,IAAoDG,aAAa,GAAGQ,YAAY,CAACN,EAA7B,GAAkCZ,eAAe,GAAGO,aAA5G,EAA2H;MAC3HT,gBAAgB,CAAC2B,QAAjB,CAA0Bf,aAAa,GAAGQ,YAAY,CAACN,EAAvD;MACAC,KAAK,CAACK,YAAY,CAACN,EAAd,CAAL;IACD,CAZ6C;;IAa9Cc,qBAAqB,EAAE,MAAM;MAC3B,IAAId,EAAE,GAAG,CAAT,EAAY;QACVe,QAAQ;MACT,CAFD,MAEO,IAAI,CAAC9B,KAAK,CAAC2B,wBAAX,EAAqC;QAC1CjB,aAAa,IAAIqB,kBAAkB,CAACrB,aAAD,CAAnC;MACD,CAFM,MAEA,IAAIK,EAAE,GAAG,CAAT,EAAY;QACjBiB,MAAM;MACP,CAFM,MAEA;QACLA,MAAM;MACP;IACF;EAvB6C,CAApB,CAA5B;;EA0BAjD,SAAS,CAAC,MAAM;IACd,IAAIiB,KAAK,CAACS,MAAN,IAAgB,CAACF,aAArB,EAAoC;MAClC0B,MAAM;IACP,CAFD,MAEO,IAAI1B,aAAJ,EAAmB;MACxBI,gBAAgB,CAAC,CAAD,CAAhB;;MACAuB,QAAQ;IACT;EACF,CAPQ,EAON,CAAClC,KAAK,CAACS,MAAP,CAPM,CAAT;EASA1B,SAAS,CAAC,MAAM;IACdI,WAAW,CAACgD,gBAAZ,CAA6B,mBAA7B,EAAkDC,YAAlD;IACA,MAAMC,EAAE,GAAGpC,gBAAgB,CAACqC,WAAjB,CAA6BC,CAAC,IAAIzB,gBAAgB,CAACyB,CAAC,CAACC,KAAH,CAAlD,CAAX;IAEA,OAAQ,MAAM;MACZrD,WAAW,CAACsD,mBAAZ,CAAgC,mBAAhC,EAAqDL,YAArD;MACAnC,gBAAgB,CAACyC,cAAjB,CAAgCL,EAAhC;IACD,CAHD;EAID,CARQ,EAQN,EARM,CAAT;;EAUA,MAAMJ,MAAM,GAAG,MAAM;IACnB/C,QAAQ,CAACyD,MAAT,CAAgBtC,QAAhB,EAA0B;MACxBuC,OAAO,EAAE,GADe;MAExBC,QAAQ,EAAE,GAFc;MAGxBC,eAAe,EAAE;IAHO,CAA1B,EAIGC,KAJH,CAIS,MAAM;MAAEvC,gBAAgB,CAAC,IAAD,CAAhB;IAAyB,CAJ1C;EAKD,CAND;;EAQA,MAAMwC,OAAO,GAAG,MAAM;IACpB9D,QAAQ,CAACyD,MAAT,CAAgBtC,QAAhB,EAA0B;MACxBuC,OAAO,EAAE,CADe;MAExBC,QAAQ,EAAE,GAFc;MAGxBC,eAAe,EAAE;IAHO,CAA1B,EAIGC,KAJH,CAIS,MAAM;MACbvC,gBAAgB,CAAC,KAAD,CAAhB;MACAR,KAAK,CAACiD,OAAN;IACD,CAPD;EAQD,CATD;;EAWA,MAAMlB,kBAAkB,GAAIrB,aAAD,IAA2B;IACpDxB,QAAQ,CAACyD,MAAT,CAAgB1C,gBAAhB,EAAkC;MAChC4C,QAAQ,EAAE7C,KAAK,CAACkD,iBADgB;MAEhCC,MAAM,EAAE9D,MAAM,CAAC+D,IAFiB;MAGhCR,OAAO,EAAEzC,eAAe,GAAGO,aAHK;MAIhCoC,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH;EAMD,CAPD;;EASA,MAAMf,MAAM,GAAG,MAAM;IACnB,MAAM;MAAEkB;IAAF,IAAwBlD,KAA9B;;IAEA,IAAIU,aAAa,IAAIG,aAAa,GAAIV,eAAe,GAAGO,aAAxD,EAAwE;MACtEqB,kBAAkB,CAACrB,aAAD,CAAlB;MACA;IACD;;IAEDxB,QAAQ,CAACyD,MAAT,CAAgB1C,gBAAhB,EAAkC;MAChC4C,QAAQ,EAAEK,iBADsB;MAEhCC,MAAM,EAAE9D,MAAM,CAAC+D,IAFiB;MAGhCR,OAAO,EAAE,CAHuB;MAIhCE,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH;EAMD,CAdD;;EAgBA,MAAMjB,QAAQ,GAAG,MAAM;IACrB,IAAIpB,aAAa,IAAIG,aAAa,GAAIV,eAAe,GAAGO,aAAxD,EAAwE;MACtEwB,QAAQ;;MACR;IACD;;IAEDxB,aAAa,IAAIqB,kBAAkB,CAACrB,aAAD,CAAnC;EACD,CAPD;;EASA,MAAM0B,YAAY,GAAG,MAAM;IACzB7B,aAAa,IAAIuB,QAAQ,EAAzB;IACA,OAAOvB,aAAP;EACD,CAHD;;EAKA,MAAM8C,QAAQ,GAAId,CAAD,IAA0B;IACzC,MAAMe,gBAAgB,GAAGf,CAAC,CAACgB,WAAF,CAAcC,MAAd,CAAqBC,MAA9C;IAEA9C,gBAAgB,CAAC2C,gBAAD,CAAhB;IACAvB,kBAAkB,CAACuB,gBAAD,CAAlB;EACD,CALD;;EAOA,MAAMpB,QAAQ,GAAG,MAAM;IACrB,MAAM;MAAEgB;IAAF,IAAwBlD,KAA9B;IACAd,QAAQ,CAACyD,MAAT,CAAgB1C,gBAAhB,EAAkC;MAChC4C,QAAQ,EAAEK,iBADsB;MAEhCC,MAAM,EAAE9D,MAAM,CAAC+D,IAFiB;MAGhCR,OAAO,EAAEzC,eAHuB;MAIhC2C,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH,CAKS,MAAM;MACb;IACD,CAPD;IAQAC,OAAO;EACR,CAXD;;EAaA,MAAM;IACJ7C,eADI;IAEJuD;EAFI,IAGF1D,KAHJ;EAKA,oBACE,uDACE,oBAAC,gBAAD;IACE,KAAK,EAAEM,MAAM,CAACqD,gBADhB;IACkC,aAAa,EAAE,CADjD;IAEE,OAAO,EAAEzB;EAFX,gBAIE,oBAAC,QAAD,CAAU,IAAV;IACE,KAAK,EAAE5B,MAAM,CAACsD;EADhB,EAJF,CADF,eAUE,oBAAC,QAAD,CAAU,IAAV,eACM3C,mBAAmB,CAAC4C,WAD1B;IAEE,KAAK,EAAE,EACL,GAAGvD,MAAM,CAACwD,SADL;MAELL,MAAM,EAAEtD,eAFH;MAGL4D,SAAS,EAAE,CACT;QAAEC,UAAU,EAAE/D;MAAd,CADS;IAHN;EAFT,iBAUE,oBAAC,IAAD;IACE,KAAK,EAAEK,MAAM,CAAC2D;EADhB,gBAGE,oBAAC,gBAAD;IACE,aAAa,EAAE,CADjB;IAEE,KAAK,EAAE3D,MAAM,CAAC4D,WAFhB;IAGE,OAAO,EAAEhC;EAHX,gBAKE,oBAAC,KAAD;IAAO,MAAM,EAAEtC;EAAf,EALF,CAHF,eAWE,oBAAC,IAAD;IACE,QAAQ,EAAEyD;EADZ,gBAGE,oBAAC,oBAAD;IACE,QAAQ,EAAC,SADX;IAEE,KAAK,EAAE;MAAEI,MAAM,EAAEzD,KAAK,CAACyD;IAAhB,CAFT;IAGE,sBAAsB,EAAEzD,KAAK,CAACyD,MAAN,IAAgB,IAAI5D,gCAApB;EAH1B,GAKG6D,QALH,CAHF,CAXF,CAVF,CAVF,CADF;AA+CD,CA1LD;;AA4LA3D,WAAW,CAACoE,SAAZ,GAAwB;EACtBT,QAAQ,EAAE/D,SAAS,CAACyE,SAAV,CAAoB,CAACzE,SAAS,CAAC0E,IAAX,CAApB,CADY;EAEtB5D,MAAM,EAAEd,SAAS,CAAC2E,IAFI;EAGtBnE,eAAe,EAAER,SAAS,CAAC4E,MAHL;EAItBX,SAAS,EAAEjE,SAAS,CAAC6E,IAJC;EAKtBtB,iBAAiB,EAAEvD,SAAS,CAAC4E,MALP;EAMtBE,MAAM,EAAE9E,SAAS,CAAC6E,IANI;EAOtBvB,OAAO,EAAEtD,SAAS,CAAC6E,IAPG;EAQtB7C,wBAAwB,EAAEhC,SAAS,CAAC2E;AARd,CAAxB;AAWAvE,WAAW,CAAC2E,YAAZ,GAA2B;EACzBhB,QAAQ,eAAE,oBAAC,IAAD,OADe;EAEzBjD,MAAM,EAAE,IAFiB;EAGzBN,eAAe,EAAEf,UAAU,CAACuF,GAAX,CAAe,QAAf,EAAyBlB,MAAzB,GAAkC5D,gCAH1B;EAIzBqD,iBAAiB,EAAE,GAJM;EAKzBuB,MAAM,EAAE,MAAM,IALW;EAMzBxB,OAAO,EAAE,MAAM,IANU;EAOzBtB,wBAAwB,EAAE;AAPD,CAA3B;AAUA,eAAe5B,WAAf"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Dimensions","Easing","Image","KeyboardAvoidingView","PanResponder","TouchableOpacity","View","PropTypes","CloseIcon","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","getStylesObject","useAppStateListener","BottomSheet","props","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","styles","isPanelOpened","setIsPanelOpened","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","isAppActive","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","_dismiss","fadeIn","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","withTimeout","onClose","animationDuration","easing","quad","onOpen","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","propTypes","oneOfType","node","bool","number","func","defaultProps","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const isAppActive = useAppStateListener();\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (!isAppActive && isPanelOpened) {\n setContentHeight(0);\n _dismiss(false);\n }\n }, [isAppActive]);\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n setIsPanelOpened(true);\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start();\n };\n\n const fadeOut = (withTimeout = true) => {\n /*\n withTimeout - most of the time we declare 'Close' after the animation is end.\n In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)\n */\n setIsPanelOpened(false);\n !withTimeout && props.onClose();\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n withTimeout && props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n props.onOpen();\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = (withTimeout = true) => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut(withTimeout);\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={() => _dismiss()}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={() => _dismiss()}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAA2BC,SAA3B,EAAsCC,MAAtC,EAA8CC,QAA9C,QAA8D,OAA9D;AACA,SACEC,QADF,EAEEC,WAFF,EAGEC,UAHF,EAIEC,MAJF,EAKEC,KALF,EAMEC,oBANF,EAQEC,YARF,EASEC,gBATF,EAUEC,IAVF,QAWO,cAXP;AAYA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SAASC,gCAAT,QAAiD,0EAAjD;AACA,SAASC,eAAT,QAAgC,sBAAhC;AACA,SAASC,mBAAT,QAAoC,iCAApC;;AAeA,MAAMC,WAAW,GAAIC,KAAD,IAA6B;EAC/C,MAAMC,gBAAgB,GAAGlB,MAAM,CAAC,IAAIE,QAAQ,CAACiB,KAAb,CAAmBF,KAAK,CAACG,eAAzB,CAAD,CAAN,CAAkDC,OAA3E;EACA,MAAMC,QAAQ,GAAGtB,MAAM,CAAC,IAAIE,QAAQ,CAACiB,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BE,OAA/C;EACA,MAAME,MAAM,GAAGT,eAAe,CAACQ,QAAD,CAA9B;EACA,MAAM,CAACE,aAAD,EAAgBC,gBAAhB,IAAoCxB,QAAQ,CAACgB,KAAK,CAACS,MAAP,CAAlD;EACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC3B,QAAQ,CAAqB4B,SAArB,CAAlD;EAEA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC9B,QAAQ,CAASgB,KAAK,CAACG,eAAf,CAAlD;EAEA,MAAM,CAACY,EAAD,EAAKC,KAAL,IAAchC,QAAQ,CAAC,CAAD,CAA5B;EAEA,MAAMiC,WAAW,GAAGnB,mBAAmB,EAAvC;;EAEA,MAAMoB,mBAAmB,GAAG3B,YAAY,CAAC4B,MAAb,CAAoB;IAC9CC,kCAAkC,EAAE,CAACC,CAAD,EAAIC,YAAJ,KAAqB;MACvD,OAAOtB,KAAK,CAACuB,6BAAN,IAAuCC,IAAI,CAACC,GAAL,CAASH,YAAY,CAACP,EAAtB,IAA4B,EAA1E;IACD,CAH6C;;IAI9CW,kBAAkB,CAACL,CAAD,EAAIC,YAAJ,EAAkB;MAClC,IAAItB,KAAK,CAACuB,6BAAN,IAAuCD,YAAY,CAACP,EAAb,GAAkB,CAA7D,EAAgE;QAC9Df,KAAK,CAAC2B,mBAAN;MACD;;MACD,IAAId,aAAa,GAAGS,YAAY,CAACP,EAA7B,GAAkC,CAAtC,EAAyC;MACzC,IAAI,CAACf,KAAK,CAAC4B,wBAAP,IAAmClB,aAAnC,IAAoDG,aAAa,GAAGS,YAAY,CAACP,EAA7B,GAAkCZ,eAAe,GAAGO,aAA5G,EAA2H;MAC3HT,gBAAgB,CAAC4B,QAAjB,CAA0BhB,aAAa,GAAGS,YAAY,CAACP,EAAvD;MACAC,KAAK,CAACM,YAAY,CAACP,EAAd,CAAL;IACD,CAZ6C;;IAa9Ce,qBAAqB,EAAE,MAAM;MAC3B,IAAIf,EAAE,GAAG,CAAT,EAAY;QACVgB,QAAQ;MACT,CAFD,MAEO,IAAI,CAAC/B,KAAK,CAAC4B,wBAAX,EAAqC;QAC1ClB,aAAa,IAAIsB,kBAAkB,CAACtB,aAAD,CAAnC;MACD,CAFM,MAEA,IAAIK,EAAE,GAAG,CAAT,EAAY;QACjBkB,MAAM;MACP,CAFM,MAEA;QACLA,MAAM;MACP;IACF;EAvB6C,CAApB,CAA5B;;EA0BAnD,SAAS,CAAC,MAAM;IACd,IAAI,CAACmC,WAAD,IAAgBV,aAApB,EAAmC;MACjCI,gBAAgB,CAAC,CAAD,CAAhB;;MACAuB,QAAQ,CAAC,KAAD,CAAR;IACD;EACF,CALQ,EAKN,CAACjB,WAAD,CALM,CAAT;EAOAnC,SAAS,CAAC,MAAM;IACd,IAAIkB,KAAK,CAACS,MAAN,IAAgB,CAACF,aAArB,EAAoC;MAClC4B,MAAM;IACP,CAFD,MAEO,IAAI5B,aAAJ,EAAmB;MACxBI,gBAAgB,CAAC,CAAD,CAAhB;;MACAuB,QAAQ;IACT;EACF,CAPQ,EAON,CAAClC,KAAK,CAACS,MAAP,CAPM,CAAT;EASA3B,SAAS,CAAC,MAAM;IACdI,WAAW,CAACkD,gBAAZ,CAA6B,mBAA7B,EAAkDC,YAAlD;IACA,MAAMC,EAAE,GAAGrC,gBAAgB,CAACsC,WAAjB,CAA6BC,CAAC,IAAI1B,gBAAgB,CAAC0B,CAAC,CAACC,KAAH,CAAlD,CAAX;IAEA,OAAQ,MAAM;MACZvD,WAAW,CAACwD,mBAAZ,CAAgC,mBAAhC,EAAqDL,YAArD;MACApC,gBAAgB,CAAC0C,cAAjB,CAAgCL,EAAhC;IACD,CAHD;EAID,CARQ,EAQN,EARM,CAAT;;EAUA,MAAMH,MAAM,GAAG,MAAM;IACnB3B,gBAAgB,CAAC,IAAD,CAAhB;IACAvB,QAAQ,CAAC2D,MAAT,CAAgBvC,QAAhB,EAA0B;MACxBwC,OAAO,EAAE,GADe;MAExBC,QAAQ,EAAE,GAFc;MAGxBC,eAAe,EAAE;IAHO,CAA1B,EAIGC,KAJH;EAKD,CAPD;;EASA,MAAMC,OAAO,GAAG,YAAwB;IAAA,IAAvBC,WAAuB,uEAAT,IAAS;;IACtC;AACJ;AACA;AACA;IACI1C,gBAAgB,CAAC,KAAD,CAAhB;IACA,CAAC0C,WAAD,IAAgBlD,KAAK,CAACmD,OAAN,EAAhB;IACAlE,QAAQ,CAAC2D,MAAT,CAAgBvC,QAAhB,EAA0B;MACxBwC,OAAO,EAAE,CADe;MAExBC,QAAQ,EAAE,GAFc;MAGxBC,eAAe,EAAE;IAHO,CAA1B,EAIGC,KAJH,CAIS,MAAM;MACbE,WAAW,IAAIlD,KAAK,CAACmD,OAAN,EAAf;IACD,CAND;EAOD,CAdD;;EAgBA,MAAMnB,kBAAkB,GAAItB,aAAD,IAA2B;IACpDzB,QAAQ,CAAC2D,MAAT,CAAgB3C,gBAAhB,EAAkC;MAChC6C,QAAQ,EAAE9C,KAAK,CAACoD,iBADgB;MAEhCC,MAAM,EAAEjE,MAAM,CAACkE,IAFiB;MAGhCT,OAAO,EAAE1C,eAAe,GAAGO,aAHK;MAIhCqC,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH;EAMD,CAPD;;EASA,MAAMf,MAAM,GAAG,MAAM;IACnB,MAAM;MAAEmB;IAAF,IAAwBpD,KAA9B;IACAA,KAAK,CAACuD,MAAN;;IACA,IAAI7C,aAAa,IAAIG,aAAa,GAAIV,eAAe,GAAGO,aAAxD,EAAwE;MACtEsB,kBAAkB,CAACtB,aAAD,CAAlB;MACA;IACD;;IAEDzB,QAAQ,CAAC2D,MAAT,CAAgB3C,gBAAhB,EAAkC;MAChC6C,QAAQ,EAAEM,iBADsB;MAEhCC,MAAM,EAAEjE,MAAM,CAACkE,IAFiB;MAGhCT,OAAO,EAAE,CAHuB;MAIhCE,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH;EAMD,CAdD;;EAgBA,MAAMjB,QAAQ,GAAG,MAAM;IACrB,IAAIrB,aAAa,IAAIG,aAAa,GAAIV,eAAe,GAAGO,aAAxD,EAAwE;MACtEwB,QAAQ;;MACR;IACD;;IAEDxB,aAAa,IAAIsB,kBAAkB,CAACtB,aAAD,CAAnC;EACD,CAPD;;EASA,MAAM2B,YAAY,GAAG,MAAM;IACzB9B,aAAa,IAAIwB,QAAQ,EAAzB;IACA,OAAOxB,aAAP;EACD,CAHD;;EAKA,MAAMiD,QAAQ,GAAIhB,CAAD,IAA0B;IACzC,MAAMiB,gBAAgB,GAAGjB,CAAC,CAACkB,WAAF,CAAcC,MAAd,CAAqBC,MAA9C;IAEAjD,gBAAgB,CAAC8C,gBAAD,CAAhB;IACAzB,kBAAkB,CAACyB,gBAAD,CAAlB;EACD,CALD;;EAOA,MAAMvB,QAAQ,GAAG,YAAwB;IAAA,IAAvBgB,WAAuB,uEAAT,IAAS;IACvC,MAAM;MAAEE;IAAF,IAAwBpD,KAA9B;IACAf,QAAQ,CAAC2D,MAAT,CAAgB3C,gBAAhB,EAAkC;MAChC6C,QAAQ,EAAEM,iBADsB;MAEhCC,MAAM,EAAEjE,MAAM,CAACkE,IAFiB;MAGhCT,OAAO,EAAE1C,eAHuB;MAIhC4C,eAAe,EAAE;IAJe,CAAlC,EAKGC,KALH,CAKS,MAAM;MACb;IACD,CAPD;IAQAC,OAAO,CAACC,WAAD,CAAP;EACD,CAXD;;EAaA,MAAM;IACJ/C,eADI;IAEJ0D;EAFI,IAGF7D,KAHJ;EAKA,oBACE,uDACE,oBAAC,gBAAD;IACE,KAAK,EAAEM,MAAM,CAACwD,gBADhB;IACkC,aAAa,EAAE,CADjD;IAEE,OAAO,EAAE,MAAM5B,QAAQ;EAFzB,gBAIE,oBAAC,QAAD,CAAU,IAAV;IACE,KAAK,EAAE5B,MAAM,CAACyD;EADhB,EAJF,CADF,eAUE,oBAAC,QAAD,CAAU,IAAV,eACM7C,mBAAmB,CAAC8C,WAD1B;IAEE,KAAK,EAAE,EACL,GAAG1D,MAAM,CAAC2D,SADL;MAELL,MAAM,EAAEzD,eAFH;MAGL+D,SAAS,EAAE,CACT;QAAEC,UAAU,EAAElE;MAAd,CADS;IAHN;EAFT,iBAUE,oBAAC,IAAD;IACE,KAAK,EAAEK,MAAM,CAAC8D;EADhB,gBAGE,oBAAC,gBAAD;IACE,aAAa,EAAE,CADjB;IAEE,KAAK,EAAE9D,MAAM,CAAC+D,WAFhB;IAGE,OAAO,EAAE,MAAMnC,QAAQ;EAHzB,gBAKE,oBAAC,KAAD;IAAO,MAAM,EAAEvC;EAAf,EALF,CAHF,eAWE,oBAAC,IAAD;IACE,QAAQ,EAAE6D;EADZ,gBAGE,oBAAC,oBAAD;IACE,QAAQ,EAAC,SADX;IAEE,KAAK,EAAE;MAAEI,MAAM,EAAE5D,KAAK,CAAC4D;IAAhB,CAFT;IAGE,sBAAsB,EAAE5D,KAAK,CAAC4D,MAAN,IAAgB,IAAIhE,gCAApB;EAH1B,GAKGiE,QALH,CAHF,CAXF,CAVF,CAVF,CADF;AA+CD,CAzMD;;AA2MA9D,WAAW,CAACuE,SAAZ,GAAwB;EACtBT,QAAQ,EAAEnE,SAAS,CAAC6E,SAAV,CAAoB,CAAC7E,SAAS,CAAC8E,IAAX,CAApB,CADY;EAEtB/D,MAAM,EAAEf,SAAS,CAAC+E,IAFI;EAGtBtE,eAAe,EAAET,SAAS,CAACgF,MAHL;EAItBX,SAAS,EAAErE,SAAS,CAACiF,IAJC;EAKtBvB,iBAAiB,EAAE1D,SAAS,CAACgF,MALP;EAMtBnB,MAAM,EAAE7D,SAAS,CAACiF,IANI;EAOtBxB,OAAO,EAAEzD,SAAS,CAACiF,IAPG;EAQtB/C,wBAAwB,EAAElC,SAAS,CAAC+E;AARd,CAAxB;AAWA1E,WAAW,CAAC6E,YAAZ,GAA2B;EACzBf,QAAQ,eAAE,oBAAC,IAAD,OADe;EAEzBpD,MAAM,EAAE,IAFiB;EAGzBN,eAAe,EAAEhB,UAAU,CAAC0F,GAAX,CAAe,QAAf,EAAyBjB,MAAzB,GAAkChE,gCAH1B;EAIzBwD,iBAAiB,EAAE,GAJM;EAKzBG,MAAM,EAAE,MAAM,IALW;EAMzBJ,OAAO,EAAE,MAAM,IANU;EAOzBvB,wBAAwB,EAAE;AAPD,CAA3B;AAUA,eAAe7B,WAAf"}
@@ -1,5 +1,5 @@
1
1
  import { Dimensions, StyleSheet } from 'react-native';
2
- import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
2
+ import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
3
3
  import { VARIABLES } from '../../styles/variables'; // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
4
 
5
5
  export const getStylesObject = fadeAnim => {
@@ -19,7 +19,7 @@ export const getStylesObject = fadeAnim => {
19
19
  container: {
20
20
  position: 'relative',
21
21
  flex: 1,
22
- marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE),
22
+ marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE),
23
23
  shadowColor: VARIABLES.COLORS.BLACK,
24
24
  shadowOffset: {
25
25
  width: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","StyleSheet","BOTTOM_SHEET_MAX_PRECANTAGE_SIZE","VARIABLES","getStylesObject","fadeAnim","create","outsideContainer","position","top","bottom","right","left","animation","backgroundColor","flex","opacity","container","marginTop","get","height","shadowColor","COLORS","BLACK","shadowOffset","width","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","WHITE","overflow","lineContainer","alignItems","line","borderRadius","SILVER_FLAKE","outerContent","innerContent","closeButton","display","justifyContent","padding","zIndex"],"sources":["BottomSheet.styles.ts"],"sourcesContent":["import { Dimensions, StyleSheet } from 'react-native';\nimport { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { VARIABLES } from '../../styles/variables';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getStylesObject = (fadeAnim: any) => {\n return StyleSheet.create({\n outsideContainer: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0\n },\n animation: {\n backgroundColor: 'black',\n flex: 1,\n opacity: fadeAnim,\n },\n container: {\n position: 'relative',\n flex: 1,\n marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE),\n shadowColor: VARIABLES.COLORS.BLACK,\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n elevation: 12,\n borderTopLeftRadius: 15,\n borderTopRightRadius: 15,\n backgroundColor: VARIABLES.COLORS.WHITE,\n overflow: 'hidden'\n },\n lineContainer: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n alignItems: 'center'\n },\n line: {\n width: 35,\n height: 4,\n borderRadius: 2,\n marginTop: 18,\n backgroundColor: VARIABLES.COLORS.SILVER_FLAKE,\n },\n outerContent: {\n flex: -1,\n },\n innerContent: {\n flex: -1,\n },\n closeButton: {\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 36,\n height: 36,\n backgroundColor: VARIABLES.COLORS.WHITE,\n borderRadius: 18,\n padding: 7,\n top: 12,\n right: 12,\n zIndex: 100\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,UAArB,QAAuC,cAAvC;AACA,SAASC,gCAAT,QAAiD,0EAAjD;AACA,SAASC,SAAT,QAA0B,wBAA1B,C,CAEA;;AACA,OAAO,MAAMC,eAAe,GAAIC,QAAD,IAAmB;EAChD,OAAOJ,UAAU,CAACK,MAAX,CAAkB;IACvBC,gBAAgB,EAAE;MAChBC,QAAQ,EAAE,UADM;MAEhBC,GAAG,EAAE,CAFW;MAGhBC,MAAM,EAAE,CAHQ;MAIhBC,KAAK,EAAE,CAJS;MAKhBC,IAAI,EAAE;IALU,CADK;IAQvBC,SAAS,EAAE;MACTC,eAAe,EAAE,OADR;MAETC,IAAI,EAAE,CAFG;MAGTC,OAAO,EAAEX;IAHA,CARY;IAavBY,SAAS,EAAE;MACTT,QAAQ,EAAE,UADD;MAETO,IAAI,EAAE,CAFG;MAGTG,SAAS,EAAElB,UAAU,CAACmB,GAAX,CAAe,QAAf,EAAyBC,MAAzB,IAAmC,IAAIlB,gCAAvC,CAHF;MAITmB,WAAW,EAAElB,SAAS,CAACmB,MAAV,CAAiBC,KAJrB;MAKTC,YAAY,EAAE;QACZC,KAAK,EAAE,CADK;QAEZL,MAAM,EAAE;MAFI,CALL;MASTM,aAAa,EAAE,IATN;MAUTC,YAAY,EAAE,IAVL;MAWTC,SAAS,EAAE,EAXF;MAYTC,mBAAmB,EAAE,EAZZ;MAaTC,oBAAoB,EAAE,EAbb;MAcThB,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAdzB;MAeTC,QAAQ,EAAE;IAfD,CAbY;IA8BvBC,aAAa,EAAE;MACbJ,mBAAmB,EAAE,EADR;MAEbC,oBAAoB,EAAE,EAFT;MAGbI,UAAU,EAAE;IAHC,CA9BQ;IAmCvBC,IAAI,EAAE;MACJV,KAAK,EAAE,EADH;MAEJL,MAAM,EAAE,CAFJ;MAGJgB,YAAY,EAAE,CAHV;MAIJlB,SAAS,EAAE,EAJP;MAKJJ,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBe;IAL9B,CAnCiB;IA0CvBC,YAAY,EAAE;MACZvB,IAAI,EAAE,CAAC;IADK,CA1CS;IA6CvBwB,YAAY,EAAE;MACZxB,IAAI,EAAE,CAAC;IADK,CA7CS;IAgDvByB,WAAW,EAAE;MACXhC,QAAQ,EAAE,UADC;MAEXiC,OAAO,EAAE,MAFE;MAGXP,UAAU,EAAE,QAHD;MAIXQ,cAAc,EAAE,QAJL;MAKXjB,KAAK,EAAE,EALI;MAMXL,MAAM,EAAE,EANG;MAOXN,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAPvB;MAQXK,YAAY,EAAE,EARH;MASXO,OAAO,EAAE,CATE;MAUXlC,GAAG,EAAE,EAVM;MAWXE,KAAK,EAAE,EAXI;MAYXiC,MAAM,EAAE;IAZG;EAhDU,CAAlB,CAAP;AA+DD,CAhEM"}
1
+ {"version":3,"names":["Dimensions","StyleSheet","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","VARIABLES","getStylesObject","fadeAnim","create","outsideContainer","position","top","bottom","right","left","animation","backgroundColor","flex","opacity","container","marginTop","get","height","shadowColor","COLORS","BLACK","shadowOffset","width","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","WHITE","overflow","lineContainer","alignItems","line","borderRadius","SILVER_FLAKE","outerContent","innerContent","closeButton","display","justifyContent","padding","zIndex"],"sources":["BottomSheet.styles.ts"],"sourcesContent":["import { Dimensions, StyleSheet } from 'react-native';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { VARIABLES } from '../../styles/variables';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getStylesObject = (fadeAnim: any) => {\n return StyleSheet.create({\n outsideContainer: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0\n },\n animation: {\n backgroundColor: 'black',\n flex: 1,\n opacity: fadeAnim,\n },\n container: {\n position: 'relative',\n flex: 1,\n marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE),\n shadowColor: VARIABLES.COLORS.BLACK,\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n elevation: 12,\n borderTopLeftRadius: 15,\n borderTopRightRadius: 15,\n backgroundColor: VARIABLES.COLORS.WHITE,\n overflow: 'hidden'\n },\n lineContainer: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n alignItems: 'center'\n },\n line: {\n width: 35,\n height: 4,\n borderRadius: 2,\n marginTop: 18,\n backgroundColor: VARIABLES.COLORS.SILVER_FLAKE,\n },\n outerContent: {\n flex: -1,\n },\n innerContent: {\n flex: -1,\n },\n closeButton: {\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 36,\n height: 36,\n backgroundColor: VARIABLES.COLORS.WHITE,\n borderRadius: 18,\n padding: 7,\n top: 12,\n right: 12,\n zIndex: 100\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,UAArB,QAAuC,cAAvC;AACA,SAASC,gCAAT,QAAiD,0EAAjD;AACA,SAASC,SAAT,QAA0B,wBAA1B,C,CAEA;;AACA,OAAO,MAAMC,eAAe,GAAIC,QAAD,IAAmB;EAChD,OAAOJ,UAAU,CAACK,MAAX,CAAkB;IACvBC,gBAAgB,EAAE;MAChBC,QAAQ,EAAE,UADM;MAEhBC,GAAG,EAAE,CAFW;MAGhBC,MAAM,EAAE,CAHQ;MAIhBC,KAAK,EAAE,CAJS;MAKhBC,IAAI,EAAE;IALU,CADK;IAQvBC,SAAS,EAAE;MACTC,eAAe,EAAE,OADR;MAETC,IAAI,EAAE,CAFG;MAGTC,OAAO,EAAEX;IAHA,CARY;IAavBY,SAAS,EAAE;MACTT,QAAQ,EAAE,UADD;MAETO,IAAI,EAAE,CAFG;MAGTG,SAAS,EAAElB,UAAU,CAACmB,GAAX,CAAe,QAAf,EAAyBC,MAAzB,IAAmC,IAAIlB,gCAAvC,CAHF;MAITmB,WAAW,EAAElB,SAAS,CAACmB,MAAV,CAAiBC,KAJrB;MAKTC,YAAY,EAAE;QACZC,KAAK,EAAE,CADK;QAEZL,MAAM,EAAE;MAFI,CALL;MASTM,aAAa,EAAE,IATN;MAUTC,YAAY,EAAE,IAVL;MAWTC,SAAS,EAAE,EAXF;MAYTC,mBAAmB,EAAE,EAZZ;MAaTC,oBAAoB,EAAE,EAbb;MAcThB,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAdzB;MAeTC,QAAQ,EAAE;IAfD,CAbY;IA8BvBC,aAAa,EAAE;MACbJ,mBAAmB,EAAE,EADR;MAEbC,oBAAoB,EAAE,EAFT;MAGbI,UAAU,EAAE;IAHC,CA9BQ;IAmCvBC,IAAI,EAAE;MACJV,KAAK,EAAE,EADH;MAEJL,MAAM,EAAE,CAFJ;MAGJgB,YAAY,EAAE,CAHV;MAIJlB,SAAS,EAAE,EAJP;MAKJJ,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBe;IAL9B,CAnCiB;IA0CvBC,YAAY,EAAE;MACZvB,IAAI,EAAE,CAAC;IADK,CA1CS;IA6CvBwB,YAAY,EAAE;MACZxB,IAAI,EAAE,CAAC;IADK,CA7CS;IAgDvByB,WAAW,EAAE;MACXhC,QAAQ,EAAE,UADC;MAEXiC,OAAO,EAAE,MAFE;MAGXP,UAAU,EAAE,QAHD;MAIXQ,cAAc,EAAE,QAJL;MAKXjB,KAAK,EAAE,EALI;MAMXL,MAAM,EAAE,EANG;MAOXN,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAPvB;MAQXK,YAAY,EAAE,EARH;MASXO,OAAO,EAAE,CATE;MAUXlC,GAAG,EAAE,EAVM;MAWXE,KAAK,EAAE,EAXI;MAYXiC,MAAM,EAAE;IAZG;EAhDU,CAAlB,CAAP;AA+DD,CAhEM"}
@@ -1 +1 @@
1
- {"version":3,"names":["EventBus","constructor","eventListeners","Instance","_instance","event","data","listeners","valueOf","Array","isArray","map","listener","addListener","push","removeListener","Object","keys","eventName","_remove","length","array","item","i","l","splice"],"sources":["EventBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { NativeMessage } from '../messages/nativeMessages';\nimport type { WebViewMessageType } from '../messages/webMessages';\n\nexport type BusEventKey = NativeMessage | WebViewMessageType\n\nexport default class EventBus {\n private static _instance: EventBus;\n\n private eventListeners: { [name: string]: Array<(data: any) => void> } = {};\n\n private constructor() {\n this.eventListeners = {};\n }\n\n public static get Instance() {\n return this._instance || (this._instance = new this());\n }\n\n public event(event: BusEventKey, data: any) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.map(listener => {\n if (typeof listener === 'function') {\n listener(data);\n }\n });\n }\n }\n\n public addListener(event: BusEventKey, listener: (data: any) => void) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.push(listener);\n } else {\n this.eventListeners[event.valueOf()] = [listener];\n }\n }\n\n public removeListener(listener: (data: any) => void) {\n Object.keys(this.eventListeners).map(eventName => {\n const listeners = this.eventListeners[eventName];\n if (listeners) {\n this._remove(listeners, listener);\n if (listeners.length === 0) {\n delete this.eventListeners[eventName];\n }\n }\n });\n }\n\n private _remove(array: Array<(data: any) => void>, item: (data: string) => void) {\n if (!array) return;\n for (let i = 0, l = array.length; i < l; i++) {\n if (item === array[i]) array.splice(i, 1);\n }\n }\n}\n"],"mappings":";;AAAA;AAMA,eAAe,MAAMA,QAAN,CAAe;EAKpBC,WAAW,GAAG;IAAA,wCAFmD,EAEnD;;IACpB,KAAKC,cAAL,GAAsB,EAAtB;EACD;;EAEyB,WAARC,QAAQ,GAAG;IAC3B,OAAO,KAAKC,SAAL,KAAmB,KAAKA,SAAL,GAAiB,IAAI,IAAJ,EAApC,CAAP;EACD;;EAEMC,KAAK,CAACA,KAAD,EAAqBC,IAArB,EAAgC;IAC1C,MAAMC,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACI,GAAV,CAAcC,QAAQ,IAAI;QACxB,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;UAClCA,QAAQ,CAACN,IAAD,CAAR;QACD;MACF,CAJD;IAKD;EACF;;EAEMO,WAAW,CAACR,KAAD,EAAqBO,QAArB,EAAoD;IACpE,MAAML,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACO,IAAV,CAAeF,QAAf;IACD,CAFD,MAEO;MACL,KAAKV,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,IAAuC,CAACI,QAAD,CAAvC;IACD;EACF;;EAEMG,cAAc,CAACH,QAAD,EAAgC;IACnDI,MAAM,CAACC,IAAP,CAAY,KAAKf,cAAjB,EAAiCS,GAAjC,CAAqCO,SAAS,IAAI;MAChD,MAAMX,SAAS,GAAG,KAAKL,cAAL,CAAoBgB,SAApB,CAAlB;;MACA,IAAIX,SAAJ,EAAe;QACb,KAAKY,OAAL,CAAaZ,SAAb,EAAwBK,QAAxB;;QACA,IAAIL,SAAS,CAACa,MAAV,KAAqB,CAAzB,EAA4B;UAC1B,OAAO,KAAKlB,cAAL,CAAoBgB,SAApB,CAAP;QACD;MACF;IACF,CARD;EASD;;EAEOC,OAAO,CAACE,KAAD,EAAoCC,IAApC,EAAkE;IAC/E,IAAI,CAACD,KAAL,EAAY;;IACZ,KAAK,IAAIE,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAGH,KAAK,CAACD,MAA1B,EAAkCG,CAAC,GAAGC,CAAtC,EAAyCD,CAAC,EAA1C,EAA8C;MAC5C,IAAID,IAAI,KAAKD,KAAK,CAACE,CAAD,CAAlB,EAAuBF,KAAK,CAACI,MAAN,CAAaF,CAAb,EAAgB,CAAhB;IACxB;EACF;;AAlD2B;;gBAATvB,Q"}
1
+ {"version":3,"names":["EventBus","constructor","eventListeners","Instance","_instance","event","data","listeners","valueOf","Array","isArray","map","listener","addListener","push","removeListener","Object","keys","eventName","_remove","length","array","item","i","l","splice"],"sources":["EventBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { NativeMessageType } from '../messages/nativeMessages';\nimport type { WebViewMessageType } from '../messages/webMessages';\n\nexport type BusEventKey = NativeMessageType | WebViewMessageType\n\nexport default class EventBus {\n private static _instance: EventBus;\n\n private eventListeners: { [name: string]: Array<(data: any) => void> } = {};\n\n private constructor() {\n this.eventListeners = {};\n }\n\n public static get Instance() {\n return this._instance || (this._instance = new this());\n }\n\n public event(event: BusEventKey, data?: any) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.map(listener => {\n if (typeof listener === 'function') {\n listener(data);\n }\n });\n }\n }\n\n public addListener(event: BusEventKey, listener: (data: any) => void) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.push(listener);\n } else {\n this.eventListeners[event.valueOf()] = [listener];\n }\n }\n\n public removeListener(listener: (data: any) => void) {\n Object.keys(this.eventListeners).map(eventName => {\n const listeners = this.eventListeners[eventName];\n if (listeners) {\n this._remove(listeners, listener);\n if (listeners.length === 0) {\n delete this.eventListeners[eventName];\n }\n }\n });\n }\n\n private _remove(array: Array<(data: any) => void>, item: (data: string) => void) {\n if (!array) return;\n for (let i = 0, l = array.length; i < l; i++) {\n if (item === array[i]) array.splice(i, 1);\n }\n }\n}\n"],"mappings":";;AAAA;AAMA,eAAe,MAAMA,QAAN,CAAe;EAKpBC,WAAW,GAAG;IAAA,wCAFmD,EAEnD;;IACpB,KAAKC,cAAL,GAAsB,EAAtB;EACD;;EAEyB,WAARC,QAAQ,GAAG;IAC3B,OAAO,KAAKC,SAAL,KAAmB,KAAKA,SAAL,GAAiB,IAAI,IAAJ,EAApC,CAAP;EACD;;EAEMC,KAAK,CAACA,KAAD,EAAqBC,IAArB,EAAiC;IAC3C,MAAMC,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACI,GAAV,CAAcC,QAAQ,IAAI;QACxB,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;UAClCA,QAAQ,CAACN,IAAD,CAAR;QACD;MACF,CAJD;IAKD;EACF;;EAEMO,WAAW,CAACR,KAAD,EAAqBO,QAArB,EAAoD;IACpE,MAAML,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACO,IAAV,CAAeF,QAAf;IACD,CAFD,MAEO;MACL,KAAKV,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,IAAuC,CAACI,QAAD,CAAvC;IACD;EACF;;EAEMG,cAAc,CAACH,QAAD,EAAgC;IACnDI,MAAM,CAACC,IAAP,CAAY,KAAKf,cAAjB,EAAiCS,GAAjC,CAAqCO,SAAS,IAAI;MAChD,MAAMX,SAAS,GAAG,KAAKL,cAAL,CAAoBgB,SAApB,CAAlB;;MACA,IAAIX,SAAJ,EAAe;QACb,KAAKY,OAAL,CAAaZ,SAAb,EAAwBK,QAAxB;;QACA,IAAIL,SAAS,CAACa,MAAV,KAAqB,CAAzB,EAA4B;UAC1B,OAAO,KAAKlB,cAAL,CAAoBgB,SAApB,CAAP;QACD;MACF;IACF,CARD;EASD;;EAEOC,OAAO,CAACE,KAAD,EAAoCC,IAApC,EAAkE;IAC/E,IAAI,CAACD,KAAL,EAAY;;IACZ,KAAK,IAAIE,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAGH,KAAK,CAACD,MAA1B,EAAkCG,CAAC,GAAGC,CAAtC,EAAyCD,CAAC,EAA1C,EAA8C;MAC5C,IAAID,IAAI,KAAKD,KAAK,CAACE,CAAD,CAAlB,EAAuBF,KAAK,CAACI,MAAN,CAAaF,CAAb,EAAgB,CAAhB;IACxB;EACF;;AAlD2B;;gBAATvB,Q"}
@@ -0,0 +1,27 @@
1
+ export let CardNativeMessage;
2
+
3
+ (function (CardNativeMessage) {
4
+ CardNativeMessage["CARD_GET_ADD_TO_WALLET_STATUS"] = "cardGetAddToWalletStatus";
5
+ CardNativeMessage["CARD_UPDATE_ADD_TO_WALLET_STATUS"] = "cardUpdateAddToWalletStatus";
6
+ CardNativeMessage["CARD_START_PUSH_PROVISIONING"] = "cardStartPushProvisioning";
7
+ })(CardNativeMessage || (CardNativeMessage = {}));
8
+
9
+ export let CardAddToWalletStatus;
10
+
11
+ (function (CardAddToWalletStatus) {
12
+ CardAddToWalletStatus[CardAddToWalletStatus["pending"] = 0] = "pending";
13
+ CardAddToWalletStatus["readyToProvisioning"] = "ReadyToProvision";
14
+ CardAddToWalletStatus["addedToWallet"] = "AlreadyProvisioned";
15
+ CardAddToWalletStatus["iosProvisionedInCurrentDevice"] = "ProvisionedInCurrentDevice";
16
+ CardAddToWalletStatus["iosProvisionedInPairedDevice"] = "ProvisionedInPairedDevice";
17
+ CardAddToWalletStatus["androidNotInstalled"] = "NotInstalled";
18
+ CardAddToWalletStatus["androidWalletSetupNotCompleted"] = "WalletSetupNotCompleted";
19
+ CardAddToWalletStatus["androidWalletAppUpdateAvailable"] = "WalletAppUpdateAvailable";
20
+ })(CardAddToWalletStatus || (CardAddToWalletStatus = {}));
21
+
22
+ export let CardAddToWalletErrors;
23
+
24
+ (function (CardAddToWalletErrors) {
25
+ CardAddToWalletErrors["closedNativeWalletScreen"] = "VP_ERROR_302";
26
+ })(CardAddToWalletErrors || (CardAddToWalletErrors = {}));
27
+ //# sourceMappingURL=cardMessage.js.map