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
@@ -1 +1 @@
1
- {"version":3,"sources":["FireworkSDK.ts"],"names":["Platform","FWNavigator","LiveStream","FWEventName","FireworkSDKModule","FireworkSDKModuleEventEmitter","LiveStreamModule","ShoppingModule","FWLoggerUtil","VideoShopping","FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","log","setCustomCTAClickEnabled","customCTALinkContentPageRouteName","_customCTALinkContentPageRouteName","setCustomCTALinkContentPageRouteName","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","valueHasChanged","eventEmitter","emit","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","badgeTextType","backgroundColor","textColor","AdBadgeConfigurationUpdated","appComponentName","_appComponentName","setAppComponentName","appLanguage","_appLanguage","debugLogsEnabled","enabled","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","userId","openVideoPlayer","config","trackPurchase","parameters","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":["Platform","FWNavigator","LiveStream","FWEventName","FireworkSDKModule","FireworkSDKModuleEventEmitter","LiveStreamModule","ShoppingModule","FWLoggerUtil","VideoShopping","FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","log","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","getShareBaseURL","_shareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","AdBadgeConfigurationUpdated","debugLogsEnabled","enabled","getVideoLaunchBehavior","_videoLaunchBehavior","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","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","openVideoPlayer","config","trackPurchase","parameters","OS","changeAppLanguage","language","result"],"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 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"]}
@@ -9,11 +9,11 @@ import FWLoggerUtil from './utils/FWLoggerUtil';
9
9
  */
10
10
  class LiveStream {
11
11
  /**
12
- * The callback of live stream event.
12
+ * The callback of live stream event. Only supported on iOS.
13
13
  */
14
14
 
15
15
  /**
16
- * The callback of live stream chat event.
16
+ * The callback of live stream chat event. Only supported on iOS.
17
17
  */
18
18
  get eventEmitter() {
19
19
  return LiveStreamModuleEventEmitter;
@@ -1 +1 @@
1
- {"version":3,"sources":["LiveStream.ts"],"names":["FWEventName","LiveStreamModuleEventEmitter","FWLoggerUtil","LiveStream","eventEmitter","getInstance","_instance","constructor","log","addListener","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;AACA,SAASA,WAAT,QAA4B,sBAA5B;AAEA,SAASC,4BAAT,QAA6C,4BAA7C;AACA,OAAOC,YAAP,MAAyB,sBAAzB;;AAOA;AACA;AACA;AACA,MAAMC,UAAN,CAAiB;AAGf;AACF;AACA;;AAEE;AACF;AACA;AAG0B,MAAZC,YAAY,GAAuB;AAC7C,WAAOH,4BAAP;AACD;;AAEwB,SAAXI,WAAW,GAAG;AAC1B,QAAI,CAACF,UAAU,CAACG,SAAhB,EAA2B;AACzBH,MAAAA,UAAU,CAACG,SAAX,GAAuB,IAAIH,UAAJ,EAAvB;AACD;;AAED,WAAOA,UAAU,CAACG,SAAlB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AACpBL,IAAAA,YAAY,CAACM,GAAb,CAAiB,wBAAjB;AACA,SAAKJ,YAAL,CAAkBK,WAAlB,CAA8BT,WAAW,CAACG,UAA1C,EAAuDO,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKN,YAAL,CAAkBK,WAAlB,CAA8BT,WAAW,CAACY,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;;gBAAXP,U;;AAwCN,eAAeA,UAAf","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":["FWEventName","LiveStreamModuleEventEmitter","FWLoggerUtil","LiveStream","eventEmitter","getInstance","_instance","constructor","log","addListener","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;AACA,SAASA,WAAT,QAA4B,sBAA5B;AAEA,SAASC,4BAAT,QAA6C,4BAA7C;AACA,OAAOC,YAAP,MAAyB,sBAAzB;;AAOA;AACA;AACA;AACA,MAAMC,UAAN,CAAiB;AAGf;AACF;AACA;;AAEE;AACF;AACA;AAG0B,MAAZC,YAAY,GAAuB;AAC7C,WAAOH,4BAAP;AACD;;AAEwB,SAAXI,WAAW,GAAG;AAC1B,QAAI,CAACF,UAAU,CAACG,SAAhB,EAA2B;AACzBH,MAAAA,UAAU,CAACG,SAAX,GAAuB,IAAIH,UAAJ,EAAvB;AACD;;AAED,WAAOA,UAAU,CAACG,SAAlB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AACpBL,IAAAA,YAAY,CAACM,GAAb,CAAiB,wBAAjB;AACA,SAAKJ,YAAL,CAAkBK,WAAlB,CAA8BT,WAAW,CAACG,UAA1C,EAAuDO,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKN,YAAL,CAAkBK,WAAlB,CAA8BT,WAAW,CAACY,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;;gBAAXP,U;;AAwCN,eAAeA,UAAf","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"]}
@@ -16,13 +16,6 @@ class VideoShopping {
16
16
  * 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.
17
17
  */
18
18
 
19
- /**
20
- * This callback is triggered when the user clicks the shopping cart icon.
21
- *
22
- * The host app can return NewNativeContainerProps object
23
- * and we will push a new native container with the props.
24
- */
25
-
26
19
  /**
27
20
  * This callback is triggered when the user clicks the shopping cart icon.
28
21
  *
@@ -106,14 +99,10 @@ class VideoShopping {
106
99
  constructor() {
107
100
  _defineProperty(this, "onAddToCart", void 0);
108
101
 
109
- _defineProperty(this, "onClickCartIcon", void 0);
110
-
111
102
  _defineProperty(this, "_onCustomClickCartIcon", void 0);
112
103
 
113
104
  _defineProperty(this, "onUpdateProductDetails", void 0);
114
105
 
115
- _defineProperty(this, "onWillDisplayProduct", void 0);
116
-
117
106
  _defineProperty(this, "_cartIconVisible", true);
118
107
 
119
108
  _defineProperty(this, "_productInfoViewConfiguration", void 0);
@@ -124,18 +113,14 @@ class VideoShopping {
124
113
  FWLoggerUtil.log(`Receive AddToCart event productId: ${event === null || event === void 0 ? void 0 : event.productId} unitId: ${event === null || event === void 0 ? void 0 : event.unitId}`);
125
114
  this.handleAddToCartEvent(event);
126
115
  });
127
- this.eventEmitter.addListener(FWEventName.ClickCartIcon, event => {
116
+ this.eventEmitter.addListener(FWEventName.ClickCartIcon, () => {
128
117
  FWLoggerUtil.log('Receive ClickCartIcon event');
129
- this.handleClickCartIconEvent(event);
118
+ this.handleClickCartIconEvent();
130
119
  });
131
120
  this.eventEmitter.addListener(FWEventName.UpdateProductDetails, event => {
132
121
  FWLoggerUtil.log(`Receive UpdateProductDetails event productIds: ${event === null || event === void 0 ? void 0 : event.productIds}`);
133
122
  this.handleUpdateProductDetailsEvent(event);
134
123
  });
135
- this.eventEmitter.addListener(FWEventName.WillDisplayProduct, event => {
136
- FWLoggerUtil.log(`Receive WillDisplayProduct event videoId: ${event === null || event === void 0 ? void 0 : event.videoId}`);
137
- this.handleWillDisplayProductEvent(event);
138
- });
139
124
  this.eventEmitter.addListener(FWEventName.LogMessage, () => {});
140
125
 
141
126
  if (Platform.OS === 'android') {
@@ -186,17 +171,9 @@ class VideoShopping {
186
171
  }
187
172
  }
188
173
 
189
- async handleClickCartIconEvent(event) {
174
+ async handleClickCartIconEvent() {
190
175
  if (this.onCustomClickCartIcon) {
191
176
  this.onCustomClickCartIcon();
192
- } else if (this.onClickCartIcon) {
193
- const callbackId = event.callbackId;
194
- delete event.callbackId;
195
- const props = await this.onClickCartIcon();
196
-
197
- if (callbackId) {
198
- ShoppingModule.jumpToCartPage(callbackId, props !== null && props !== void 0 ? props : {});
199
- }
200
177
  }
201
178
  }
202
179
 
@@ -236,17 +213,6 @@ class VideoShopping {
236
213
  }
237
214
  }
238
215
 
239
- async handleWillDisplayProductEvent(event) {
240
- if (this.onWillDisplayProduct) {
241
- delete event.callbackId;
242
- const config = await this.onWillDisplayProduct(event);
243
-
244
- if (config) {
245
- ShoppingModule.setProductInfoViewConfiguration(config);
246
- }
247
- }
248
- }
249
-
250
216
  async handleCustomLinkButtonClickEvent(event) {
251
217
  if (this.onCustomClickLinkButton) {
252
218
  this.onCustomClickLinkButton(event);
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoShopping.ts"],"names":["Platform","FWEventName","ShoppingModule","ShoppingModuleEventEmitter","FWLoggerUtil","VideoShopping","onCustomClickCartIcon","_onCustomClickCartIcon","value","OS","setCustomClickCartIconEnabled","cartIconVisible","_cartIconVisible","setCartIconVisible","productInfoViewConfiguration","_productInfoViewConfiguration","setProductInfoViewConfiguration","onCustomClickLinkButton","_onCustomClickLinkButton","setCustomClickLinkButtonEnabled","eventEmitter","getInstance","log","_instance","constructor","addListener","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":["Platform","FWEventName","ShoppingModule","ShoppingModuleEventEmitter","FWLoggerUtil","VideoShopping","onCustomClickCartIcon","_onCustomClickCartIcon","value","OS","setCustomClickCartIconEnabled","cartIconVisible","_cartIconVisible","setCartIconVisible","productInfoViewConfiguration","_productInfoViewConfiguration","setProductInfoViewConfiguration","onCustomClickLinkButton","_onCustomClickLinkButton","setCustomClickLinkButtonEnabled","eventEmitter","getInstance","log","_instance","constructor","addListener","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"]}
@@ -16,8 +16,15 @@ const createFragment = viewId => {
16
16
  UIManager.dispatchViewManagerCommand(viewId, UIManager.getViewManagerConfig(NativeComponentName).Commands.create.toString(), [viewId]);
17
17
  }
18
18
  };
19
+ /**
20
+ * The props type of StoryBlock component.
21
+ */
19
22
 
20
- export default class StoryBlock extends React.Component {
23
+
24
+ /**
25
+ * StoryBlock component. Only supported on iOS.
26
+ */
27
+ class StoryBlock extends React.Component {
21
28
  constructor() {
22
29
  super(...arguments);
23
30
 
@@ -63,6 +70,11 @@ export default class StoryBlock extends React.Component {
63
70
  this.setState({});
64
71
  });
65
72
  this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);
73
+ const subscriptionOfVideoLaunchBehaviorUpdated = FireworkSDKModuleEventEmitter.addListener(FWEventName.VideoLaunchBehaviorUpdated, () => {
74
+ FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');
75
+ this.setState({});
76
+ });
77
+ this.subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);
66
78
 
67
79
  if (Platform.OS === 'android') {
68
80
  const viewId = findNodeHandle(this.nativeComponentRef.current);
@@ -94,7 +106,7 @@ export default class StoryBlock extends React.Component {
94
106
  }
95
107
 
96
108
  _generateKey() {
97
- var _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3;
109
+ var _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _FireworkSDK$getInsta3;
98
110
 
99
111
  const {
100
112
  source,
@@ -102,14 +114,15 @@ export default class StoryBlock extends React.Component {
102
114
  playlist = '',
103
115
  enablePictureInPicture = false
104
116
  } = this.props;
105
- const shareBaseURL = (_FireworkSDK$getInsta = FireworkSDK.getInstance().shareBaseURL) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
106
- const adBadgeConfiguration = (_FireworkSDK$getInsta2 = FireworkSDK.getInstance().adBadgeConfiguration) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
117
+ const shareBaseURL = (_FireworkSDK$getInsta = FireworkSDK.getInstance().getShareBaseURL()) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
118
+ const adBadgeConfiguration = (_FireworkSDK$getInsta2 = FireworkSDK.getInstance().getAdBadgeConfiguration()) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
107
119
  const adBadgeTextType = (_adBadgeConfiguration = adBadgeConfiguration.badgeTextType) !== null && _adBadgeConfiguration !== void 0 ? _adBadgeConfiguration : '';
108
120
  const backgroundColorOfAdBadge = (_adBadgeConfiguration2 = adBadgeConfiguration.backgroundColor) !== null && _adBadgeConfiguration2 !== void 0 ? _adBadgeConfiguration2 : '';
109
121
  const textColorOfAdBadge = (_adBadgeConfiguration3 = adBadgeConfiguration.textColor) !== null && _adBadgeConfiguration3 !== void 0 ? _adBadgeConfiguration3 : '';
110
122
 
111
123
  const dynamicContentParametersString = this._generateDynamicContentParametersString();
112
124
 
125
+ const videoLaunchBehavior = (_FireworkSDK$getInsta3 = FireworkSDK.getInstance().getVideoLaunchBehavior()) !== null && _FireworkSDK$getInsta3 !== void 0 ? _FireworkSDK$getInsta3 : 'default';
113
126
  let key = `source:${source}`;
114
127
  key += `_channel:${channel}`;
115
128
  key += `_playlist:${playlist}`;
@@ -119,6 +132,7 @@ export default class StoryBlock extends React.Component {
119
132
  key += `_textColorOfAdBadge:${textColorOfAdBadge}`;
120
133
  key += `_dynamicContentParameters:${dynamicContentParametersString}`;
121
134
  key += `_enablePictureInPicture:${enablePictureInPicture}`;
135
+ key += `_videoLaunchBehavior:${videoLaunchBehavior}`;
122
136
  return key;
123
137
  }
124
138
 
@@ -149,4 +163,6 @@ export default class StoryBlock extends React.Component {
149
163
  }
150
164
 
151
165
  }
166
+
167
+ export default StoryBlock;
152
168
  //# sourceMappingURL=StoryBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["StoryBlock.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWStoryBlock","NativeComponentName","createFragment","viewId","OS","dispatchViewManagerCommand","getViewManagerConfig","Commands","create","toString","StoryBlock","Component","createRef","event","log","nativeEvent","name","onStoryBlockLoadFinished","props","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","nativeComponentRef","current","componentWillUnmount","forEach","value","remove","render","style","_generateKey","_onStoryBlockLoadFinished","Object","assign","zIndex","source","channel","playlist","enablePictureInPicture","shareBaseURL","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":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWStoryBlock","NativeComponentName","createFragment","viewId","OS","dispatchViewManagerCommand","getViewManagerConfig","Commands","create","toString","StoryBlock","Component","createRef","event","log","nativeEvent","name","onStoryBlockLoadFinished","props","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","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","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"]}
@@ -10,7 +10,11 @@ import { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';
10
10
  import FWLoggerUtil from '../utils/FWLoggerUtil';
11
11
  import FWVideoFeed from './FWVideoFeed';
12
12
  const NativeComponentName = 'FWVideoFeed';
13
- export default class VideoFeed extends React.Component {
13
+ /**
14
+ * VideoFeed component.
15
+ */
16
+
17
+ class VideoFeed extends React.Component {
14
18
  constructor() {
15
19
  super(...arguments);
16
20
 
@@ -71,11 +75,11 @@ export default class VideoFeed extends React.Component {
71
75
  this.setState({});
72
76
  });
73
77
  this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);
74
- const subscriptionOfAppLanguageUpdated = FireworkSDKModuleEventEmitter.addListener(FWEventName.AppLanguageUpdated, () => {
75
- FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');
78
+ const subscriptionOfVideoLaunchBehaviorUpdated = FireworkSDKModuleEventEmitter.addListener(FWEventName.VideoLaunchBehaviorUpdated, () => {
79
+ FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');
76
80
  this.setState({});
77
81
  });
78
- this.subscriptions.push(subscriptionOfAppLanguageUpdated);
82
+ this.subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);
79
83
  }
80
84
 
81
85
  componentWillUnmount() {
@@ -87,7 +91,7 @@ export default class VideoFeed extends React.Component {
87
91
  }
88
92
 
89
93
  render() {
90
- var _videoFeedConfigurati, _videoFeedConfigurati2, _videoFeedConfigurati3, _videoFeedConfigurati4, _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _videoFeedConfigurati5, _videoFeedConfigurati6, _adConfiguration$requ, _adConfiguration$adsF, _videoFeedConfigurati7;
94
+ var _videoFeedConfigurati, _videoFeedConfigurati2, _videoFeedConfigurati3, _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _videoFeedConfigurati4, _videoFeedConfigurati5, _adConfiguration$requ, _adConfiguration$adsF, _videoFeedConfigurati6, _FireworkSDK$getInsta3;
91
95
 
92
96
  FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);
93
97
  const {
@@ -104,32 +108,23 @@ export default class VideoFeed extends React.Component {
104
108
 
105
109
  const titleHidden = (_videoFeedConfigurati = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : (_videoFeedConfigurati2 = videoFeedConfiguration.title) === null || _videoFeedConfigurati2 === void 0 ? void 0 : _videoFeedConfigurati2.hidden) !== null && _videoFeedConfigurati !== void 0 ? _videoFeedConfigurati : false;
106
110
  const titlePosition = (_videoFeedConfigurati3 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.titlePosition) !== null && _videoFeedConfigurati3 !== void 0 ? _videoFeedConfigurati3 : 'nested';
107
- const customLayoutName = (_videoFeedConfigurati4 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.customLayoutName) !== null && _videoFeedConfigurati4 !== void 0 ? _videoFeedConfigurati4 : '';
108
- const shareBaseURL = (_FireworkSDK$getInsta = FireworkSDK.getInstance().shareBaseURL) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
109
- const adBadgeConfiguration = (_FireworkSDK$getInsta2 = FireworkSDK.getInstance().adBadgeConfiguration) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
111
+ const shareBaseURL = (_FireworkSDK$getInsta = FireworkSDK.getInstance().getShareBaseURL()) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
112
+ const adBadgeConfiguration = (_FireworkSDK$getInsta2 = FireworkSDK.getInstance().getAdBadgeConfiguration()) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
110
113
  const adBadgeTextType = (_adBadgeConfiguration = adBadgeConfiguration.badgeTextType) !== null && _adBadgeConfiguration !== void 0 ? _adBadgeConfiguration : '';
111
114
  const backgroundColorOfAdBadge = (_adBadgeConfiguration2 = adBadgeConfiguration.backgroundColor) !== null && _adBadgeConfiguration2 !== void 0 ? _adBadgeConfiguration2 : '';
112
115
  const textColorOfAdBadge = (_adBadgeConfiguration3 = adBadgeConfiguration.textColor) !== null && _adBadgeConfiguration3 !== void 0 ? _adBadgeConfiguration3 : '';
113
116
 
114
117
  const dynamicContentParametersString = this._generateDynamicContentParametersString();
115
118
 
116
- const enableAutoplay = (_videoFeedConfigurati5 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.enableAutoplay) !== null && _videoFeedConfigurati5 !== void 0 ? _videoFeedConfigurati5 : false;
117
- let enablePictureInPictureLegacy = false;
118
-
119
- if (videoFeedConfiguration) {
120
- var _enablePictureInPictu;
121
-
122
- enablePictureInPictureLegacy = (_enablePictureInPictu = videoFeedConfiguration.enablePictureInPicture) !== null && _enablePictureInPictu !== void 0 ? _enablePictureInPictu : false;
123
- }
124
-
125
- const gridColumns = (_videoFeedConfigurati6 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.gridColumns) !== null && _videoFeedConfigurati6 !== void 0 ? _videoFeedConfigurati6 : 2;
119
+ const enableAutoplay = (_videoFeedConfigurati4 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.enableAutoplay) !== null && _videoFeedConfigurati4 !== void 0 ? _videoFeedConfigurati4 : false;
120
+ const gridColumns = (_videoFeedConfigurati5 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.gridColumns) !== null && _videoFeedConfigurati5 !== void 0 ? _videoFeedConfigurati5 : 2;
126
121
  const requiresAds = (_adConfiguration$requ = adConfiguration === null || adConfiguration === void 0 ? void 0 : adConfiguration.requiresAds) !== null && _adConfiguration$requ !== void 0 ? _adConfiguration$requ : false;
127
122
  const adsFetchTimeout = (_adConfiguration$adsF = adConfiguration === null || adConfiguration === void 0 ? void 0 : adConfiguration.adsFetchTimeout) !== null && _adConfiguration$adsF !== void 0 ? _adConfiguration$adsF : 10;
128
123
 
129
124
  const vastAttributesString = this._generateVastAttributesString();
130
125
 
131
- const showAdBadge = (_videoFeedConfigurati7 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.showAdBadge) !== null && _videoFeedConfigurati7 !== void 0 ? _videoFeedConfigurati7 : false;
132
- const appLanguage = FireworkSDK.getInstance().appLanguage;
126
+ const showAdBadge = (_videoFeedConfigurati6 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.showAdBadge) !== null && _videoFeedConfigurati6 !== void 0 ? _videoFeedConfigurati6 : false;
127
+ const videoLaunchBehavior = (_FireworkSDK$getInsta3 = FireworkSDK.getInstance().getVideoLaunchBehavior()) !== null && _FireworkSDK$getInsta3 !== void 0 ? _FireworkSDK$getInsta3 : 'default';
133
128
  let key = `source:${source}`;
134
129
  key += `_channel:${channel}`;
135
130
  key += `_playlist:${playlist}`;
@@ -137,7 +132,6 @@ export default class VideoFeed extends React.Component {
137
132
  key += `_mode:${mode}`;
138
133
  key += `_titleHidden:${titleHidden}`;
139
134
  key += `_titlePosition:${titlePosition}`;
140
- key += `_customLayoutName:${customLayoutName}`;
141
135
  key += `_shareBaseURL:${shareBaseURL}`;
142
136
  key += `_adBadgeTextType:${adBadgeTextType}`;
143
137
  key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;
@@ -145,13 +139,12 @@ export default class VideoFeed extends React.Component {
145
139
  key += `_dynamicContentParameters:${dynamicContentParametersString}`;
146
140
  key += `_enableAutoplay:${enableAutoplay}`;
147
141
  key += `_enablePictureInPicture:${enablePictureInPicture}`;
148
- key += `_enablePictureInPictureLegacy:${enablePictureInPictureLegacy}`;
149
142
  key += `_gridColumns:${gridColumns}`;
150
143
  key += `_requiresAds:${requiresAds}`;
151
144
  key += `_adsFetchTimeout:${adsFetchTimeout}`;
152
145
  key += `_vastAttributes:${vastAttributesString}`;
153
146
  key += `_showAdBadge:${showAdBadge}`;
154
- key += `_appLanguage:${appLanguage}`;
147
+ key += `_videoLaunchBehavior:${videoLaunchBehavior}`;
155
148
  return /*#__PURE__*/React.createElement(FWVideoFeed, _extends({
156
149
  key: key
157
150
  }, this.props, {
@@ -240,4 +233,6 @@ export default class VideoFeed extends React.Component {
240
233
  _defineProperty(VideoFeed, "defaultProps", {
241
234
  mode: 'row'
242
235
  });
236
+
237
+ export default VideoFeed;
243
238
  //# sourceMappingURL=VideoFeed.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","createRef","log","JSON","stringify","props","nativeNodeHandle","nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","componentWillUnmount","forEach","value","remove","render","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","customLayoutName","shareBaseURL","getInstance","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","enableAutoplay","enablePictureInPictureLegacy","gridColumns","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","showAdBadge","appLanguage","key","_onVideoFeedLoadFinished","Object","assign","style","zIndex","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length","vastAttributes","attribute","Math","floor"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n EmitterSubscription,\n findNodeHandle,\n NativeSyntheticEvent,\n Platform,\n StyleProp,\n UIManager,\n ViewStyle,\n} from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type AdConfiguration from '../models/AdConfiguration';\nimport type VideoFeedConfiguration from '../models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from '../models/VideoFeedSource';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWVideoFeed from './FWVideoFeed';\n\nexport type VideoFeedMode = 'row' | 'column' | 'grid';\n\nexport interface IVideoFeedProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of five available video feed sources.\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\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 onVideoFeedLoadFinished?: (error?: FWError) => void;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\nexport default class VideoFeed extends React.Component<IVideoFeedProps> {\n static defaultProps = {\n mode: 'row',\n };\n\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n\n /**\n * Force refreshing the video feed.\n */\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this.nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAppLanguageUpdated);\n }\n\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);\n\n const {\n source,\n channel = '',\n playlist = '',\n playlistGroup = '',\n mode = 'row',\n adConfiguration,\n enablePictureInPicture = false,\n } = this.props;\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const titleHidden = videoFeedConfiguration?.title?.hidden ?? false;\n const titlePosition = videoFeedConfiguration?.titlePosition ?? 'nested';\n const customLayoutName = videoFeedConfiguration?.customLayoutName ?? '';\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 const enableAutoplay = videoFeedConfiguration?.enableAutoplay ?? false;\n\n let enablePictureInPictureLegacy = false;\n if (videoFeedConfiguration) {\n enablePictureInPictureLegacy =\n (videoFeedConfiguration as any).enablePictureInPicture ?? false;\n }\n const gridColumns = videoFeedConfiguration?.gridColumns ?? 2;\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = this._generateVastAttributesString();\n const showAdBadge = videoFeedConfiguration?.showAdBadge ?? false;\n const appLanguage = FireworkSDK.getInstance().appLanguage;\n\n let key = `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_playlistGroup:${playlistGroup}`;\n key += `_mode:${mode}`;\n key += `_titleHidden:${titleHidden}`;\n key += `_titlePosition:${titlePosition}`;\n key += `_customLayoutName:${customLayoutName}`;\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_enablePictureInPictureLegacy:${enablePictureInPictureLegacy}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_showAdBadge:${showAdBadge}`;\n key += `_appLanguage:${appLanguage}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n ref={this.nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n mode={mode}\n style={Object.assign({}, this.props.style, { zIndex: -1 })}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\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 private _generateVastAttributesString(): string {\n const { adConfiguration } = this.props;\n const vastAttributes = adConfiguration?.vastAttributes ?? '';\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n if (\n videoFeedConfiguration.gridColumns &&\n Math.floor(videoFeedConfiguration.gridColumns!) !==\n videoFeedConfiguration.gridColumns\n ) {\n return {\n ...videoFeedConfiguration,\n gridColumns: Math.floor(videoFeedConfiguration.gridColumns!),\n };\n } else {\n return videoFeedConfiguration;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","createRef","log","JSON","stringify","props","nativeNodeHandle","nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","componentWillUnmount","forEach","value","remove","render","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","shareBaseURL","getInstance","getShareBaseURL","adBadgeConfiguration","getAdBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","enableAutoplay","gridColumns","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","showAdBadge","videoLaunchBehavior","getVideoLaunchBehavior","key","_onVideoFeedLoadFinished","Object","assign","style","zIndex","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length","vastAttributes","attribute","Math","floor"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n EmitterSubscription,\n findNodeHandle,\n NativeSyntheticEvent,\n Platform,\n StyleProp,\n UIManager,\n ViewStyle,\n} from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type AdConfiguration from '../models/AdConfiguration';\nimport type VideoFeedConfiguration from '../models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from '../models/VideoFeedSource';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWVideoFeed from './FWVideoFeed';\n\nexport type VideoFeedMode = 'row' | 'column' | 'grid';\n\n/**\n * The props of VideoFeed component.\n */\nexport interface IVideoFeedProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of five available video feed sources.The playlistGroup is only supported on iOS\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup. Only supported on iOS.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\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. Only supported on iOS.\n */\n onVideoFeedLoadFinished?: (error?: FWError) => void;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps> {\n static defaultProps = {\n mode: 'row',\n };\n\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n\n /**\n * Force refreshing the video feed.\n */\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this.nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\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\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);\n\n const {\n source,\n channel = '',\n playlist = '',\n playlistGroup = '',\n mode = 'row',\n adConfiguration,\n enablePictureInPicture = false,\n } = this.props;\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const titleHidden = videoFeedConfiguration?.title?.hidden ?? false;\n const titlePosition = videoFeedConfiguration?.titlePosition ?? 'nested';\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 enableAutoplay = videoFeedConfiguration?.enableAutoplay ?? false;\n\n const gridColumns = videoFeedConfiguration?.gridColumns ?? 2;\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = this._generateVastAttributesString();\n const showAdBadge = videoFeedConfiguration?.showAdBadge ?? false;\n const videoLaunchBehavior =\n FireworkSDK.getInstance().getVideoLaunchBehavior() ?? 'default';\n\n let key = `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_playlistGroup:${playlistGroup}`;\n key += `_mode:${mode}`;\n key += `_titleHidden:${titleHidden}`;\n key += `_titlePosition:${titlePosition}`;\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_showAdBadge:${showAdBadge}`;\n key += `_videoLaunchBehavior:${videoLaunchBehavior}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n ref={this.nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n mode={mode}\n style={Object.assign({}, this.props.style, { zIndex: -1 })}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\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 private _generateVastAttributesString(): string {\n const { adConfiguration } = this.props;\n const vastAttributes = adConfiguration?.vastAttributes ?? '';\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n if (\n videoFeedConfiguration.gridColumns &&\n Math.floor(videoFeedConfiguration.gridColumns!) !==\n videoFeedConfiguration.gridColumns\n ) {\n return {\n ...videoFeedConfiguration,\n gridColumns: Math.floor(videoFeedConfiguration.gridColumns!),\n };\n } else {\n return videoFeedConfiguration;\n }\n }\n}\n\nexport default VideoFeed;\n"]}