react-native-firework-sdk 1.0.6-beta.2 → 1.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +2 -40
  3. package/android/build.gradle +6 -3
  4. package/android/gradle.properties +2 -1
  5. package/android/gradlew +0 -0
  6. package/android/proguard-rules.pro +22 -0
  7. package/android/publish.gradle +4 -3
  8. package/android/settings.gradle +1 -0
  9. package/android/src/main/AndroidManifest.xml +11 -2
  10. package/android/src/main/java/com/fireworksdk/bridge/FireworkSDKPackage.kt +27 -0
  11. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +226 -0
  12. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/constants/FWCommandConstant.kt +1 -1
  13. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/constants/FWVideoPlayerConstant.kt +13 -1
  14. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +9 -0
  15. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWEventName.kt +10 -1
  16. package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +9 -0
  17. package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +11 -0
  18. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +28 -0
  19. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedItemDetailsModel.kt +2 -1
  20. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +7 -0
  21. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +18 -0
  22. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedSource.kt +2 -1
  23. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedTitlePosition.kt +1 -1
  24. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoPlaybackDetails.kt +1 -1
  25. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +23 -0
  26. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoShoppingProduct.kt +1 -1
  27. package/android/src/main/java/com/fireworksdk/bridge/models/WeakProperty.kt +19 -0
  28. package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWInitializationProvider.kt +99 -0
  29. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +175 -0
  30. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWLiveStreamInterface.kt +5 -0
  31. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +9 -0
  32. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/models/FWVideoShoppingInterface.kt +1 -1
  33. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/models/FireworkSDKInterface.kt +4 -2
  34. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +88 -0
  35. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +64 -0
  36. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/module/FWVideoShoppingModule.kt +20 -14
  37. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/module/FireworkSDKModule.kt +23 -16
  38. package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +54 -0
  39. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/pages/FWVideoShoppingCartActivity.kt +4 -4
  40. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/utils/FWEventUtils.kt +46 -5
  41. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWJsonUtils.kt +1 -1
  42. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWLogUtils.kt +2 -2
  43. package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWUrlUtils.kt +1 -1
  44. package/android/src/main/java/com/fireworksdk/bridge/utils/FWVideoPlayerUtils.kt +94 -0
  45. package/android/src/main/res/layout/{fwrn_fragment_shoppingcart.xml → fw_bridge_fragment_container.xml} +1 -1
  46. package/android/src/main/res/layout/fw_bridge_fragment_playlistfeed.xml +18 -0
  47. package/android/src/main/res/layout/fw_bridge_fragment_shoppingcart.xml +8 -0
  48. package/android/src/main/res/layout/{fwrn_fragment_videofeed.xml → fw_bridge_fragment_videofeed.xml} +2 -1
  49. package/android/src/main/res/values/colors.xml +4 -0
  50. package/ios/{Component → Components}/VideoFeed.swift +29 -0
  51. package/ios/{Component → Components}/VideoFeedConfiguration.swift +1 -0
  52. package/ios/{Component → Components}/VideoFeedManager.m +0 -0
  53. package/ios/{Component → Components}/VideoFeedManager.swift +0 -0
  54. package/ios/{Component → Components}/VideoPlayerConfiguration.swift +0 -0
  55. package/ios/FireworkSdk.xcodeproj/project.pbxproj +206 -18
  56. package/ios/Models/{FireworkJsEvent.swift → NativeToRN/FireworkEventName.swift} +20 -0
  57. package/ios/Models/{FireworkSDK+JsModel.swift → NativeToRN/FireworkSDK+Json.swift} +33 -3
  58. package/ios/Models/{RCTConvert+FireworkSDKModule.swift → RNToNative/RCTConvert+FireworkSDKModule.swift} +20 -0
  59. package/ios/Models/{RCTConvert+Shopping.swift → RNToNative/RCTConvert+Shopping.swift} +0 -0
  60. package/ios/Models/{RCTConvert+VideoFeed.swift → RNToNative/RCTConvert+VideoFeed.swift} +0 -0
  61. package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +40 -0
  62. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.m +17 -0
  63. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +59 -0
  64. package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +13 -0
  65. package/ios/Modules/FireworkSDKModule/AdBadgeConfiguration.swift +18 -0
  66. package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -1
  67. package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +10 -19
  68. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +2 -1
  69. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +12 -4
  70. package/ios/Modules/LiveStream/LiveStreamModule.m +14 -0
  71. package/ios/Modules/LiveStream/LiveStreamModule.swift +43 -0
  72. package/lib/commonjs/FWNavigator.js +60 -0
  73. package/lib/commonjs/FWNavigator.js.map +1 -0
  74. package/lib/commonjs/FireworkSDK.js +71 -38
  75. package/lib/commonjs/FireworkSDK.js.map +1 -1
  76. package/lib/commonjs/LiveStream.js +60 -0
  77. package/lib/commonjs/LiveStream.js.map +1 -0
  78. package/lib/commonjs/VideoShopping.js +16 -15
  79. package/lib/commonjs/VideoShopping.js.map +1 -1
  80. package/lib/commonjs/components/NavigationContainer.js +36 -0
  81. package/lib/commonjs/components/NavigationContainer.js.map +1 -0
  82. package/lib/commonjs/components/VideoFeed.js +46 -2
  83. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  84. package/lib/commonjs/index.js +36 -0
  85. package/lib/commonjs/index.js.map +1 -1
  86. package/lib/commonjs/models/AdBadgeConfiguration.js +2 -0
  87. package/lib/commonjs/models/{ADConfig.js.map → AdBadgeConfiguration.js.map} +0 -0
  88. package/lib/commonjs/models/AdConfig.js +2 -0
  89. package/lib/{module/models/ADConfig.js.map → commonjs/models/AdConfig.js.map} +0 -0
  90. package/lib/commonjs/models/FWEventName.js +24 -0
  91. package/lib/commonjs/models/FWEventName.js.map +1 -0
  92. package/lib/commonjs/models/FWEvents.js +0 -14
  93. package/lib/commonjs/models/FWEvents.js.map +1 -1
  94. package/lib/commonjs/models/LiveStreamChatEventName.js +15 -0
  95. package/lib/commonjs/models/LiveStreamChatEventName.js.map +1 -0
  96. package/lib/commonjs/models/LiveStreamEventDetails.js +2 -0
  97. package/lib/commonjs/models/LiveStreamEventDetails.js.map +1 -0
  98. package/lib/commonjs/models/LiveStreamEventName.js +17 -0
  99. package/lib/commonjs/models/LiveStreamEventName.js.map +1 -0
  100. package/lib/commonjs/models/LiveStreamMessageDetails.js +2 -0
  101. package/lib/commonjs/models/LiveStreamMessageDetails.js.map +1 -0
  102. package/lib/commonjs/models/VideoFeedSource.js +6 -0
  103. package/lib/commonjs/models/VideoFeedSource.js.map +1 -0
  104. package/lib/commonjs/models/VideoPlaybackEventName.js.map +1 -1
  105. package/lib/commonjs/modules/FWNavigatorModule.js +22 -0
  106. package/lib/commonjs/modules/FWNavigatorModule.js.map +1 -0
  107. package/lib/commonjs/modules/FireworkSDKModule.js +3 -1
  108. package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
  109. package/lib/commonjs/modules/LiveStreamModule.js +22 -0
  110. package/lib/commonjs/modules/LiveStreamModule.js.map +1 -0
  111. package/lib/commonjs/modules/ShoppingModule.js +3 -1
  112. package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
  113. package/lib/module/FWNavigator.js +50 -0
  114. package/lib/module/FWNavigator.js.map +1 -0
  115. package/lib/module/FireworkSDK.js +59 -34
  116. package/lib/module/FireworkSDK.js.map +1 -1
  117. package/lib/module/LiveStream.js +51 -0
  118. package/lib/module/LiveStream.js.map +1 -0
  119. package/lib/module/VideoShopping.js +10 -10
  120. package/lib/module/VideoShopping.js.map +1 -1
  121. package/lib/module/components/NavigationContainer.js +21 -0
  122. package/lib/module/components/NavigationContainer.js.map +1 -0
  123. package/lib/module/components/VideoFeed.js +41 -3
  124. package/lib/module/components/VideoFeed.js.map +1 -1
  125. package/lib/module/index.js +7 -1
  126. package/lib/module/index.js.map +1 -1
  127. package/lib/module/models/AdBadgeConfiguration.js +2 -0
  128. package/lib/module/models/AdBadgeConfiguration.js.map +1 -0
  129. package/lib/module/models/AdConfig.js +2 -0
  130. package/lib/module/models/AdConfig.js.map +1 -0
  131. package/lib/module/models/FWEventName.js +17 -0
  132. package/lib/module/models/FWEventName.js.map +1 -0
  133. package/lib/module/models/FWEvents.js +1 -12
  134. package/lib/module/models/FWEvents.js.map +1 -1
  135. package/lib/module/models/LiveStreamChatEventName.js +8 -0
  136. package/lib/module/models/LiveStreamChatEventName.js.map +1 -0
  137. package/lib/module/models/LiveStreamEventDetails.js +2 -0
  138. package/lib/module/models/LiveStreamEventDetails.js.map +1 -0
  139. package/lib/module/models/LiveStreamEventName.js +10 -0
  140. package/lib/module/models/LiveStreamEventName.js.map +1 -0
  141. package/lib/module/models/LiveStreamMessageDetails.js +2 -0
  142. package/lib/module/models/LiveStreamMessageDetails.js.map +1 -0
  143. package/lib/module/models/VideoFeedSource.js +2 -0
  144. package/lib/module/models/VideoFeedSource.js.map +1 -0
  145. package/lib/module/models/VideoPlaybackEventName.js.map +1 -1
  146. package/lib/module/modules/FWNavigatorModule.js +13 -0
  147. package/lib/module/modules/FWNavigatorModule.js.map +1 -0
  148. package/lib/module/modules/FireworkSDKModule.js +3 -0
  149. package/lib/module/modules/FireworkSDKModule.js.map +1 -1
  150. package/lib/module/modules/LiveStreamModule.js +12 -0
  151. package/lib/module/modules/LiveStreamModule.js.map +1 -0
  152. package/lib/module/modules/ShoppingModule.js +3 -1
  153. package/lib/module/modules/ShoppingModule.js.map +1 -1
  154. package/lib/typescript/FWNavigator.d.ts +22 -0
  155. package/lib/typescript/FireworkSDK.d.ts +31 -24
  156. package/lib/typescript/LiveStream.d.ts +21 -0
  157. package/lib/typescript/VideoShopping.d.ts +5 -5
  158. package/lib/typescript/components/NavigationContainer.d.ts +6 -0
  159. package/lib/typescript/components/VideoFeed.d.ts +7 -4
  160. package/lib/typescript/index.d.ts +16 -6
  161. package/lib/typescript/models/AdBadgeConfiguration.d.ts +15 -0
  162. package/lib/typescript/models/{ADConfig.d.ts → AdConfig.d.ts} +1 -1
  163. package/lib/typescript/models/FWEventName.d.ts +14 -0
  164. package/lib/typescript/models/FWEvents.d.ts +14 -11
  165. package/lib/typescript/models/FeedItemDetails.d.ts +11 -4
  166. package/lib/typescript/models/LiveStreamChatEventName.d.ts +7 -0
  167. package/lib/typescript/models/LiveStreamEventDetails.d.ts +3 -0
  168. package/lib/typescript/models/LiveStreamEventName.d.ts +15 -0
  169. package/lib/typescript/models/LiveStreamMessageDetails.d.ts +14 -0
  170. package/lib/typescript/models/VideoFeedConfiguration.d.ts +7 -3
  171. package/lib/typescript/models/VideoFeedSource.d.ts +2 -0
  172. package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -2
  173. package/lib/typescript/models/VideoPlaybackEventName.d.ts +1 -1
  174. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +5 -0
  175. package/lib/typescript/modules/FWNavigatorModule.d.ts +9 -0
  176. package/lib/typescript/modules/FireworkSDKModule.d.ts +8 -4
  177. package/lib/typescript/modules/LiveStreamModule.d.ts +8 -0
  178. package/lib/typescript/modules/ShoppingModule.d.ts +3 -1
  179. package/package.json +3 -3
  180. package/react-native-firework-sdk.podspec +3 -1
  181. package/src/FWNavigator.tsx +39 -0
  182. package/src/FireworkSDK.ts +59 -33
  183. package/src/LiveStream.ts +51 -0
  184. package/src/VideoShopping.ts +10 -9
  185. package/src/components/NavigationContainer.tsx +22 -0
  186. package/src/components/VideoFeed.tsx +63 -7
  187. package/src/index.tsx +38 -12
  188. package/src/models/AdBadgeConfiguration.ts +16 -0
  189. package/src/models/{ADConfig.ts → AdConfig.ts} +1 -1
  190. package/src/models/FWEventName.ts +14 -0
  191. package/src/models/FWEvents.ts +16 -12
  192. package/src/models/FeedItemDetails.ts +12 -4
  193. package/src/models/LiveStreamChatEventName.ts +8 -0
  194. package/src/models/LiveStreamEventDetails.ts +4 -0
  195. package/src/models/LiveStreamEventName.ts +16 -0
  196. package/src/models/LiveStreamMessageDetails.ts +14 -0
  197. package/src/models/VideoFeedConfiguration.ts +7 -3
  198. package/src/models/VideoFeedSource.ts +2 -0
  199. package/src/models/VideoPlaybackDetails.ts +1 -3
  200. package/src/models/VideoPlaybackEventName.ts +1 -1
  201. package/src/models/VideoPlayerConfiguration.ts +7 -1
  202. package/src/modules/FWNavigatorModule.ts +22 -0
  203. package/src/modules/FireworkSDKModule.ts +10 -4
  204. package/src/modules/LiveStreamModule.ts +26 -0
  205. package/src/modules/ShoppingModule.ts +13 -6
  206. package/android/src/main/java/com/reactnativefireworksdk/FireworkSDKPackage.kt +0 -20
  207. package/android/src/main/java/com/reactnativefireworksdk/components/videofeed/FWVideoFeed.kt +0 -143
  208. package/android/src/main/java/com/reactnativefireworksdk/manager/FWVideoFeedManager.kt +0 -88
  209. package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoFeedConfigModel.kt +0 -27
  210. package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoFeedMode.kt +0 -7
  211. package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoPlayerConfigModel.kt +0 -22
  212. package/android/src/main/java/com/reactnativefireworksdk/utils/FWVideoPlayerUtils.kt +0 -20
  213. package/lib/commonjs/models/ADConfig.js +0 -2
  214. package/lib/module/models/ADConfig.js +0 -2
@@ -10,13 +10,14 @@
10
10
  import FireworkVideo
11
11
 
12
12
  #if canImport(FireworkVideoGAMSupport)
13
- import FireworkVideoGAMSupportSDK
13
+ import FireworkVideoGAMSupport
14
14
  #endif
15
15
  #if canImport(FireworkVideoGIMASupport)
16
16
  import FireworkVideoGIMASupport
17
17
  #endif
18
18
 
19
19
  var gShareBaseURL: String?
20
+ var gAdBadgeConfiguration: AdBadgeConfiguration?
20
21
 
21
22
  @objc(FireworkSDKModule)
22
23
  class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
@@ -89,9 +90,10 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
89
90
  customCTAClickEnabled = enabled
90
91
  }
91
92
 
92
- @objc(setShareBaseURL:)
93
- func setShareBaseURL(_ url: String) {
93
+ @objc(setShareBaseURL:resolver:rejecter:)
94
+ func setShareBaseURL(_ url: String, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
94
95
  gShareBaseURL = url
96
+ resolver([:])
95
97
  }
96
98
 
97
99
  @objc(setVideoPlaybackEventEnabled:)
@@ -99,12 +101,18 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
99
101
  enableVideoPlayBackEvent = enable
100
102
  }
101
103
 
104
+ @objc(setAdBadgeConfiguration:resolver:rejecter:)
105
+ func setAdBadgeConfiguration(_ config: [String: AnyObject]? = nil, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
106
+ gAdBadgeConfiguration = RCTConvert.adBadgeConfiguration(config)
107
+ resolver([:])
108
+ }
109
+
102
110
  // MARK: - FireworkVideoSDKDelegate
103
111
  func fireworkVideoDidLoadSuccessfully() {
104
112
  sendEvent(withName: FWEventName.SDKInit.rawValue, body: [:])
105
113
  }
106
114
 
107
115
  func fireworkVideoDidLoadWith(error: FireworkVideoSDKError) {
108
- sendEvent(withName: FWEventName.SDKInit.rawValue, body: ["error": [error.jsErrorName: error.recoverySuggestion ?? "default"]])
116
+ sendEvent(withName: FWEventName.SDKInit.rawValue, body: ["error": ["name": error.jsErrorName, "reason": error.recoverySuggestion ?? "default"]])
109
117
  }
110
118
  }
@@ -0,0 +1,14 @@
1
+ //
2
+ // LiveStreamModule.m
3
+ // react-native-firework-sdk
4
+ //
5
+ // Created by Jeff Zheng on 2022/2/16.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+
10
+ @interface RCT_EXTERN_REMAP_MODULE(LiveStreamModule, LiveStreamModule, NSObject)
11
+
12
+ _RCT_EXTERN_REMAP_METHOD(init, initialize, NO)
13
+
14
+ @end
@@ -0,0 +1,43 @@
1
+ //
2
+ // LiveStreamModule.swift
3
+ // react-native-firework-sdk
4
+ //
5
+ // Created by Jeff Zheng on 2022/2/16.
6
+ //
7
+
8
+ import Foundation
9
+ import FireworkVideo
10
+
11
+ @objc(LiveStreamModule)
12
+ class LiveStreamModule: RCTEventEmitter , FireworkLiveStreamEventDelegate {
13
+
14
+ override func supportedEvents() -> [String]! {
15
+ LiveStreamEventName.allCases.map { $0.rawValue }
16
+ }
17
+
18
+ override class func requiresMainQueueSetup() -> Bool {
19
+ return true
20
+ }
21
+
22
+ @objc
23
+ func initialize() {
24
+ DispatchQueue.main.async {
25
+ FireworkVideoSDK.eventTracking.liveStreamEventDelegate = self
26
+ }
27
+ }
28
+ func fireworkLiveStreamUserDidJoin(_ liveStream: LiveStreamEventDetails) {
29
+ sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserDidjoin.rawValue, "info": liveStream.jsObject])
30
+ }
31
+
32
+ func fireworkLiveStreamUserDidLeave(_ liveStream: LiveStreamEventDetails) {
33
+ sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserDidLeave.rawValue, "info": liveStream.jsObject])
34
+ }
35
+
36
+ func fireworkLiveStreamUserDidSendChat(_ message: LiveStreamMessageDetails, to liveStream: LiveStreamEventDetails) {
37
+ sendEvent(withName: LiveStreamEventName.livestreamChat.rawValue, body: ["eventName": LiveStreamChatSubEventName.UserSendChat.rawValue, "message": message.jsObject, "liveStream": liveStream.jsObject])
38
+ }
39
+
40
+ func fireworkLiveStreamUserDidSendLike(_ liveStream: LiveStreamEventDetails) {
41
+ sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserSendLike.rawValue, "info": liveStream.jsObject])
42
+ }
43
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _FWNavigatorModule = _interopRequireDefault(require("./modules/FWNavigatorModule"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ /**
15
+ * You can use this class for pushing RN page from the native page.
16
+ */
17
+ class FWNavigator {
18
+ constructor() {
19
+ _defineProperty(this, "_currentCallbackId", 0);
20
+
21
+ _defineProperty(this, "navigatorPages", new Map());
22
+ }
23
+
24
+ static getInstance() {
25
+ if (!FWNavigator._instance) {
26
+ FWNavigator._instance = new FWNavigator();
27
+ }
28
+
29
+ return FWNavigator._instance;
30
+ }
31
+ /**
32
+ * Push RN page from native page. The RN page is embedded in a native container.
33
+ * @param {React.ReactNode} page The RN page.
34
+ * @returns {Promise<boolean>} The result of pushing RN page from native page
35
+ */
36
+
37
+
38
+ pushNativeContainer(page) {
39
+ this._currentCallbackId = this._currentCallbackId + 1;
40
+ const callbackId = `${this._currentCallbackId}`;
41
+ this.navigatorPages.set(callbackId, page);
42
+ return _FWNavigatorModule.default.pushNativeContainer(callbackId);
43
+ }
44
+ /**
45
+ * Pop top-most native container. The native container embed the RN page.
46
+ * @returns {Promise<boolean>} The result of poping top-most native container.
47
+ */
48
+
49
+
50
+ popNativeContainer() {
51
+ return _FWNavigatorModule.default.popNativeContainer();
52
+ }
53
+
54
+ }
55
+
56
+ _defineProperty(FWNavigator, "_instance", void 0);
57
+
58
+ var _default = FWNavigator;
59
+ exports.default = _default;
60
+ //# sourceMappingURL=FWNavigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FWNavigator.tsx"],"names":["FWNavigator","Map","getInstance","_instance","pushNativeContainer","page","_currentCallbackId","callbackId","navigatorPages","set","FWNavigatorModule","popNativeContainer"],"mappings":";;;;;;;AAAA;;;;;;AAEA;AACA;AACA;AACA,MAAMA,WAAN,CAAkB;AAAA;AAAA,gDAEqB,CAFrB;;AAAA,4CAGQ,IAAIC,GAAJ,EAHR;AAAA;;AAKS,SAAXC,WAAW,GAAgB;AACvC,QAAI,CAACF,WAAW,CAACG,SAAjB,EAA4B;AAC1BH,MAAAA,WAAW,CAACG,SAAZ,GAAwB,IAAIH,WAAJ,EAAxB;AACD;;AACD,WAAOA,WAAW,CAACG,SAAnB;AACD;AAED;AACF;AACA;AACA;AACA;;;AACSC,EAAAA,mBAAmB,CAACC,IAAD,EAA0C;AAClE,SAAKC,kBAAL,GAA0B,KAAKA,kBAAL,GAA0B,CAApD;AACA,UAAMC,UAAU,GAAI,GAAE,KAAKD,kBAAmB,EAA9C;AACA,SAAKE,cAAL,CAAoBC,GAApB,CAAwBF,UAAxB,EAAoCF,IAApC;AACA,WAAOK,2BAAkBN,mBAAlB,CAAsCG,UAAtC,CAAP;AACD;AAED;AACF;AACA;AACA;;;AACSI,EAAAA,kBAAkB,GAAqB;AAC5C,WAAOD,2BAAkBC,kBAAlB,EAAP;AACD;;AA9Be;;gBAAZX,W;;eAiCSA,W","sourcesContent":["import FWNavigatorModule from './modules/FWNavigatorModule';\n\n/**\n * You can use this class for pushing RN page from the native page.\n */\nclass FWNavigator {\n private static _instance?: FWNavigator;\n private _currentCallbackId: number = 0;\n public navigatorPages = new Map<string, React.ReactNode>();\n\n public static getInstance(): FWNavigator {\n if (!FWNavigator._instance) {\n FWNavigator._instance = new FWNavigator();\n }\n return FWNavigator._instance!;\n }\n\n /**\n * Push RN page from native page. The RN page is embedded in a native container.\n * @param {React.ReactNode} page The RN page.\n * @returns {Promise<boolean>} The result of pushing RN page from native page\n */\n public pushNativeContainer(page: React.ReactNode): Promise<boolean> {\n this._currentCallbackId = this._currentCallbackId + 1;\n const callbackId = `${this._currentCallbackId}`;\n this.navigatorPages.set(callbackId, page);\n return FWNavigatorModule.pushNativeContainer(callbackId);\n }\n \n /**\n * Pop top-most native container. The native container embed the RN page.\n * @returns {Promise<boolean>} The result of poping top-most native container.\n */\n public popNativeContainer(): Promise<boolean> {\n return FWNavigatorModule.popNativeContainer();\n }\n}\n\nexport default FWNavigator;\n"]}
@@ -5,16 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _reactNative = require("react-native");
8
+ var _LiveStream = _interopRequireDefault(require("./LiveStream"));
9
9
 
10
- var _FWEvents = require("./models/FWEvents");
10
+ var _FWEventName = require("./models/FWEventName");
11
11
 
12
- var _FireworkSDKModule = _interopRequireDefault(require("./modules/FireworkSDKModule"));
12
+ var _FireworkSDKModule = _interopRequireWildcard(require("./modules/FireworkSDKModule"));
13
+
14
+ var _LiveStreamModule = _interopRequireDefault(require("./modules/LiveStreamModule"));
13
15
 
14
16
  var _ShoppingModule = _interopRequireDefault(require("./modules/ShoppingModule"));
15
17
 
16
18
  var _VideoShopping = _interopRequireDefault(require("./VideoShopping"));
17
19
 
20
+ var _FWNavigator = _interopRequireDefault(require("./FWNavigator"));
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
18
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
27
 
20
28
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -24,72 +32,96 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
24
32
  */
25
33
  class FireworkSDK {
26
34
  /**
27
- * Clicking Video Feed callback
35
+ * The callback of SDK initialization.
28
36
  */
29
37
 
30
38
  /**
31
- * SDK initialization callback.
39
+ * the callback of clicking Video Feed.
32
40
  */
33
41
 
34
42
  /**
35
- * Get Custom Clicking CTA callback.
43
+ * The callback of clicking custom CTA.
36
44
  */
37
45
  get onCustomCTAClick() {
38
46
  return this._onCustomCTAClick;
39
47
  }
40
- /**
41
- * Set Custom Clicking CTA callback.
42
- */
43
-
44
48
 
45
49
  set onCustomCTAClick(value) {
46
50
  this._onCustomCTAClick = value;
47
51
 
48
52
  _FireworkSDKModule.default.setCustomCTAClickEnabled(value ? true : false);
49
53
  }
54
+
50
55
  /**
51
- * Get Video Playback callback.
56
+ * The callback of video playback.
52
57
  */
53
-
54
-
55
58
  get onVideoPlayback() {
56
59
  return this._onVideoPlayback;
57
60
  }
58
- /**
59
- * Set Video Playback callback.
60
- */
61
-
62
61
 
63
62
  set onVideoPlayback(value) {
64
63
  this._onVideoPlayback = value;
65
64
 
66
65
  _FireworkSDKModule.default.setVideoPlaybackEventEnabled(value ? true : false);
67
66
  }
67
+
68
68
  /**
69
- * get Share Base URL
69
+ * The share base URL of videos.
70
70
  */
71
-
72
-
73
71
  get shareBaseURL() {
74
72
  return this._shareBaseURL;
75
73
  }
76
- /**
77
- * set Share Base URL
78
- */
79
-
80
74
 
81
75
  set shareBaseURL(value) {
82
76
  this._shareBaseURL = value;
83
77
 
84
- _FireworkSDKModule.default.setShareBaseURL(value);
78
+ _FireworkSDKModule.default.setShareBaseURL(value).then(() => {
79
+ this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
80
+ });
81
+ }
82
+
83
+ /**
84
+ * The configuration for ad badges.
85
+ */
86
+ get adBadgeConfiguration() {
87
+ return this._adBadgeConfiguration;
88
+ }
89
+
90
+ set adBadgeConfiguration(value) {
91
+ this._adBadgeConfiguration = value;
92
+
93
+ _FireworkSDKModule.default.setAdBadgeConfiguration(value).then(() => {
94
+ this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
95
+ });
85
96
  }
86
97
 
98
+ get eventEmitter() {
99
+ return _FireworkSDKModule.FireworkSDKModuleEventEmitter;
100
+ }
87
101
  /**
88
102
  * Get VideoShopping object.
89
103
  */
104
+
105
+
90
106
  get shopping() {
91
107
  return _VideoShopping.default.getInstance();
92
108
  }
109
+ /**
110
+ * Get LiveStream object.
111
+ */
112
+
113
+
114
+ get liveStream() {
115
+ return _LiveStream.default.getInstance();
116
+ }
117
+ /**
118
+ * Get FWNavigator object.
119
+ */
120
+
121
+
122
+ get navigator() {
123
+ return _FWNavigator.default.getInstance();
124
+ }
93
125
  /**
94
126
  * Get global single instance of FireworkSDK class.
95
127
  * @returns FireworkSDK
@@ -105,35 +137,34 @@ class FireworkSDK {
105
137
  }
106
138
 
107
139
  constructor() {
140
+ _defineProperty(this, "onSDKInit", void 0);
141
+
142
+ _defineProperty(this, "onVideoFeedClick", void 0);
143
+
108
144
  _defineProperty(this, "_onCustomCTAClick", void 0);
109
145
 
110
146
  _defineProperty(this, "_onVideoPlayback", void 0);
111
147
 
112
- _defineProperty(this, "onVideoFeedClick", void 0);
113
-
114
148
  _defineProperty(this, "_shareBaseURL", void 0);
115
149
 
116
- _defineProperty(this, "onSDKInit", void 0);
117
-
118
- _defineProperty(this, "eventEmitter", void 0);
150
+ _defineProperty(this, "_adBadgeConfiguration", void 0);
119
151
 
120
- this.eventEmitter = new _reactNative.NativeEventEmitter(_FireworkSDKModule.default);
121
- this.eventEmitter.addListener(_FWEvents.FWEventName.SDKInit, event => {
152
+ this.eventEmitter.addListener(_FWEventName.FWEventName.SDKInit, event => {
122
153
  if (this.onSDKInit) {
123
154
  this.onSDKInit(event !== null && event !== void 0 ? event : {});
124
155
  }
125
156
  });
126
- this.eventEmitter.addListener(_FWEvents.FWEventName.CustomCTAClick, event => {
157
+ this.eventEmitter.addListener(_FWEventName.FWEventName.CustomCTAClick, event => {
127
158
  if (this.onCustomCTAClick) {
128
159
  this.onCustomCTAClick(event !== null && event !== void 0 ? event : {});
129
160
  }
130
161
  });
131
- this.eventEmitter.addListener(_FWEvents.FWEventName.VideoPlayback, event => {
162
+ this.eventEmitter.addListener(_FWEventName.FWEventName.VideoPlayback, event => {
132
163
  if (this.onVideoPlayback) {
133
164
  this.onVideoPlayback(event !== null && event !== void 0 ? event : {});
134
165
  }
135
166
  });
136
- this.eventEmitter.addListener(_FWEvents.FWEventName.VideoFeedClick, event => {
167
+ this.eventEmitter.addListener(_FWEventName.FWEventName.VideoFeedClick, event => {
137
168
  if (this.onVideoFeedClick) {
138
169
  this.onVideoFeedClick(event !== null && event !== void 0 ? event : {});
139
170
  }
@@ -142,7 +173,7 @@ class FireworkSDK {
142
173
  /**
143
174
  * Initializes Firework SDK.
144
175
  * @param {string?} userId An id to uniquely identify device or user.
145
- * @param {ADConfig?} adConfig Configuration of Ad.
176
+ * @param {AdConfig?} adConfig Configuration of Ad.
146
177
  */
147
178
 
148
179
 
@@ -150,11 +181,13 @@ class FireworkSDK {
150
181
  _FireworkSDKModule.default.init(userId, adConfig);
151
182
 
152
183
  _ShoppingModule.default.init();
184
+
185
+ _LiveStreamModule.default.init();
153
186
  }
154
187
  /**
155
188
  * Open Video URL.
156
- * @param {string} url
157
- * @param {VideoPlayerConfiguration} config
189
+ * @param {string} url
190
+ * @param {VideoPlayerConfiguration} config
158
191
  */
159
192
 
160
193
 
@@ -1 +1 @@
1
- {"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","shopping","VideoShopping","getInstance","_instance","constructor","eventEmitter","NativeEventEmitter","addListener","FWEventName","SDKInit","event","onSDKInit","CustomCTAClick","VideoPlayback","VideoFeedClick","onVideoFeedClick","init","userId","adConfig","ShoppingModule","openVideoPlayer","url","config"],"mappings":"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","sourcesContent":["import { NativeEventEmitter } from 'react-native';\n\nimport type ADConfig from './models/ADConfig';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport { FWEventName, VideoFeedClickEvent } from './models/FWEvents';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule from './modules/FireworkSDKModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport VideoShopping from './VideoShopping';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Entry class of Firework SDK, which supports the sdk initialization and global configuration.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * Clicking Video Feed callback\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n private _shareBaseURL: string | undefined;\n\n /**\n * SDK initialization callback.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * Get Custom Clicking CTA callback.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n\n /**\n * Set Custom Clicking CTA callback.\n */\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n\n /**\n * Get Video Playback callback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n\n /**\n * Set Video Playback callback.\n */\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n\n /**\n * get Share Base URL\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n\n /**\n * set Share Base URL\n */\n public set shareBaseURL(value: string | undefined) {\n this._shareBaseURL = value;\n FireworkSDKModule.setShareBaseURL(value);\n }\n\n private eventEmitter: NativeEventEmitter;\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return VideoShopping.getInstance();\n }\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n this.eventEmitter = new NativeEventEmitter(FireworkSDKModule);\n\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {string?} userId An id to uniquely identify device or user.\n * @param {ADConfig?} adConfig Configuration of Ad.\n */\n public init(userId?: string, adConfig?: ADConfig) {\n FireworkSDKModule.init(userId, adConfig);\n ShoppingModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url \n * @param {VideoPlayerConfiguration} config \n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n}\n\nexport default FireworkSDK;\n"]}
1
+ {"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","eventEmitter","emit","FWEventName","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","AdBadgeConfigurationUpdated","FireworkSDKModuleEventEmitter","shopping","VideoShopping","getInstance","liveStream","LiveStream","navigator","FWNavigator","_instance","constructor","addListener","SDKInit","event","onSDKInit","CustomCTAClick","VideoPlayback","VideoFeedClick","onVideoFeedClick","init","userId","adConfig","ShoppingModule","LiveStreamModule","openVideoPlayer","url","config"],"mappings":"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","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\nimport LiveStream from './LiveStream';\n\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport type AdConfig from './models/AdConfig';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport VideoShopping from './VideoShopping';\nimport FWNavigator from './FWNavigator';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Entry class of Firework SDK, which supports the sdk initialization and global configuration.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * The share base URL of videos.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this._shareBaseURL = value;\n FireworkSDKModule.setShareBaseURL(value).then(() => {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n });\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n this._adBadgeConfiguration = value;\n FireworkSDKModule.setAdBadgeConfiguration(value).then(() => {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n });\n }\n private _adBadgeConfiguration?: AdBadgeConfiguration | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return VideoShopping.getInstance();\n }\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return LiveStream.getInstance();\n }\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return FWNavigator.getInstance();\n }\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {string?} userId An id to uniquely identify device or user.\n * @param {AdConfig?} adConfig Configuration of Ad.\n */\n public init(userId?: string, adConfig?: AdConfig) {\n FireworkSDKModule.init(userId, adConfig);\n ShoppingModule.init();\n LiveStreamModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n}\n\nexport default FireworkSDK;\n"]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _FWEventName = require("./models/FWEventName");
9
+
10
+ var _LiveStreamModule = require("./modules/LiveStreamModule");
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ /**
15
+ * The entry class of live stream.
16
+ */
17
+ class LiveStream {
18
+ /**
19
+ * The callback of live stream event.
20
+ */
21
+
22
+ /**
23
+ * The callback of live stream chat event.
24
+ */
25
+ get eventEmitter() {
26
+ return _LiveStreamModule.LiveStreamModuleEventEmitter;
27
+ }
28
+
29
+ static getInstance() {
30
+ if (!LiveStream._instance) {
31
+ LiveStream._instance = new LiveStream();
32
+ }
33
+
34
+ return LiveStream._instance;
35
+ }
36
+
37
+ constructor() {
38
+ _defineProperty(this, "onLiveStreamEvent", void 0);
39
+
40
+ _defineProperty(this, "onLiveStreamChatEvent", void 0);
41
+
42
+ this.eventEmitter.addListener(_FWEventName.FWEventName.onLiveStreamEvent, event => {
43
+ if (this.onLiveStreamEvent) {
44
+ this.onLiveStreamEvent(event !== null && event !== void 0 ? event : {});
45
+ }
46
+ });
47
+ this.eventEmitter.addListener(_FWEventName.FWEventName.onLiveStreamChatEvent, event => {
48
+ if (this.onLiveStreamChatEvent) {
49
+ this.onLiveStreamChatEvent(event !== null && event !== void 0 ? event : {});
50
+ }
51
+ });
52
+ }
53
+
54
+ }
55
+
56
+ _defineProperty(LiveStream, "_instance", void 0);
57
+
58
+ var _default = LiveStream;
59
+ exports.default = _default;
60
+ //# sourceMappingURL=LiveStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["LiveStream.ts"],"names":["LiveStream","eventEmitter","LiveStreamModuleEventEmitter","getInstance","_instance","constructor","addListener","FWEventName","onLiveStreamEvent","event","onLiveStreamChatEvent"],"mappings":";;;;;;;AACA;;AAEA;;;;AAKA;AACA;AACA;AACA,MAAMA,UAAN,CAAiB;AAGf;AACF;AACA;;AAEE;AACF;AACA;AAG0B,MAAZC,YAAY,GAAuB;AAC7C,WAAOC,8CAAP;AACD;;AAEwB,SAAXC,WAAW,GAAG;AAC1B,QAAI,CAACH,UAAU,CAACI,SAAhB,EAA2B;AACzBJ,MAAAA,UAAU,CAACI,SAAX,GAAuB,IAAIJ,UAAJ,EAAvB;AACD;;AAED,WAAOA,UAAU,CAACI,SAAlB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AACpB,SAAKJ,YAAL,CAAkBK,WAAlB,CAA8BC,yBAAYC,iBAA1C,EAA8DC,KAAD,IAAW;AACtE,UAAI,KAAKD,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBC,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKR,YAAL,CAAkBK,WAAlB,CAA8BC,yBAAYG,qBAA1C,EAAkED,KAAD,IAAW;AAC1E,UAAI,KAAKC,qBAAT,EAAgC;AAC9B,aAAKA,qBAAL,CAA2BD,KAA3B,aAA2BA,KAA3B,cAA2BA,KAA3B,GAAoC,EAApC;AACD;AACF,KAJD;AAKD;;AApCc;;gBAAXT,U;;eAuCSA,U","sourcesContent":["import type { NativeEventEmitter } from \"react-native\";\nimport { FWEventName } from \"./models/FWEventName\";\nimport type { LiveStreamChatEvent, LiveStreamEvent } from \"./models/FWEvents\";\nimport { LiveStreamModuleEventEmitter } from \"./modules/LiveStreamModule\";\n\nexport type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;\nexport type onLiveStreamChatEventCallback = (event: LiveStreamChatEvent) => void;\n\n/**\n * The entry class of live stream.\n */\nclass LiveStream {\n private static _instance?: LiveStream;\n\n /**\n * The callback of live stream event.\n */\n public onLiveStreamEvent?: onLiveStreamEventCallback;\n /**\n * The callback of live stream chat event.\n */\n public onLiveStreamChatEvent?: onLiveStreamChatEventCallback;\n\n private get eventEmitter(): NativeEventEmitter {\n return LiveStreamModuleEventEmitter;\n }\n\n public static getInstance() {\n if (!LiveStream._instance) {\n LiveStream._instance = new LiveStream();\n }\n\n return LiveStream._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.onLiveStreamEvent, (event) => {\n if (this.onLiveStreamEvent) {\n this.onLiveStreamEvent(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.onLiveStreamChatEvent, (event) => {\n if (this.onLiveStreamChatEvent) {\n this.onLiveStreamChatEvent(event ?? {});\n }\n });\n }\n}\n\nexport default LiveStream;\n"]}
@@ -5,18 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _reactNative = require("react-native");
8
+ var _FWEventName = require("./models/FWEventName");
9
9
 
10
- var _FWEvents = require("./models/FWEvents");
10
+ var _ShoppingModule = _interopRequireWildcard(require("./modules/ShoppingModule"));
11
11
 
12
- var _ShoppingModule = _interopRequireDefault(require("./modules/ShoppingModule"));
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
13
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
15
 
16
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
17
 
18
18
  /**
19
- * Entry class of Video Shopping
19
+ * The entry class of video shopping.
20
20
  */
21
21
  class VideoShopping {
22
22
  /**
@@ -34,7 +34,7 @@ class VideoShopping {
34
34
  /**
35
35
  * This callback is triggered when the video will be shown.
36
36
  *
37
- * The host app can return a Product object to update the latest product information.
37
+ * The host app can return a Product list to update the latest product information.
38
38
  */
39
39
 
40
40
  /**
@@ -56,6 +56,10 @@ class VideoShopping {
56
56
  _ShoppingModule.default.setCartIconVisible(value);
57
57
  }
58
58
 
59
+ get eventEmitter() {
60
+ return _ShoppingModule.ShoppingModuleEventEmitter;
61
+ }
62
+
59
63
  static getInstance() {
60
64
  if (!VideoShopping._instance) {
61
65
  VideoShopping._instance = new VideoShopping();
@@ -65,8 +69,6 @@ class VideoShopping {
65
69
  }
66
70
 
67
71
  constructor() {
68
- _defineProperty(this, "_cartIconVisible", true);
69
-
70
72
  _defineProperty(this, "onAddToCart", void 0);
71
73
 
72
74
  _defineProperty(this, "onClickCartIcon", void 0);
@@ -75,21 +77,20 @@ class VideoShopping {
75
77
 
76
78
  _defineProperty(this, "onWillDisplayProduct", void 0);
77
79
 
78
- _defineProperty(this, "currentCartPage", void 0);
80
+ _defineProperty(this, "_cartIconVisible", true);
79
81
 
80
- _defineProperty(this, "eventEmitter", void 0);
82
+ _defineProperty(this, "currentCartPage", void 0);
81
83
 
82
- this.eventEmitter = new _reactNative.NativeEventEmitter(_ShoppingModule.default);
83
- this.eventEmitter.addListener(_FWEvents.FWEventName.AddToCart, event => {
84
+ this.eventEmitter.addListener(_FWEventName.FWEventName.AddToCart, event => {
84
85
  this.handleAddToCartEvent(event);
85
86
  });
86
- this.eventEmitter.addListener(_FWEvents.FWEventName.ClickCartIcon, event => {
87
+ this.eventEmitter.addListener(_FWEventName.FWEventName.ClickCartIcon, event => {
87
88
  this.handleClickCartIconEvent(event);
88
89
  });
89
- this.eventEmitter.addListener(_FWEvents.FWEventName.UpdateProductDetails, event => {
90
+ this.eventEmitter.addListener(_FWEventName.FWEventName.UpdateProductDetails, event => {
90
91
  this.handleUpdateProductDetailsEvent(event);
91
92
  });
92
- this.eventEmitter.addListener(_FWEvents.FWEventName.WillDisplayProduct, event => {
93
+ this.eventEmitter.addListener(_FWEventName.FWEventName.WillDisplayProduct, event => {
93
94
  this.handleWillDisplayProductEvent(event);
94
95
  });
95
96
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","cartIconVisible","_cartIconVisible","value","ShoppingModule","setCartIconVisible","getInstance","_instance","constructor","eventEmitter","NativeEventEmitter","addListener","FWEventName","AddToCart","event","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","handleUpdateProductDetailsEvent","WillDisplayProduct","handleWillDisplayProductEvent","exitCartPage","setCartItemCount","count","onAddToCart","callbackId","result","updateAddToCartStatus","res","tips","onClickCartIcon","cartPage","currentCartPage","jumpToCartPage","onUpdateProductDetails","productList","console","log","JSON","stringify","updateVideoProducts","onWillDisplayProduct","config","updateProductViewConfig"],"mappings":"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","sourcesContent":["import { NativeEventEmitter } from 'react-native';\n\nimport type AddToCartResult from './models/AddToCartResult';\nimport {\n AddToCartEvent,\n FWEventName,\n UpdateProductDetailsEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport ShoppingModule from './modules/ShoppingModule';\n\nexport type AddToCartCallback = (\n event: AddToCartEvent\n) => Promise<AddToCartResult | undefined | null>;\n\nexport type ClickCartIconCallback = () => Promise<\n React.ReactNode | undefined | null\n>;\n\nexport type UpdateProductDetailsCallback = (\n event: UpdateProductDetailsEvent\n) => Promise<Product[] | undefined | null>;\n\nexport type WillDisplayProductCallback = (\n event: WillDisplayProductEvent\n) => Promise<ProductInfoViewConfiguration | undefined | null>;\n\ntype CallbackInfo = { callbackId?: number | string };\n\n/**\n * Entry class of Video Shopping\n */\nclass VideoShopping {\n private static _instance?: VideoShopping;\n private _cartIconVisible: boolean = true;\n\n /**\n * This callback is triggered when the user clicks the \"Add to cart\" button.\n *\n * The host app can return an AddToCartResult object to tell FireworkSDK the result of adding to cart.\n */\n public onAddToCart?: AddToCartCallback;\n\n /**\n * This callback is triggered when the user clicks the shopping cart icon.\n *\n * The host app can return a React.Node to integrate custom cart page to shopping flow.\n */\n public onClickCartIcon?: ClickCartIconCallback;\n\n /**\n * This callback is triggered when the video will be shown.\n *\n * The host app can return a Product object to update the latest product information.\n */\n public onUpdateProductDetails?: UpdateProductDetailsCallback;\n\n /**\n * This callback is triggered when the product will be shown.\n *\n * The host app can return a ProductInfoViewConfiguration object to configure \"Add to cart\" button style and cart icon style.\n */\n public onWillDisplayProduct?: WillDisplayProductCallback;\n\n /**\n * Defaults to true. You can hide the cart icon by setting this property to false. \n */\n public get cartIconVisible(): boolean {\n return this._cartIconVisible;\n }\n public set cartIconVisible(value: boolean) {\n this._cartIconVisible = value;\n ShoppingModule.setCartIconVisible(value);\n }\n\n public currentCartPage?: React.ReactNode;\n\n private eventEmitter: NativeEventEmitter;\n\n public static getInstance() {\n if (!VideoShopping._instance) {\n VideoShopping._instance = new VideoShopping();\n }\n\n return VideoShopping._instance!;\n }\n\n private constructor() {\n this.eventEmitter = new NativeEventEmitter(ShoppingModule);\n this.eventEmitter.addListener(FWEventName.AddToCart, (event) => {\n this.handleAddToCartEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.ClickCartIcon, (event) => {\n this.handleClickCartIconEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.UpdateProductDetails, (event) => {\n this.handleUpdateProductDetailsEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.WillDisplayProduct, (event) => {\n this.handleWillDisplayProductEvent(event);\n });\n }\n\n /**\n * Exit Cart Page.\n *\n * The host app can call this method to exit their cart page.\n */\n public exitCartPage() {\n ShoppingModule.exitCartPage();\n }\n\n /**\n * \n * @param {number} count The number of items in the host app cart\n */\n public setCartItemCount(count: number) {\n ShoppingModule.setCartItemCount(count);\n }\n\n private async handleAddToCartEvent(event: AddToCartEvent & CallbackInfo) {\n if (this.onAddToCart) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const result = await this.onAddToCart(event as AddToCartEvent);\n if (result) {\n ShoppingModule.updateAddToCartStatus(\n result.res,\n result.tips,\n callbackId!,\n );\n }\n }\n }\n\n private async handleClickCartIconEvent(event: CallbackInfo) {\n if (this.onClickCartIcon) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const cartPage = await this.onClickCartIcon();\n this.currentCartPage = cartPage;\n\n if (cartPage) {\n ShoppingModule.jumpToCartPage(callbackId!);\n }\n }\n }\n\n private async handleUpdateProductDetailsEvent(\n event: UpdateProductDetailsEvent & CallbackInfo\n ) {\n if (this.onUpdateProductDetails) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const productList = await this.onUpdateProductDetails(\n event as UpdateProductDetailsEvent\n );\n console.log('handleUpdateProductDetailsEvent productList', JSON.stringify(productList));\n if (productList) {\n ShoppingModule.updateVideoProducts(productList, callbackId!);\n }\n }\n }\n\n private async handleWillDisplayProductEvent(\n event: WillDisplayProductEvent & CallbackInfo\n ) {\n if (this.onWillDisplayProduct) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const config = await this.onWillDisplayProduct(\n event as WillDisplayProductEvent\n );\n if (config) {\n ShoppingModule.updateProductViewConfig(config, callbackId!);\n }\n }\n }\n}\n\nexport default VideoShopping;\n"]}
1
+ {"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","cartIconVisible","_cartIconVisible","value","ShoppingModule","setCartIconVisible","eventEmitter","ShoppingModuleEventEmitter","getInstance","_instance","constructor","addListener","FWEventName","AddToCart","event","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","handleUpdateProductDetailsEvent","WillDisplayProduct","handleWillDisplayProductEvent","exitCartPage","setCartItemCount","count","onAddToCart","callbackId","result","updateAddToCartStatus","res","tips","onClickCartIcon","cartPage","currentCartPage","jumpToCartPage","onUpdateProductDetails","productList","console","log","JSON","stringify","updateVideoProducts","onWillDisplayProduct","config","updateProductViewConfig"],"mappings":"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","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\n\nimport type AddToCartResult from './models/AddToCartResult';\nimport type {\n AddToCartEvent,\n UpdateProductDetailsEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport { FWEventName } from './models/FWEventName';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport ShoppingModule, { ShoppingModuleEventEmitter } from './modules/ShoppingModule';\n\nexport type AddToCartCallback = (\n event: AddToCartEvent\n) => Promise<AddToCartResult | undefined | null>;\n\nexport type ClickCartIconCallback = () => Promise<\n React.ReactNode | undefined | null\n>;\n\nexport type UpdateProductDetailsCallback = (\n event: UpdateProductDetailsEvent\n) => Promise<Product[] | undefined | null>;\n\nexport type WillDisplayProductCallback = (\n event: WillDisplayProductEvent\n) => Promise<ProductInfoViewConfiguration | undefined | null>;\n\ntype CallbackInfo = { callbackId?: number | string };\n\n/**\n * The entry class of video shopping.\n */\nclass VideoShopping {\n private static _instance?: VideoShopping;\n\n /**\n * This callback is triggered when the user clicks the \"Add to cart\" button.\n *\n * The host app can return an AddToCartResult object to tell FireworkSDK the result of adding to cart.\n */\n public onAddToCart?: AddToCartCallback;\n\n /**\n * This callback is triggered when the user clicks the shopping cart icon.\n *\n * The host app can return a React.Node to integrate custom cart page to shopping flow.\n */\n public onClickCartIcon?: ClickCartIconCallback;\n\n /**\n * This callback is triggered when the video will be shown.\n *\n * The host app can return a Product list to update the latest product information.\n */\n public onUpdateProductDetails?: UpdateProductDetailsCallback;\n\n /**\n * This callback is triggered when the product will be shown.\n *\n * The host app can return a ProductInfoViewConfiguration object to configure \"Add to cart\" button style and cart icon style.\n */\n public onWillDisplayProduct?: WillDisplayProductCallback;\n\n /**\n * Defaults to true. You can hide the cart icon by setting this property to false. \n */\n public get cartIconVisible(): boolean {\n return this._cartIconVisible;\n }\n public set cartIconVisible(value: boolean) {\n this._cartIconVisible = value;\n ShoppingModule.setCartIconVisible(value);\n }\n private _cartIconVisible: boolean = true;\n\n public currentCartPage?: React.ReactNode;\n\n private get eventEmitter(): NativeEventEmitter {\n return ShoppingModuleEventEmitter;\n }\n\n public static getInstance() {\n if (!VideoShopping._instance) {\n VideoShopping._instance = new VideoShopping();\n }\n\n return VideoShopping._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.AddToCart, (event) => {\n this.handleAddToCartEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.ClickCartIcon, (event) => {\n this.handleClickCartIconEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.UpdateProductDetails, (event) => {\n this.handleUpdateProductDetailsEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.WillDisplayProduct, (event) => {\n this.handleWillDisplayProductEvent(event);\n });\n }\n\n /**\n * Exit Cart Page.\n *\n * The host app can call this method to exit their cart page.\n */\n public exitCartPage() {\n ShoppingModule.exitCartPage();\n }\n\n /**\n * \n * @param {number} count The number of items in the host app cart\n */\n public setCartItemCount(count: number) {\n ShoppingModule.setCartItemCount(count);\n }\n\n private async handleAddToCartEvent(event: AddToCartEvent & CallbackInfo) {\n if (this.onAddToCart) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const result = await this.onAddToCart(event as AddToCartEvent);\n if (result) {\n ShoppingModule.updateAddToCartStatus(\n result.res,\n result.tips,\n callbackId!,\n );\n }\n }\n }\n\n private async handleClickCartIconEvent(event: CallbackInfo) {\n if (this.onClickCartIcon) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const cartPage = await this.onClickCartIcon();\n this.currentCartPage = cartPage;\n\n if (cartPage) {\n ShoppingModule.jumpToCartPage(callbackId!);\n }\n }\n }\n\n private async handleUpdateProductDetailsEvent(\n event: UpdateProductDetailsEvent & CallbackInfo\n ) {\n if (this.onUpdateProductDetails) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const productList = await this.onUpdateProductDetails(\n event as UpdateProductDetailsEvent\n );\n console.log('handleUpdateProductDetailsEvent productList', JSON.stringify(productList));\n if (productList) {\n ShoppingModule.updateVideoProducts(productList, callbackId!);\n }\n }\n }\n\n private async handleWillDisplayProductEvent(\n event: WillDisplayProductEvent & CallbackInfo\n ) {\n if (this.onWillDisplayProduct) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const config = await this.onWillDisplayProduct(\n event as WillDisplayProductEvent\n );\n if (config) {\n ShoppingModule.updateProductViewConfig(config, callbackId!);\n }\n }\n }\n}\n\nexport default VideoShopping;\n"]}