react-native-firework-sdk 1.9.0-beta.3 → 2.0.0-beta.5

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 (187) hide show
  1. package/README.md +1 -1
  2. package/android/build.gradle +25 -43
  3. package/android/src/main/AndroidManifest.xml +4 -4
  4. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +48 -193
  5. package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +7 -0
  6. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +2 -0
  7. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +24 -0
  8. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +10 -0
  9. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +21 -0
  10. package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +17 -0
  11. package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +35 -0
  12. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +11 -0
  13. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +24 -0
  14. package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +9 -0
  15. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +13 -13
  16. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +70 -0
  17. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -1
  18. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +9 -10
  19. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +67 -0
  20. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +0 -3
  21. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +19 -11
  22. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +74 -0
  23. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProduct.kt +17 -15
  24. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductDeserializer.kt +120 -0
  25. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +4 -130
  26. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +71 -100
  27. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +2 -0
  28. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +1 -1
  29. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +1 -1
  30. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +2 -50
  31. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +17 -35
  32. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +145 -111
  33. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +104 -133
  34. package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +1 -14
  35. package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/{FWDataUtils.kt → FWDataConvertUtils.kt} +1 -11
  36. package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +5 -5
  37. package/android/src/main/java/com/fireworksdk/bridge/utils/FWCommonUtil.kt +23 -0
  38. package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +339 -0
  39. package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +14 -0
  40. package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +10 -12
  41. package/android/src/main/res/layout/fw_bridge_fragment_container.xml +2 -2
  42. package/android/src/main/res/values/colors.xml +2 -2
  43. package/android/src/main/res/values/styles.xml +0 -40
  44. package/ios/Components/StoryBlock.swift +1 -5
  45. package/ios/Components/VideoFeed.swift +17 -32
  46. package/ios/Components/VideoPlayerConfiguration.swift +0 -5
  47. package/ios/FireworkSdk-Bridging-Header.h +0 -6
  48. package/ios/FireworkSdk.xcodeproj/project.pbxproj +208 -374
  49. package/ios/Models/NativeToRN/FireworkEventName.swift +1 -1
  50. package/ios/Models/RNToNative/RCTConvert+FireworkSDKModule.swift +20 -0
  51. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +86 -33
  52. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
  53. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +13 -34
  54. package/ios/Modules/FireworkSDKModule/SDKInitOptions.swift +29 -0
  55. package/ios/Utils/{Extensions/DispatchQueue+FWOnce.swift → DispatchQueue+FWOnce.swift} +3 -3
  56. package/ios/Utils/FWSwizzleLoader.m +1 -1
  57. package/ios/Utils/FWSwizzleUtil.swift +9 -17
  58. package/ios/Utils/{Extensions/Swizzle/UINavigationController+FWSwizzle.swift → UINavigationController+FWSwizzle.swift} +8 -6
  59. package/ios/Utils/UIView+ParentViewController.swift +21 -0
  60. package/ios/react_native_firework_sdk.h +0 -1
  61. package/lib/commonjs/FWNavigator.js +8 -41
  62. package/lib/commonjs/FWNavigator.js.map +1 -1
  63. package/lib/commonjs/FireworkSDK.js +50 -77
  64. package/lib/commonjs/FireworkSDK.js.map +1 -1
  65. package/lib/commonjs/LiveStream.js +2 -2
  66. package/lib/commonjs/LiveStream.js.map +1 -1
  67. package/lib/commonjs/VideoShopping.js +3 -38
  68. package/lib/commonjs/VideoShopping.js.map +1 -1
  69. package/lib/commonjs/components/StoryBlock.js +22 -4
  70. package/lib/commonjs/components/StoryBlock.js.map +1 -1
  71. package/lib/commonjs/components/VideoFeed.js +17 -26
  72. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  73. package/lib/commonjs/index.js.map +1 -1
  74. package/lib/commonjs/models/AndroidFontInfo.js +2 -0
  75. package/lib/commonjs/models/FWEventName.js +1 -2
  76. package/lib/commonjs/models/FWEventName.js.map +1 -1
  77. package/lib/commonjs/models/SDKInitOptions.js +2 -0
  78. package/lib/commonjs/modules/FWNavigatorModule.js.map +1 -1
  79. package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
  80. package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
  81. package/lib/module/FWNavigator.js +9 -40
  82. package/lib/module/FWNavigator.js.map +1 -1
  83. package/lib/module/FireworkSDK.js +51 -76
  84. package/lib/module/FireworkSDK.js.map +1 -1
  85. package/lib/module/LiveStream.js +2 -2
  86. package/lib/module/LiveStream.js.map +1 -1
  87. package/lib/module/VideoShopping.js +3 -37
  88. package/lib/module/VideoShopping.js.map +1 -1
  89. package/lib/module/components/StoryBlock.js +20 -4
  90. package/lib/module/components/StoryBlock.js.map +1 -1
  91. package/lib/module/components/VideoFeed.js +18 -23
  92. package/lib/module/components/VideoFeed.js.map +1 -1
  93. package/lib/module/index.js.map +1 -1
  94. package/lib/module/models/AndroidFontInfo.js +2 -0
  95. package/lib/module/models/AndroidFontInfo.js.map +1 -0
  96. package/lib/module/models/FWEventName.js +1 -2
  97. package/lib/module/models/FWEventName.js.map +1 -1
  98. package/lib/module/models/SDKInitOptions.js +2 -0
  99. package/lib/module/models/SDKInitOptions.js.map +1 -0
  100. package/lib/module/modules/FWNavigatorModule.js.map +1 -1
  101. package/lib/module/modules/FireworkSDKModule.js +1 -2
  102. package/lib/module/modules/FireworkSDKModule.js.map +1 -1
  103. package/lib/module/modules/ShoppingModule.js.map +1 -1
  104. package/lib/typescript/FWNavigator.d.ts +6 -24
  105. package/lib/typescript/FireworkSDK.d.ts +22 -28
  106. package/lib/typescript/LiveStream.d.ts +2 -2
  107. package/lib/typescript/VideoShopping.d.ts +1 -18
  108. package/lib/typescript/components/StoryBlock.d.ts +9 -2
  109. package/lib/typescript/components/VideoFeed.d.ts +12 -5
  110. package/lib/typescript/index.d.ts +7 -6
  111. package/lib/typescript/models/AndroidFontInfo.d.ts +14 -0
  112. package/lib/typescript/models/FWEventName.d.ts +1 -2
  113. package/lib/typescript/models/FWEvents.d.ts +0 -6
  114. package/lib/typescript/models/SDKInitOptions.d.ts +6 -0
  115. package/lib/typescript/models/VideoFeedConfiguration.d.ts +11 -14
  116. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +1 -6
  117. package/lib/typescript/modules/FWNavigatorModule.d.ts +0 -3
  118. package/lib/typescript/modules/FireworkSDKModule.d.ts +4 -5
  119. package/lib/typescript/modules/ShoppingModule.d.ts +0 -2
  120. package/package.json +1 -1
  121. package/react-native-firework-sdk.podspec +18 -15
  122. package/src/FWNavigator.ts +8 -42
  123. package/src/FireworkSDK.ts +55 -71
  124. package/src/LiveStream.ts +2 -2
  125. package/src/VideoShopping.ts +4 -54
  126. package/src/components/StoryBlock.tsx +25 -4
  127. package/src/components/VideoFeed.tsx +22 -21
  128. package/src/index.ts +5 -11
  129. package/src/models/AndroidFontInfo.ts +14 -0
  130. package/src/models/FWEventName.ts +1 -2
  131. package/src/models/FWEvents.ts +0 -7
  132. package/src/models/SDKInitOptions.ts +7 -0
  133. package/src/models/VideoFeedConfiguration.ts +11 -14
  134. package/src/models/VideoPlayerConfiguration.ts +1 -7
  135. package/src/modules/FWNavigatorModule.ts +0 -1
  136. package/src/modules/FireworkSDKModule.ts +6 -8
  137. package/src/modules/ShoppingModule.ts +0 -5
  138. package/android/src/main/java/com/fireworksdk/bridge/utils/FWGsonUtil.kt +0 -38
  139. package/android/src/main/java/com/fireworksdk/bridge/utils/FWVideoPlayerUtils.kt +0 -123
  140. package/android/src/main/res/layout/fw_bridge_fragment_playlistfeed.xml +0 -18
  141. package/android/src/main/res/layout/fw_bridge_fragment_shoppingcart.xml +0 -8
  142. package/android/src/main/res/layout/fw_bridge_fragment_videofeed.xml +0 -17
  143. package/ios/Utils/AppLanguage/Bundle+FWSwizzle.swift +0 -58
  144. package/ios/Utils/AppLanguage/FWAppLanguageManager.swift +0 -118
  145. package/ios/Utils/AppLanguage/FWLanguageUtil.swift +0 -39
  146. package/ios/Utils/AppLanguage/NumberFormatter+FWSwizzle.swift +0 -25
  147. package/ios/Utils/AppLanguage/UIImageView+FWSwizzle.swift +0 -91
  148. package/ios/Utils/AppLanguage/UILabel+FWSwizzle.swift +0 -98
  149. package/ios/Utils/AppLanguage/UITextField+FWSwizzle.swift +0 -97
  150. package/ios/Utils/AppLanguage/UITextView+FWSwizzle.swift +0 -97
  151. package/ios/Utils/AppLanguage/UIView+FWSwizzle.swift +0 -38
  152. package/ios/Utils/AppLanguage/UIViewController+FWSwizzle.swift +0 -32
  153. package/ios/Utils/AppLanguage/UIWindow+FWSwizzle.swift +0 -26
  154. package/ios/Utils/AppLanguage/URLSession+FWSwizzle.swift +0 -69
  155. package/ios/Utils/Extensions/UIView+FWUIHierarchy.swift +0 -47
  156. package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.h +0 -25
  157. package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.m +0 -75
  158. package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.h +0 -21
  159. package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.m +0 -124
  160. package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.h +0 -11
  161. package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.m +0 -86
  162. package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.h +0 -16
  163. package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.m +0 -55
  164. package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.h +0 -18
  165. package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.m +0 -39
  166. package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.h +0 -54
  167. package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.m +0 -141
  168. package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.h +0 -16
  169. package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.m +0 -20
  170. package/ios/Utils/FWRTL/Classes/Utils/FWRTLDefinitions.h +0 -52
  171. package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.h +0 -19
  172. package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.m +0 -49
  173. package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.h +0 -21
  174. package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.m +0 -38
  175. package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.h +0 -18
  176. package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.m +0 -43
  177. package/ios/Utils/FWSwizzleLoader.swift +0 -13
  178. package/ios/scripts/firework_sdk_pods.rb +0 -3
  179. package/lib/commonjs/models/NewNativeContainerProps.js +0 -2
  180. package/lib/module/models/NewNativeContainerProps.js +0 -2
  181. package/lib/typescript/models/NewNativeContainerProps.d.ts +0 -6
  182. package/src/models/NewNativeContainerProps.ts +0 -4
  183. /package/ios/Utils/{Extensions/String+Color.swift → String+Color.swift} +0 -0
  184. /package/ios/Utils/{Extensions/UIView+Constraints.swift → UIView+Constraints.swift} +0 -0
  185. /package/ios/Utils/{Extensions/UIViewController+AttachChild.swift → UIViewController+AttachChild.swift} +0 -0
  186. /package/lib/commonjs/models/{NewNativeContainerProps.js.map → AndroidFontInfo.js.map} +0 -0
  187. /package/lib/{module/models/NewNativeContainerProps.js.map → commonjs/models/SDKInitOptions.js.map} +0 -0
@@ -32,7 +32,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
32
32
  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; }
33
33
 
34
34
  /**
35
- * Entry class of Firework SDK, which supports the sdk initialization and global configuration.
35
+ * Firework SDK.
36
36
  */
37
37
  class FireworkSDK {
38
38
  /**
@@ -59,20 +59,7 @@ class FireworkSDK {
59
59
  }
60
60
 
61
61
  /**
62
- * The custom CTA link content page route name.
63
- */
64
- get customCTALinkContentPageRouteName() {
65
- return this._customCTALinkContentPageRouteName;
66
- }
67
-
68
- set customCTALinkContentPageRouteName(value) {
69
- this._customCTALinkContentPageRouteName = value;
70
-
71
- _FireworkSDKModule.default.setCustomCTALinkContentPageRouteName(value !== null && value !== void 0 ? value : '');
72
- }
73
-
74
- /**
75
- * The callback of video playback.
62
+ * The callback of video playback. Only supported on iOS.
76
63
  */
77
64
  get onVideoPlayback() {
78
65
  return this._onVideoPlayback;
@@ -85,64 +72,38 @@ class FireworkSDK {
85
72
  }
86
73
 
87
74
  /**
88
- * The share base URL of videos.
89
- * The set accessor is async.
75
+ * Get share base URL.
90
76
  */
91
- get shareBaseURL() {
77
+ getShareBaseURL() {
92
78
  return this._shareBaseURL;
93
79
  }
94
80
 
95
- set shareBaseURL(value) {
96
- _FireworkSDKModule.default.setShareBaseURL(value !== null && value !== void 0 ? value : '').then(() => {
97
- const valueHasChanged = this._shareBaseURL !== value;
98
- this._shareBaseURL = value;
99
-
100
- if (valueHasChanged) {
101
- this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
102
- }
103
- });
104
- }
105
-
106
81
  /**
107
- * The configuration for ad badges.
108
- * The set accessor is async.
82
+ * Get the configuration for ad badges. Only supported on iOS.
109
83
  */
110
- get adBadgeConfiguration() {
84
+ getAdBadgeConfiguration() {
111
85
  return this._adBadgeConfiguration;
112
86
  }
113
-
114
- set adBadgeConfiguration(value) {
115
- _FireworkSDKModule.default.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {}).then(() => {
116
- var _this$_adBadgeConfigu, _this$_adBadgeConfigu2, _this$_adBadgeConfigu3;
117
-
118
- const valueHasChanged = ((_this$_adBadgeConfigu = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu === void 0 ? void 0 : _this$_adBadgeConfigu.badgeTextType) !== (value === null || value === void 0 ? void 0 : value.badgeTextType) || ((_this$_adBadgeConfigu2 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu2 === void 0 ? void 0 : _this$_adBadgeConfigu2.backgroundColor) !== (value === null || value === void 0 ? void 0 : value.backgroundColor) || ((_this$_adBadgeConfigu3 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu3 === void 0 ? void 0 : _this$_adBadgeConfigu3.textColor) !== (value === null || value === void 0 ? void 0 : value.textColor);
119
- this._adBadgeConfiguration = value;
120
-
121
- if (valueHasChanged) {
122
- this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
123
- }
124
- });
125
- }
126
-
127
87
  /**
128
- * The app component name.
88
+ * Set the configuration for ad badges. Only supported on iOS.
129
89
  */
130
- get appComponentName() {
131
- return this._appComponentName;
132
- }
133
90
 
134
- set appComponentName(value) {
135
- this._appComponentName = value;
136
91
 
137
- _FireworkSDKModule.default.setAppComponentName(value !== null && value !== void 0 ? value : '');
138
- }
92
+ async setAdBadgeConfiguration(value) {
93
+ var _this$_adBadgeConfigu, _this$_adBadgeConfigu2, _this$_adBadgeConfigu3;
94
+
95
+ await _FireworkSDKModule.default.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {});
96
+ const valueHasChanged = ((_this$_adBadgeConfigu = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu === void 0 ? void 0 : _this$_adBadgeConfigu.badgeTextType) !== (value === null || value === void 0 ? void 0 : value.badgeTextType) || ((_this$_adBadgeConfigu2 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu2 === void 0 ? void 0 : _this$_adBadgeConfigu2.backgroundColor) !== (value === null || value === void 0 ? void 0 : value.backgroundColor) || ((_this$_adBadgeConfigu3 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu3 === void 0 ? void 0 : _this$_adBadgeConfigu3.textColor) !== (value === null || value === void 0 ? void 0 : value.textColor);
97
+ this._adBadgeConfiguration = value;
139
98
 
140
- get appLanguage() {
141
- return this._appLanguage;
99
+ if (valueHasChanged) {
100
+ this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
101
+ }
142
102
  }
143
103
 
144
104
  /**
145
- * Defaults to false. You can enable debug logs by setting this property to true.
105
+ * Defaults to false.
106
+ * You can enable debug logs by setting this property to true.
146
107
  */
147
108
  get debugLogsEnabled() {
148
109
  return _FWLoggerUtil.default.enabled;
@@ -151,6 +112,14 @@ class FireworkSDK {
151
112
  set debugLogsEnabled(value) {
152
113
  _FWLoggerUtil.default.enabled = value;
153
114
  }
115
+ /**
116
+ * Get video launch behavior.
117
+ */
118
+
119
+
120
+ getVideoLaunchBehavior() {
121
+ return this._videoLaunchBehavior;
122
+ }
154
123
 
155
124
  get eventEmitter() {
156
125
  return _FireworkSDKModule.FireworkSDKModuleEventEmitter;
@@ -197,17 +166,13 @@ class FireworkSDK {
197
166
 
198
167
  _defineProperty(this, "_onCustomCTAClick", void 0);
199
168
 
200
- _defineProperty(this, "_customCTALinkContentPageRouteName", void 0);
201
-
202
169
  _defineProperty(this, "_onVideoPlayback", void 0);
203
170
 
204
171
  _defineProperty(this, "_shareBaseURL", void 0);
205
172
 
206
173
  _defineProperty(this, "_adBadgeConfiguration", void 0);
207
174
 
208
- _defineProperty(this, "_appComponentName", void 0);
209
-
210
- _defineProperty(this, "_appLanguage", void 0);
175
+ _defineProperty(this, "_videoLaunchBehavior", void 0);
211
176
 
212
177
  _defineProperty(this, "_shopping", _VideoShopping.default.getInstance());
213
178
 
@@ -251,14 +216,28 @@ class FireworkSDK {
251
216
  }
252
217
  /**
253
218
  * Initializes Firework SDK.
254
- * @param {string?} userId An id to uniquely identify device or user.
219
+ * @param {SDKInitOptions?} options
255
220
  */
256
221
 
257
222
 
258
- init(userId) {
223
+ async init(options) {
259
224
  _FWLoggerUtil.default.log('Call FireworkSDK init method');
260
225
 
261
- _FireworkSDKModule.default.init(userId);
226
+ _FireworkSDKModule.default.init(options).then(() => {
227
+ const shareBaseURLChanged = this._shareBaseURL !== (options === null || options === void 0 ? void 0 : options.shareBaseURL);
228
+ this._shareBaseURL = options === null || options === void 0 ? void 0 : options.shareBaseURL;
229
+
230
+ if (shareBaseURLChanged) {
231
+ this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
232
+ }
233
+
234
+ const videoLaunchBehaviorUpdated = this._videoLaunchBehavior !== (options === null || options === void 0 ? void 0 : options.videoLaunchBehavior);
235
+ this._videoLaunchBehavior = options === null || options === void 0 ? void 0 : options.videoLaunchBehavior;
236
+
237
+ if (videoLaunchBehaviorUpdated) {
238
+ this.eventEmitter.emit(_FWEventName.FWEventName.VideoLaunchBehaviorUpdated);
239
+ }
240
+ });
262
241
 
263
242
  _ShoppingModule.default.init();
264
243
 
@@ -286,25 +265,19 @@ class FireworkSDK {
286
265
  }
287
266
  }
288
267
  /**
289
- * Change App level language.
268
+ * Change App level language. Only supported on Android.
290
269
  * @param {string} language Such as en, ar and en-US
291
- * @returns
270
+ * @returns {Promise<boolean>}
292
271
  */
293
272
 
294
273
 
295
274
  async changeAppLanguage(language) {
296
- const result = await _FireworkSDKModule.default.changeAppLanguage(language);
297
-
298
- if (result) {
299
- const valueHasChanged = this._appLanguage !== language;
300
- this._appLanguage = language;
301
-
302
- if (valueHasChanged) {
303
- this.eventEmitter.emit(_FWEventName.FWEventName.AppLanguageUpdated);
304
- }
275
+ if (_reactNative.Platform.OS === 'android') {
276
+ const result = await _FireworkSDKModule.default.changeAppLanguage(language);
277
+ return result;
305
278
  }
306
279
 
307
- return result;
280
+ return false;
308
281
  }
309
282
 
310
283
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","customCTALinkContentPageRouteName","_customCTALinkContentPageRouteName","setCustomCTALinkContentPageRouteName","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","valueHasChanged","eventEmitter","emit","FWEventName","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","badgeTextType","backgroundColor","textColor","AdBadgeConfigurationUpdated","appComponentName","_appComponentName","setAppComponentName","appLanguage","_appLanguage","debugLogsEnabled","enabled","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","userId","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","Platform","OS","changeAppLanguage","language","result","AppLanguageUpdated"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\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 FWLoggerUtil from './utils/FWLoggerUtil';\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\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 FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The custom CTA link content page route name.\n */\n public get customCTALinkContentPageRouteName(): string | undefined {\n return this._customCTALinkContentPageRouteName;\n }\n public set customCTALinkContentPageRouteName(value: string | undefined) {\n this._customCTALinkContentPageRouteName = value;\n FireworkSDKModule.setCustomCTALinkContentPageRouteName(value ?? '');\n }\n private _customCTALinkContentPageRouteName: string | 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 * The set accessor is async.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n FireworkSDKModule.setShareBaseURL(value ?? '').then(() => {\n const valueHasChanged = this._shareBaseURL !== value;\n this._shareBaseURL = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n });\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n * The set accessor is async.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {}).then(() => {\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !==\n value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n });\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n /**\n * The app component name.\n */\n public get appComponentName(): string | undefined {\n return this._appComponentName;\n }\n public set appComponentName(value: string | undefined) {\n this._appComponentName = value;\n FireworkSDKModule.setAppComponentName(value ?? '');\n }\n private _appComponentName: string | undefined;\n\n public get appLanguage(): string | undefined {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined;\n\n /**\n * Defaults to false. You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\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 FWLoggerUtil.log('FireworkSDK constructor');\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\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 */\n public init(userId?: string) {\n FWLoggerUtil.log('Call FireworkSDK init method');\n\n FireworkSDKModule.init(userId);\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 /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language.\n * @param {string} language Such as en, ar and en-US\n * @returns\n */\n public async changeAppLanguage(language: string): Promise<boolean> {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n if (result) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n return result;\n }\n}\n\nexport default FireworkSDK;\n"]}
1
+ {"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","getShareBaseURL","_shareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","debugLogsEnabled","enabled","getVideoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","options","then","shareBaseURLChanged","shareBaseURL","ShareBaseURLUpdated","videoLaunchBehaviorUpdated","videoLaunchBehavior","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","Platform","OS","changeAppLanguage","language","result"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;;AAWA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA,MAAMA,WAAN,CAAkB;AAGhB;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AAC6B,MAAhBC,gBAAgB,GAAuC;AAChE,WAAO,KAAKC,iBAAZ;AACD;;AAC0B,MAAhBD,gBAAgB,CAACE,KAAD,EAA4C;AACrEC,0BAAaC,GAAb,CAAkB,iCAAgC,CAAC,CAACF,KAAM,EAA1D;;AACA,SAAKD,iBAAL,GAAyBC,KAAzB;;AACAG,+BAAkBC,wBAAlB,CAA2CJ,KAAK,GAAG,IAAH,GAAU,KAA1D;AACD;;AAGD;AACF;AACA;AAC4B,MAAfK,eAAe,GAAsC;AAC9D,WAAO,KAAKC,gBAAZ;AACD;;AACyB,MAAfD,eAAe,CAACL,KAAD,EAA2C;AACnE,SAAKM,gBAAL,GAAwBN,KAAxB;;AACAG,+BAAkBI,4BAAlB,CAA+CP,KAAK,GAAG,IAAH,GAAU,KAA9D;AACD;;AAGD;AACF;AACA;AACSQ,EAAAA,eAAe,GAAuB;AAC3C,WAAO,KAAKC,aAAZ;AACD;;AAGD;AACF;AACA;AACSC,EAAAA,uBAAuB,GAAqC;AACjE,WAAO,KAAKC,qBAAZ;AACD;AACD;AACF;AACA;;;AACsC,QAAvBC,uBAAuB,CAClCZ,KADkC,EAEnB;AAAA;;AACf,UAAMG,2BAAkBS,uBAAlB,CAA0CZ,KAA1C,aAA0CA,KAA1C,cAA0CA,KAA1C,GAAmD,EAAnD,CAAN;AACA,UAAMa,eAAe,GACnB,+BAAKF,qBAAL,gFAA4BG,aAA5B,OAA8Cd,KAA9C,aAA8CA,KAA9C,uBAA8CA,KAAK,CAAEc,aAArD,KACA,gCAAKH,qBAAL,kFAA4BI,eAA5B,OAAgDf,KAAhD,aAAgDA,KAAhD,uBAAgDA,KAAK,CAAEe,eAAvD,CADA,IAEA,gCAAKJ,qBAAL,kFAA4BK,SAA5B,OAA0ChB,KAA1C,aAA0CA,KAA1C,uBAA0CA,KAAK,CAAEgB,SAAjD,CAHF;AAIA,SAAKL,qBAAL,GAA6BX,KAA7B;;AACA,QAAIa,eAAJ,EAAqB;AACnB,WAAKI,YAAL,CAAkBC,IAAlB,CAAuBC,yBAAYC,2BAAnC;AACD;AACF;;AAGD;AACF;AACA;AACA;AAC6B,MAAhBC,gBAAgB,GAAY;AACrC,WAAOpB,sBAAaqB,OAApB;AACD;;AAC0B,MAAhBD,gBAAgB,CAACrB,KAAD,EAAiB;AAC1CC,0BAAaqB,OAAb,GAAuBtB,KAAvB;AACD;AAED;AACF;AACA;;;AACSuB,EAAAA,sBAAsB,GAAoC;AAC/D,WAAO,KAAKC,oBAAZ;AACD;;AAGuB,MAAZP,YAAY,GAAuB;AAC7C,WAAOQ,gDAAP;AACD;AAED;AACF;AACA;;;AACqB,MAARC,QAAQ,GAAkB;AACnC,WAAO,KAAKC,SAAZ;AACD;;AAGD;AACF;AACA;AACuB,MAAVC,UAAU,GAAe;AAClC,WAAO,KAAKC,WAAZ;AACD;;AAGD;AACF;AACA;AACsB,MAATC,SAAS,GAAgB;AAClC,WAAO,KAAKC,UAAZ;AACD;;AAGD;AACF;AACA;AACA;AAC2B,SAAXC,WAAW,GAAG;AAC1B,QAAI,CAACnC,WAAW,CAACoC,SAAjB,EAA4B;AAC1BpC,MAAAA,WAAW,CAACoC,SAAZ,GAAwB,IAAIpC,WAAJ,EAAxB;AACD;;AAED,WAAOA,WAAW,CAACoC,SAAnB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,uCA9BaC,uBAAcH,WAAd,EA8Bb;;AAAA,yCAtBYI,oBAAWJ,WAAX,EAsBZ;;AAAA,wCAdYK,qBAAYL,WAAZ,EAcZ;;AACpB/B,0BAAaC,GAAb,CAAiB,yBAAjB;;AACA,SAAKe,YAAL,CAAkBqB,WAAlB,CAA8BnB,yBAAYoB,OAA1C,EAAoDC,KAAD,IAAW;AAC5DvC,4BAAaC,GAAb,CAAkB,yBAAwBsC,KAAzB,aAAyBA,KAAzB,uBAAyBA,KAAK,CAAEC,KAAM,EAAvD;;AAEA,UAAI,KAAKC,SAAT,EAAoB;AAClB,aAAKA,SAAL,CAAeF,KAAf,aAAeA,KAAf,cAAeA,KAAf,GAAwB,EAAxB;AACD;AACF,KAND;AAQA,SAAKvB,YAAL,CAAkBqB,WAAlB,CAA8BnB,yBAAYwB,UAA1C,EAAuDH,KAAD,IAAW;AAC/DvC,4BAAa2C,gBAAb,CAA8BJ,KAAK,CAACK,OAApC;AACD,KAFD;AAIA,SAAK5B,YAAL,CAAkBqB,WAAlB,CAA8BnB,yBAAY2B,cAA1C,EAA2DN,KAAD,IAAW;AACnEvC,4BAAaC,GAAb,CAAkB,+BAA8BsC,KAA/B,aAA+BA,KAA/B,uBAA+BA,KAAK,CAAEO,GAAI,EAA3D;;AAEA,UAAI,KAAKjD,gBAAT,EAA2B;AACzB,aAAKA,gBAAL,CAAsB0C,KAAtB,aAAsBA,KAAtB,cAAsBA,KAAtB,GAA+B,EAA/B;AACD;AACF,KAND;AAQA,SAAKvB,YAAL,CAAkBqB,WAAlB,CAA8BnB,yBAAY6B,aAA1C,EAA0DR,KAAD,IAAW;AAClEvC,4BAAaC,GAAb,CACG,0CAAyCsC,KAA1C,aAA0CA,KAA1C,uBAA0CA,KAAK,CAAES,SAAU,EAD7D;;AAIA,UAAI,KAAK5C,eAAT,EAA0B;AACxB,aAAKA,eAAL,CAAqBmC,KAArB,aAAqBA,KAArB,cAAqBA,KAArB,GAA8B,EAA9B;AACD;AACF,KARD;AAUA,SAAKvB,YAAL,CAAkBqB,WAAlB,CAA8BnB,yBAAY+B,cAA1C,EAA2DV,KAAD,IAAW;AACnEvC,4BAAaC,GAAb,CAAkB,oCAAmCsC,KAApC,aAAoCA,KAApC,uBAAoCA,KAAK,CAAEW,IAAP,CAAYC,EAAG,EAApE;;AAEA,UAAI,KAAKC,gBAAT,EAA2B;AACzB,aAAKA,gBAAL,CAAsBb,KAAtB,aAAsBA,KAAtB,cAAsBA,KAAtB,GAA+B,EAA/B;AACD;AACF,KAND;AAOD;AAED;AACF;AACA;AACA;;;AACmB,QAAJc,IAAI,CAACC,OAAD,EAA0C;AACzDtD,0BAAaC,GAAb,CAAiB,8BAAjB;;AAEAC,+BAAkBmD,IAAlB,CAAuBC,OAAvB,EAAgCC,IAAhC,CAAqC,MAAM;AACzC,YAAMC,mBAAmB,GAAG,KAAKhD,aAAL,MAAuB8C,OAAvB,aAAuBA,OAAvB,uBAAuBA,OAAO,CAAEG,YAAhC,CAA5B;AACA,WAAKjD,aAAL,GAAqB8C,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEG,YAA9B;;AACA,UAAID,mBAAJ,EAAyB;AACvB,aAAKxC,YAAL,CAAkBC,IAAlB,CAAuBC,yBAAYwC,mBAAnC;AACD;;AAED,YAAMC,0BAA0B,GAC9B,KAAKpC,oBAAL,MAA8B+B,OAA9B,aAA8BA,OAA9B,uBAA8BA,OAAO,CAAEM,mBAAvC,CADF;AAEA,WAAKrC,oBAAL,GAA4B+B,OAA5B,aAA4BA,OAA5B,uBAA4BA,OAAO,CAAEM,mBAArC;;AACA,UAAID,0BAAJ,EAAgC;AAC9B,aAAK3C,YAAL,CAAkBC,IAAlB,CAAuBC,yBAAY2C,0BAAnC;AACD;AACF,KAbD;;AAcAC,4BAAeT,IAAf;;AACAU,8BAAiBV,IAAjB;AACD;AAED;AACF;AACA;AACA;AACA;;;AACSW,EAAAA,eAAe,CAAClB,GAAD,EAAcmB,MAAd,EAAiD;AACrE/D,+BAAkB8D,eAAlB,CAAkClB,GAAlC,EAAuCmB,MAAvC,aAAuCA,MAAvC,cAAuCA,MAAvC,GAAiD,EAAjD;AACD;AAED;AACF;AACA;AACA;;;AACSC,EAAAA,aAAa,CAACC,UAAD,EAAsC;AACxD,QAAIC,sBAASC,EAAT,KAAgB,KAApB,EAA2B;AACzBnE,iCAAkBgE,aAAlB,CAAgCC,UAAhC;AACD;AACF;AAED;AACF;AACA;AACA;AACA;;;AACgC,QAAjBG,iBAAiB,CAACC,QAAD,EAAqC;AACjE,QAAIH,sBAASC,EAAT,KAAgB,SAApB,EAA+B;AAC7B,YAAMG,MAAM,GAAG,MAAMtE,2BAAkBoE,iBAAlB,CAAoCC,QAApC,CAArB;AACA,aAAOC,MAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAlOe;;gBAAZ5E,W;;eAqOSA,W","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\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 FWLoggerUtil from './utils/FWLoggerUtil';\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 * Firework SDK.\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 FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback. Only supported on iOS.\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 * Get share base URL.\n */\n public getShareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * Get the configuration for ad badges. Only supported on iOS.\n */\n public getAdBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n /**\n * Set the configuration for ad badges. Only supported on iOS.\n */\n public async setAdBadgeConfiguration(\n value: AdBadgeConfiguration | undefined\n ): Promise<void> {\n await FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n /**\n * Defaults to false.\n * You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n /**\n * Get video launch behavior.\n */\n public getVideoLaunchBehavior(): VideoLaunchBehavior | undefined {\n return this._videoLaunchBehavior;\n }\n private _videoLaunchBehavior: VideoLaunchBehavior | 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 this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\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 FWLoggerUtil.log('FireworkSDK constructor');\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n\n FireworkSDKModule.init(options).then(() => {\n const shareBaseURLChanged = this._shareBaseURL !== options?.shareBaseURL;\n this._shareBaseURL = options?.shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n });\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 /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language. Only supported on Android.\n * @param {string} language Such as en, ar and en-US\n * @returns {Promise<boolean>}\n */\n public async changeAppLanguage(language: string): Promise<boolean> {\n if (Platform.OS === 'android') {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n return result;\n }\n\n return false;\n }\n}\n\nexport default FireworkSDK;\n"]}
@@ -20,11 +20,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
20
20
  */
21
21
  class LiveStream {
22
22
  /**
23
- * The callback of live stream event.
23
+ * The callback of live stream event. Only supported on iOS.
24
24
  */
25
25
 
26
26
  /**
27
- * The callback of live stream chat event.
27
+ * The callback of live stream chat event. Only supported on iOS.
28
28
  */
29
29
  get eventEmitter() {
30
30
  return _LiveStreamModule.LiveStreamModuleEventEmitter;
@@ -1 +1 @@
1
- {"version":3,"sources":["LiveStream.ts"],"names":["LiveStream","eventEmitter","LiveStreamModuleEventEmitter","getInstance","_instance","constructor","FWLoggerUtil","log","addListener","FWEventName","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;;;;;AAOA;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;;AACpBC,0BAAaC,GAAb,CAAiB,wBAAjB;;AACA,SAAKN,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYT,UAA1C,EAAuDU,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKT,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYG,cAA1C,EAA2DF,KAAD,IAAW;AACnE,UAAI,KAAKG,qBAAT,EAAgC;AAC9B,aAAKA,qBAAL,CAA2BH,KAA3B,aAA2BA,KAA3B,cAA2BA,KAA3B,GAAoC,EAApC;AACD;AACF,KAJD;AAKD;;AArCc;;gBAAXV,U;;eAwCSA,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';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;\nexport type onLiveStreamChatEventCallback = (\n event: LiveStreamChatEvent\n) => 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 FWLoggerUtil.log('LiveStream constructor');\n this.eventEmitter.addListener(FWEventName.LiveStream, (event) => {\n if (this.onLiveStreamEvent) {\n this.onLiveStreamEvent(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LiveStreamChat, (event) => {\n if (this.onLiveStreamChatEvent) {\n this.onLiveStreamChatEvent(event ?? {});\n }\n });\n }\n}\n\nexport default LiveStream;\n"]}
1
+ {"version":3,"sources":["LiveStream.ts"],"names":["LiveStream","eventEmitter","LiveStreamModuleEventEmitter","getInstance","_instance","constructor","FWLoggerUtil","log","addListener","FWEventName","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;;;;;AAOA;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;;AACpBC,0BAAaC,GAAb,CAAiB,wBAAjB;;AACA,SAAKN,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYT,UAA1C,EAAuDU,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKT,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYG,cAA1C,EAA2DF,KAAD,IAAW;AACnE,UAAI,KAAKG,qBAAT,EAAgC;AAC9B,aAAKA,qBAAL,CAA2BH,KAA3B,aAA2BA,KAA3B,cAA2BA,KAA3B,GAAoC,EAApC;AACD;AACF,KAJD;AAKD;;AArCc;;gBAAXV,U;;eAwCSA,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';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;\nexport type onLiveStreamChatEventCallback = (\n event: LiveStreamChatEvent\n) => 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. Only supported on iOS.\n */\n public onLiveStreamEvent?: onLiveStreamEventCallback;\n /**\n * The callback of live stream chat event. Only supported on iOS.\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 FWLoggerUtil.log('LiveStream constructor');\n this.eventEmitter.addListener(FWEventName.LiveStream, (event) => {\n if (this.onLiveStreamEvent) {\n this.onLiveStreamEvent(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LiveStreamChat, (event) => {\n if (this.onLiveStreamChatEvent) {\n this.onLiveStreamChatEvent(event ?? {});\n }\n });\n }\n}\n\nexport default LiveStream;\n"]}
@@ -32,13 +32,6 @@ class VideoShopping {
32
32
  * If the host apps want to customize the processing logic of clicking "Add to cart" button, they could return null or undefined in the callback.
33
33
  */
34
34
 
35
- /**
36
- * This callback is triggered when the user clicks the shopping cart icon.
37
- *
38
- * The host app can return NewNativeContainerProps object
39
- * and we will push a new native container with the props.
40
- */
41
-
42
35
  /**
43
36
  * This callback is triggered when the user clicks the shopping cart icon.
44
37
  *
@@ -123,14 +116,10 @@ class VideoShopping {
123
116
  constructor() {
124
117
  _defineProperty(this, "onAddToCart", void 0);
125
118
 
126
- _defineProperty(this, "onClickCartIcon", void 0);
127
-
128
119
  _defineProperty(this, "_onCustomClickCartIcon", void 0);
129
120
 
130
121
  _defineProperty(this, "onUpdateProductDetails", void 0);
131
122
 
132
- _defineProperty(this, "onWillDisplayProduct", void 0);
133
-
134
123
  _defineProperty(this, "_cartIconVisible", true);
135
124
 
136
125
  _defineProperty(this, "_productInfoViewConfiguration", void 0);
@@ -142,21 +131,16 @@ class VideoShopping {
142
131
 
143
132
  this.handleAddToCartEvent(event);
144
133
  });
145
- this.eventEmitter.addListener(_FWEventName.FWEventName.ClickCartIcon, event => {
134
+ this.eventEmitter.addListener(_FWEventName.FWEventName.ClickCartIcon, () => {
146
135
  _FWLoggerUtil.default.log('Receive ClickCartIcon event');
147
136
 
148
- this.handleClickCartIconEvent(event);
137
+ this.handleClickCartIconEvent();
149
138
  });
150
139
  this.eventEmitter.addListener(_FWEventName.FWEventName.UpdateProductDetails, event => {
151
140
  _FWLoggerUtil.default.log(`Receive UpdateProductDetails event productIds: ${event === null || event === void 0 ? void 0 : event.productIds}`);
152
141
 
153
142
  this.handleUpdateProductDetailsEvent(event);
154
143
  });
155
- this.eventEmitter.addListener(_FWEventName.FWEventName.WillDisplayProduct, event => {
156
- _FWLoggerUtil.default.log(`Receive WillDisplayProduct event videoId: ${event === null || event === void 0 ? void 0 : event.videoId}`);
157
-
158
- this.handleWillDisplayProductEvent(event);
159
- });
160
144
  this.eventEmitter.addListener(_FWEventName.FWEventName.LogMessage, () => {});
161
145
 
162
146
  if (_reactNative.Platform.OS === 'android') {
@@ -208,17 +192,9 @@ class VideoShopping {
208
192
  }
209
193
  }
210
194
 
211
- async handleClickCartIconEvent(event) {
195
+ async handleClickCartIconEvent() {
212
196
  if (this.onCustomClickCartIcon) {
213
197
  this.onCustomClickCartIcon();
214
- } else if (this.onClickCartIcon) {
215
- const callbackId = event.callbackId;
216
- delete event.callbackId;
217
- const props = await this.onClickCartIcon();
218
-
219
- if (callbackId) {
220
- _ShoppingModule.default.jumpToCartPage(callbackId, props !== null && props !== void 0 ? props : {});
221
- }
222
198
  }
223
199
  }
224
200
 
@@ -260,17 +236,6 @@ class VideoShopping {
260
236
  }
261
237
  }
262
238
 
263
- async handleWillDisplayProductEvent(event) {
264
- if (this.onWillDisplayProduct) {
265
- delete event.callbackId;
266
- const config = await this.onWillDisplayProduct(event);
267
-
268
- if (config) {
269
- _ShoppingModule.default.setProductInfoViewConfiguration(config);
270
- }
271
- }
272
- }
273
-
274
239
  async handleCustomLinkButtonClickEvent(event) {
275
240
  if (this.onCustomClickLinkButton) {
276
241
  this.onCustomClickLinkButton(event);
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","onCustomClickCartIcon","_onCustomClickCartIcon","value","Platform","OS","ShoppingModule","setCustomClickCartIconEnabled","cartIconVisible","_cartIconVisible","setCartIconVisible","productInfoViewConfiguration","_productInfoViewConfiguration","setProductInfoViewConfiguration","onCustomClickLinkButton","_onCustomClickLinkButton","setCustomClickLinkButtonEnabled","eventEmitter","ShoppingModuleEventEmitter","getInstance","FWLoggerUtil","log","_instance","constructor","addListener","FWEventName","AddToCart","event","productId","unitId","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","productIds","handleUpdateProductDetailsEvent","WillDisplayProduct","videoId","handleWillDisplayProductEvent","LogMessage","CustomLinkButtonClick","url","handleCustomLinkButtonClickEvent","setCartItemCount","count","callbackId","onAddToCart","result","updateAddToCartStatus","res","tips","clearCallbackId","onClickCartIcon","props","jumpToCartPage","onUpdateProductDetails","productList","map","product","length","updateVideoProducts","onWillDisplayProduct","config"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport type AddToCartResult from './models/AddToCartResult';\nimport type {\n AddToCartEvent,\n CustomClickLinkButtonEvent,\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, {\n ShoppingModuleEventEmitter,\n} from './modules/ShoppingModule';\nimport type { NewNativeContainerProps } from './models/NewNativeContainerProps';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type AddToCartCallback = (\n event: AddToCartEvent\n) => Promise<AddToCartResult | undefined | null>;\n\nexport type ClickCartIconCallback = () => Promise<\n NewNativeContainerProps | undefined | null\n>;\n\nexport type CustomClickCartIconCallback = () => Promise<void>;\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\nexport type CustomClickLinkButtonCallback = (\n event: CustomClickLinkButtonEvent\n) => Promise<void>;\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 apps can return an AddToCartResult object to tell FireworkSDK the result of adding to cart.\n * If the host apps want to customize the processing logic of clicking \"Add to cart\" button, they could return null or undefined in the callback.\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 NewNativeContainerProps object\n * and we will push a new native container with the props.\n */\n public onClickCartIcon?: ClickCartIconCallback;\n\n /**\n * This callback is triggered when the user clicks the shopping cart icon.\n *\n * The host app can customize the click event processing logic of\n * the shopping cart icon by setting the callback.\n */\n public get onCustomClickCartIcon(): CustomClickCartIconCallback | undefined {\n return this._onCustomClickCartIcon;\n }\n public set onCustomClickCartIcon(\n value: CustomClickCartIconCallback | undefined\n ) {\n this._onCustomClickCartIcon = value;\n if (Platform.OS === 'ios') {\n ShoppingModule.setCustomClickCartIconEnabled(!!value);\n }\n }\n private _onCustomClickCartIcon?: CustomClickCartIconCallback | undefined;\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 * Please use productInfoViewConfiguration property. Only supported on iOS.\n *\n * @deprecated The property will be deprecated since RN SDK V2.\n */\n public onWillDisplayProduct?: WillDisplayProductCallback;\n\n /**\n * Defaults to true.\n * 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 /**\n * The host app can use this property to configure \"Add to cart\" button style\n * and hide the link button next to \"Add to cart\" button. Only supported on iOS.\n */\n public get productInfoViewConfiguration():\n | ProductInfoViewConfiguration\n | undefined {\n return this._productInfoViewConfiguration;\n }\n\n public set productInfoViewConfiguration(\n value: ProductInfoViewConfiguration | undefined\n ) {\n this._productInfoViewConfiguration = value;\n if (Platform.OS === 'ios') {\n ShoppingModule.setProductInfoViewConfiguration(value ?? {});\n }\n }\n\n private _productInfoViewConfiguration?:\n | ProductInfoViewConfiguration\n | undefined;\n\n /**\n * This callback is triggered when the user clicks\n * the link button next to Add to cart button. Only supported on Android.\n *\n * The host app can customize the click event processing logic of\n * the link button by setting the callback.\n */\n public get onCustomClickLinkButton():\n | CustomClickLinkButtonCallback\n | undefined {\n return this._onCustomClickLinkButton;\n }\n public set onCustomClickLinkButton(\n value: CustomClickLinkButtonCallback | undefined\n ) {\n this._onCustomClickLinkButton = value;\n if (Platform.OS === 'android') {\n ShoppingModule.setCustomClickLinkButtonEnabled(!!value);\n }\n }\n private _onCustomClickLinkButton?: CustomClickLinkButtonCallback | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return ShoppingModuleEventEmitter;\n }\n\n public static getInstance() {\n FWLoggerUtil.log('VideoShopping constructor');\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 FWLoggerUtil.log(\n `Receive AddToCart event productId: ${event?.productId} unitId: ${event?.unitId}`\n );\n this.handleAddToCartEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.ClickCartIcon, (event) => {\n FWLoggerUtil.log('Receive ClickCartIcon event');\n this.handleClickCartIconEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.UpdateProductDetails, (event) => {\n FWLoggerUtil.log(\n `Receive UpdateProductDetails event productIds: ${event?.productIds}`\n );\n this.handleUpdateProductDetailsEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.WillDisplayProduct, (event) => {\n FWLoggerUtil.log(\n `Receive WillDisplayProduct event videoId: ${event?.videoId}`\n );\n this.handleWillDisplayProductEvent(event);\n });\n this.eventEmitter.addListener(FWEventName.LogMessage, () => {});\n\n if (Platform.OS === 'android') {\n this.eventEmitter.addListener(\n FWEventName.CustomLinkButtonClick,\n (event) => {\n FWLoggerUtil.log(\n `Receive CustomLinkButtonClick event url: ${event?.url}`\n );\n this.handleCustomLinkButtonClickEvent(event);\n }\n );\n }\n }\n\n /**\n *\n * @param {number} count The number of items in the host app cart.\n * The count should be greater than or equal to 0.\n * We just use count to show or hide red indicator on the cart icon.\n * If cound > 0, we will show the red indicator on the cart icon.\n * Otherwise, we will hide the red indicator on the cart icon.\n */\n public setCartItemCount(count: number) {\n ShoppingModule.setCartItemCount(count);\n }\n\n private async handleAddToCartEvent(event: any) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (this.onAddToCart) {\n const result = await this.onAddToCart(event as AddToCartEvent);\n if (result) {\n if (callbackId) {\n ShoppingModule.updateAddToCartStatus(\n result.res,\n result.tips,\n callbackId\n );\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(callbackId, FWEventName.AddToCart);\n }\n }\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(callbackId, FWEventName.AddToCart);\n }\n }\n }\n }\n\n private async handleClickCartIconEvent(event: any) {\n if (this.onCustomClickCartIcon) {\n this.onCustomClickCartIcon();\n } else if (this.onClickCartIcon) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const props = await this.onClickCartIcon();\n if (callbackId) {\n ShoppingModule.jumpToCartPage(callbackId, props ?? {});\n }\n }\n }\n\n private async handleUpdateProductDetailsEvent(event: any) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (this.onUpdateProductDetails) {\n FWLoggerUtil.log(\n `Call onUpdateProductDetails callback productIds: ${event.productIds} callbackId: ${callbackId}`\n );\n const productList = await this.onUpdateProductDetails(\n event as UpdateProductDetailsEvent\n );\n\n const productIds = (productList || []).map(\n (product) => product.productId ?? ''\n );\n\n FWLoggerUtil.log(\n `Get result from onUpdateProductDetails callback productIds: ${productIds} productListLength: ${\n (productList || []).length\n }`\n );\n\n if (productList) {\n if (callbackId) {\n ShoppingModule.updateVideoProducts(productList, callbackId);\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(\n callbackId,\n FWEventName.UpdateProductDetails\n );\n }\n }\n }\n } else {\n FWLoggerUtil.log('onUpdateProductDetails callback is not set.');\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(\n callbackId,\n FWEventName.UpdateProductDetails\n );\n }\n }\n }\n }\n\n private async handleWillDisplayProductEvent(event: any) {\n if (this.onWillDisplayProduct) {\n delete event.callbackId;\n const config = await this.onWillDisplayProduct(\n event as WillDisplayProductEvent\n );\n if (config) {\n ShoppingModule.setProductInfoViewConfiguration(config);\n }\n }\n }\n\n private async handleCustomLinkButtonClickEvent(\n event: CustomClickLinkButtonEvent\n ) {\n if (this.onCustomClickLinkButton) {\n this.onCustomClickLinkButton(event);\n }\n }\n}\n\nexport default VideoShopping;\n"]}
1
+ {"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","onCustomClickCartIcon","_onCustomClickCartIcon","value","Platform","OS","ShoppingModule","setCustomClickCartIconEnabled","cartIconVisible","_cartIconVisible","setCartIconVisible","productInfoViewConfiguration","_productInfoViewConfiguration","setProductInfoViewConfiguration","onCustomClickLinkButton","_onCustomClickLinkButton","setCustomClickLinkButtonEnabled","eventEmitter","ShoppingModuleEventEmitter","getInstance","FWLoggerUtil","log","_instance","constructor","addListener","FWEventName","AddToCart","event","productId","unitId","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","productIds","handleUpdateProductDetailsEvent","LogMessage","CustomLinkButtonClick","url","handleCustomLinkButtonClickEvent","setCartItemCount","count","callbackId","onAddToCart","result","updateAddToCartStatus","res","tips","clearCallbackId","onUpdateProductDetails","productList","map","product","length","updateVideoProducts"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport type AddToCartResult from './models/AddToCartResult';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n AddToCartEvent,\n CustomClickLinkButtonEvent,\n UpdateProductDetailsEvent,\n} from './models/FWEvents';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport ShoppingModule, {\n ShoppingModuleEventEmitter,\n} from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type AddToCartCallback = (\n event: AddToCartEvent\n) => Promise<AddToCartResult | undefined | null>;\n\nexport type CustomClickCartIconCallback = () => Promise<void>;\n\nexport type UpdateProductDetailsCallback = (\n event: UpdateProductDetailsEvent\n) => Promise<Product[] | undefined | null>;\n\nexport type CustomClickLinkButtonCallback = (\n event: CustomClickLinkButtonEvent\n) => Promise<void>;\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 apps can return an AddToCartResult object to tell FireworkSDK the result of adding to cart.\n * If the host apps want to customize the processing logic of clicking \"Add to cart\" button, they could return null or undefined in the callback.\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 customize the click event processing logic of\n * the shopping cart icon by setting the callback.\n */\n public get onCustomClickCartIcon(): CustomClickCartIconCallback | undefined {\n return this._onCustomClickCartIcon;\n }\n public set onCustomClickCartIcon(\n value: CustomClickCartIconCallback | undefined\n ) {\n this._onCustomClickCartIcon = value;\n if (Platform.OS === 'ios') {\n ShoppingModule.setCustomClickCartIconEnabled(!!value);\n }\n }\n private _onCustomClickCartIcon?: CustomClickCartIconCallback | undefined;\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 * Defaults to true.\n * 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 /**\n * The host app can use this property to configure \"Add to cart\" button style\n * and hide the link button next to \"Add to cart\" button. Only supported on iOS.\n */\n public get productInfoViewConfiguration():\n | ProductInfoViewConfiguration\n | undefined {\n return this._productInfoViewConfiguration;\n }\n\n public set productInfoViewConfiguration(\n value: ProductInfoViewConfiguration | undefined\n ) {\n this._productInfoViewConfiguration = value;\n if (Platform.OS === 'ios') {\n ShoppingModule.setProductInfoViewConfiguration(value ?? {});\n }\n }\n\n private _productInfoViewConfiguration?:\n | ProductInfoViewConfiguration\n | undefined;\n\n /**\n * This callback is triggered when the user clicks\n * the link button next to Add to cart button. Only supported on Android.\n *\n * The host app can customize the click event processing logic of\n * the link button by setting the callback.\n */\n public get onCustomClickLinkButton():\n | CustomClickLinkButtonCallback\n | undefined {\n return this._onCustomClickLinkButton;\n }\n public set onCustomClickLinkButton(\n value: CustomClickLinkButtonCallback | undefined\n ) {\n this._onCustomClickLinkButton = value;\n if (Platform.OS === 'android') {\n ShoppingModule.setCustomClickLinkButtonEnabled(!!value);\n }\n }\n private _onCustomClickLinkButton?: CustomClickLinkButtonCallback | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return ShoppingModuleEventEmitter;\n }\n\n public static getInstance() {\n FWLoggerUtil.log('VideoShopping constructor');\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 FWLoggerUtil.log(\n `Receive AddToCart event productId: ${event?.productId} unitId: ${event?.unitId}`\n );\n this.handleAddToCartEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.ClickCartIcon, () => {\n FWLoggerUtil.log('Receive ClickCartIcon event');\n this.handleClickCartIconEvent();\n });\n\n this.eventEmitter.addListener(FWEventName.UpdateProductDetails, (event) => {\n FWLoggerUtil.log(\n `Receive UpdateProductDetails event productIds: ${event?.productIds}`\n );\n this.handleUpdateProductDetailsEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, () => {});\n\n if (Platform.OS === 'android') {\n this.eventEmitter.addListener(\n FWEventName.CustomLinkButtonClick,\n (event) => {\n FWLoggerUtil.log(\n `Receive CustomLinkButtonClick event url: ${event?.url}`\n );\n this.handleCustomLinkButtonClickEvent(event);\n }\n );\n }\n }\n\n /**\n *\n * @param {number} count The number of items in the host app cart.\n * The count should be greater than or equal to 0.\n * We just use count to show or hide red indicator on the cart icon.\n * If cound > 0, we will show the red indicator on the cart icon.\n * Otherwise, we will hide the red indicator on the cart icon.\n */\n public setCartItemCount(count: number) {\n ShoppingModule.setCartItemCount(count);\n }\n\n private async handleAddToCartEvent(event: any) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (this.onAddToCart) {\n const result = await this.onAddToCart(event as AddToCartEvent);\n if (result) {\n if (callbackId) {\n ShoppingModule.updateAddToCartStatus(\n result.res,\n result.tips,\n callbackId\n );\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(callbackId, FWEventName.AddToCart);\n }\n }\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(callbackId, FWEventName.AddToCart);\n }\n }\n }\n }\n\n private async handleClickCartIconEvent() {\n if (this.onCustomClickCartIcon) {\n this.onCustomClickCartIcon();\n }\n }\n\n private async handleUpdateProductDetailsEvent(event: any) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (this.onUpdateProductDetails) {\n FWLoggerUtil.log(\n `Call onUpdateProductDetails callback productIds: ${event.productIds} callbackId: ${callbackId}`\n );\n const productList = await this.onUpdateProductDetails(\n event as UpdateProductDetailsEvent\n );\n\n const productIds = (productList || []).map(\n (product) => product.productId ?? ''\n );\n\n FWLoggerUtil.log(\n `Get result from onUpdateProductDetails callback productIds: ${productIds} productListLength: ${\n (productList || []).length\n }`\n );\n\n if (productList) {\n if (callbackId) {\n ShoppingModule.updateVideoProducts(productList, callbackId);\n }\n } else {\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(\n callbackId,\n FWEventName.UpdateProductDetails\n );\n }\n }\n }\n } else {\n FWLoggerUtil.log('onUpdateProductDetails callback is not set.');\n if (callbackId) {\n if (Platform.OS === 'ios') {\n ShoppingModule.clearCallbackId(\n callbackId,\n FWEventName.UpdateProductDetails\n );\n }\n }\n }\n }\n\n private async handleCustomLinkButtonClickEvent(\n event: CustomClickLinkButtonEvent\n ) {\n if (this.onCustomClickLinkButton) {\n this.onCustomClickLinkButton(event);\n }\n }\n}\n\nexport default VideoShopping;\n"]}
@@ -32,7 +32,14 @@ const createFragment = viewId => {
32
32
  _reactNative.UIManager.dispatchViewManagerCommand(viewId, _reactNative.UIManager.getViewManagerConfig(NativeComponentName).Commands.create.toString(), [viewId]);
33
33
  }
34
34
  };
35
+ /**
36
+ * The props type of StoryBlock component.
37
+ */
35
38
 
39
+
40
+ /**
41
+ * StoryBlock component. Only supported on iOS.
42
+ */
36
43
  class StoryBlock extends _react.default.Component {
37
44
  constructor() {
38
45
  super(...arguments);
@@ -84,6 +91,14 @@ class StoryBlock extends _react.default.Component {
84
91
 
85
92
  this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);
86
93
 
94
+ const subscriptionOfVideoLaunchBehaviorUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.VideoLaunchBehaviorUpdated, () => {
95
+ _FWLoggerUtil.default.log('Receive FWEventName.VideoLaunchBehaviorUpdated');
96
+
97
+ this.setState({});
98
+ });
99
+
100
+ this.subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);
101
+
87
102
  if (_reactNative.Platform.OS === 'android') {
88
103
  const viewId = (0, _reactNative.findNodeHandle)(this.nativeComponentRef.current);
89
104
 
@@ -116,7 +131,7 @@ class StoryBlock extends _react.default.Component {
116
131
  }
117
132
 
118
133
  _generateKey() {
119
- var _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3;
134
+ var _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _FireworkSDK$getInsta3;
120
135
 
121
136
  const {
122
137
  source,
@@ -124,14 +139,15 @@ class StoryBlock extends _react.default.Component {
124
139
  playlist = '',
125
140
  enablePictureInPicture = false
126
141
  } = this.props;
127
- const shareBaseURL = (_FireworkSDK$getInsta = _FireworkSDK.default.getInstance().shareBaseURL) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
128
- const adBadgeConfiguration = (_FireworkSDK$getInsta2 = _FireworkSDK.default.getInstance().adBadgeConfiguration) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
142
+ const shareBaseURL = (_FireworkSDK$getInsta = _FireworkSDK.default.getInstance().getShareBaseURL()) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
143
+ const adBadgeConfiguration = (_FireworkSDK$getInsta2 = _FireworkSDK.default.getInstance().getAdBadgeConfiguration()) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
129
144
  const adBadgeTextType = (_adBadgeConfiguration = adBadgeConfiguration.badgeTextType) !== null && _adBadgeConfiguration !== void 0 ? _adBadgeConfiguration : '';
130
145
  const backgroundColorOfAdBadge = (_adBadgeConfiguration2 = adBadgeConfiguration.backgroundColor) !== null && _adBadgeConfiguration2 !== void 0 ? _adBadgeConfiguration2 : '';
131
146
  const textColorOfAdBadge = (_adBadgeConfiguration3 = adBadgeConfiguration.textColor) !== null && _adBadgeConfiguration3 !== void 0 ? _adBadgeConfiguration3 : '';
132
147
 
133
148
  const dynamicContentParametersString = this._generateDynamicContentParametersString();
134
149
 
150
+ const videoLaunchBehavior = (_FireworkSDK$getInsta3 = _FireworkSDK.default.getInstance().getVideoLaunchBehavior()) !== null && _FireworkSDK$getInsta3 !== void 0 ? _FireworkSDK$getInsta3 : 'default';
135
151
  let key = `source:${source}`;
136
152
  key += `_channel:${channel}`;
137
153
  key += `_playlist:${playlist}`;
@@ -141,6 +157,7 @@ class StoryBlock extends _react.default.Component {
141
157
  key += `_textColorOfAdBadge:${textColorOfAdBadge}`;
142
158
  key += `_dynamicContentParameters:${dynamicContentParametersString}`;
143
159
  key += `_enablePictureInPicture:${enablePictureInPicture}`;
160
+ key += `_videoLaunchBehavior:${videoLaunchBehavior}`;
144
161
  return key;
145
162
  }
146
163
 
@@ -172,5 +189,6 @@ class StoryBlock extends _react.default.Component {
172
189
 
173
190
  }
174
191
 
175
- exports.default = StoryBlock;
192
+ var _default = StoryBlock;
193
+ exports.default = _default;
176
194
  //# sourceMappingURL=StoryBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","createFragment","viewId","Platform","OS","UIManager","dispatchViewManagerCommand","getViewManagerConfig","Commands","create","toString","StoryBlock","React","Component","createRef","event","FWLoggerUtil","log","nativeEvent","name","onStoryBlockLoadFinished","props","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","nativeComponentRef","current","componentWillUnmount","forEach","value","remove","render","style","_generateKey","_onStoryBlockLoadFinished","Object","assign","zIndex","source","channel","playlist","enablePictureInPicture","shareBaseURL","FireworkSDK","getInstance","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","key","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type {\n EmitterSubscription,\n NativeSyntheticEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\nimport { findNodeHandle, Platform, UIManager } from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type { StoryBlockSource } from '../models/StoryBlockSource';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWStoryBlock from './FWStoryBlock';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nconst createFragment = (viewId: any) => {\n if (Platform.OS === 'android') {\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }\n};\n\nexport interface IStoryBlockProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of four available story block sources.\n */\n source: StoryBlockSource;\n /**\n * Channel id of the story block. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the story block. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * The dynamic content parameters of the story block. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n}\n\nexport default class StoryBlock extends React.Component<IStoryBlockProps> {\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n componentDidMount() {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n if (Platform.OS === 'android') {\n const viewId = findNodeHandle(this.nativeComponentRef.current);\n FWLoggerUtil.log(\n `StoryBlock componentDidMount createFragment viewId: ${viewId}`\n );\n createFragment(viewId);\n }\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n const { style } = this.props;\n\n return (\n <FWStoryBlock\n ref={this.nativeComponentRef}\n key={this._generateKey()}\n {...this.props}\n onStoryBlockLoadFinished={this._onStoryBlockLoadFinished}\n style={Object.assign({}, style, { zIndex: -1 })}\n />\n );\n }\n\n private _onStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock _onStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished } = this.props;\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockLoadFinished) {\n if (name) {\n if (reason) {\n onStoryBlockLoadFinished({ name, reason });\n } else {\n onStoryBlockLoadFinished({ name });\n }\n } else {\n onStoryBlockLoadFinished();\n }\n }\n };\n\n private _generateKey(): string {\n const {\n source,\n channel = '',\n playlist = '',\n enablePictureInPicture = false,\n } = this.props;\n\n const shareBaseURL = FireworkSDK.getInstance().shareBaseURL ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().adBadgeConfiguration ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n\n let key = `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n\n return key;\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\n\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n }\n}\n"]}
1
+ {"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","createFragment","viewId","Platform","OS","UIManager","dispatchViewManagerCommand","getViewManagerConfig","Commands","create","toString","StoryBlock","React","Component","createRef","event","FWLoggerUtil","log","nativeEvent","name","onStoryBlockLoadFinished","props","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","nativeComponentRef","current","componentWillUnmount","forEach","value","remove","render","style","_generateKey","_onStoryBlockLoadFinished","Object","assign","zIndex","source","channel","playlist","enablePictureInPicture","shareBaseURL","FireworkSDK","getInstance","getShareBaseURL","adBadgeConfiguration","getAdBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","videoLaunchBehavior","getVideoLaunchBehavior","key","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type {\n EmitterSubscription,\n NativeSyntheticEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\nimport { findNodeHandle, Platform, UIManager } from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type { StoryBlockSource } from '../models/StoryBlockSource';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWStoryBlock from './FWStoryBlock';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nconst createFragment = (viewId: any) => {\n if (Platform.OS === 'android') {\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }\n};\n\n/**\n * The props type of StoryBlock component.\n */\nexport interface IStoryBlockProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of four available story block sources.\n */\n source: StoryBlockSource;\n /**\n * Channel id of the story block. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the story block. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * The dynamic content parameters of the story block. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * Specifies if Picture in Picture is enabled.\n */\n enablePictureInPicture?: boolean;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n}\n\n/**\n * StoryBlock component. Only supported on iOS.\n */\nclass StoryBlock extends React.Component<IStoryBlockProps> {\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n componentDidMount() {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);\n\n if (Platform.OS === 'android') {\n const viewId = findNodeHandle(this.nativeComponentRef.current);\n FWLoggerUtil.log(\n `StoryBlock componentDidMount createFragment viewId: ${viewId}`\n );\n createFragment(viewId);\n }\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n const { style } = this.props;\n\n return (\n <FWStoryBlock\n ref={this.nativeComponentRef}\n key={this._generateKey()}\n {...this.props}\n onStoryBlockLoadFinished={this._onStoryBlockLoadFinished}\n style={Object.assign({}, style, { zIndex: -1 })}\n />\n );\n }\n\n private _onStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock _onStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished } = this.props;\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockLoadFinished) {\n if (name) {\n if (reason) {\n onStoryBlockLoadFinished({ name, reason });\n } else {\n onStoryBlockLoadFinished({ name });\n }\n } else {\n onStoryBlockLoadFinished();\n }\n }\n };\n\n private _generateKey(): string {\n const {\n source,\n channel = '',\n playlist = '',\n enablePictureInPicture = false,\n } = this.props;\n\n const shareBaseURL = FireworkSDK.getInstance().getShareBaseURL() ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().getAdBadgeConfiguration() ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n const videoLaunchBehavior =\n FireworkSDK.getInstance().getVideoLaunchBehavior() ?? 'default';\n\n let key = `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_videoLaunchBehavior:${videoLaunchBehavior}`;\n\n return key;\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\n\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n }\n}\n\nexport default StoryBlock;\n"]}