react-native-firework-sdk 1.10.2 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/FireworkVideoUI.xcframework/Info.plist +5 -5
  2. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
  3. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
  4. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.abi.json +0 -7
  5. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
  6. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
  7. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.abi.json +0 -7
  8. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +0 -7
  9. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +9 -9
  10. package/ios/Components/VideoFeed.swift +10 -3
  11. package/ios/Components/VideoFeedConfiguration.swift +1 -0
  12. package/ios/Components/VideoPlayerConfiguration.swift +17 -0
  13. package/ios/FireworkSdk.xcodeproj/project.pbxproj +0 -4
  14. package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +1 -18
  15. package/ios/FireworkVideoUI/Podfile +1 -1
  16. package/ios/FireworkVideoUI/Podfile.lock +4 -4
  17. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +1 -9
  18. package/lib/commonjs/FireworkSDK.js +21 -16
  19. package/lib/commonjs/FireworkSDK.js.map +1 -1
  20. package/lib/commonjs/components/StoryBlock.js +30 -22
  21. package/lib/commonjs/components/StoryBlock.js.map +1 -1
  22. package/lib/commonjs/components/VideoFeed.js +55 -31
  23. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/module/FireworkSDK.js +21 -16
  26. package/lib/module/FireworkSDK.js.map +1 -1
  27. package/lib/module/components/StoryBlock.js +28 -21
  28. package/lib/module/components/StoryBlock.js.map +1 -1
  29. package/lib/module/components/VideoFeed.js +54 -31
  30. package/lib/module/components/VideoFeed.js.map +1 -1
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/typescript/components/VideoFeed.d.ts +4 -4
  33. package/lib/typescript/index.d.ts +2 -2
  34. package/lib/typescript/models/VideoFeedConfiguration.d.ts +5 -0
  35. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +6 -0
  36. package/package.json +1 -1
  37. package/react-native-firework-sdk.podspec +1 -1
  38. package/src/FireworkSDK.ts +20 -19
  39. package/src/components/StoryBlock.tsx +37 -27
  40. package/src/components/VideoFeed.tsx +75 -43
  41. package/src/index.ts +2 -0
  42. package/src/models/VideoFeedConfiguration.ts +5 -0
  43. package/src/models/VideoPlayerConfiguration.ts +6 -0
  44. package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +0 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","StoryBlock","props","forwardedRef","nativeComponentRef","forceUpdate","x","sendCommand","command","nativeNodeHandle","current","commandId","UIManager","getViewManagerConfig","Commands","Platform","OS","toString","dispatchViewManagerCommand","play","pause","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","FWLoggerUtil","log","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","viewId","create","remove","handleStoryBlockLoadFinished","event","nativeEvent","name","onStoryBlockLoadFinished","reason","generateDynamicContentParametersString","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","key","value","valueString","join","length","generateVastAttributesString","adConfiguration","vastAttributes","attribute","generateKey","source","channel","playlist","enablePictureInPicture","hashtagFilterExpression","shareBaseURL","FireworkSDK","getInstance","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","appLanguage","requiresAds","adsFetchTimeout","vastAttributesString","style","assign","zIndex"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n useRef,\n} from 'react';\nimport type { ForwardRefRenderFunction } from 'react';\nimport type { NativeSyntheticEvent, StyleProp, ViewStyle } from 'react-native';\nimport { findNodeHandle, Platform, UIManager } from 'react-native';\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';\nimport type AdConfiguration from '../models/AdConfiguration';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nexport interface IStoryBlockMethods {\n /**\n * Play the story block.\n */\n play: () => void;\n /**\n * Pause the story block.\n */\n pause: () => void;\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 * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n * Only supported on iOS.\n */\n hashtagFilterExpression?: string;\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n}\n\nconst StoryBlock: ForwardRefRenderFunction<\n IStoryBlockMethods,\n IStoryBlockProps\n> = (props: IStoryBlockProps, forwardedRef) => {\n const nativeComponentRef = useRef(null);\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n useImperativeHandle(\n forwardedRef,\n () => {\n const sendCommand = (command: string) => {\n const nativeNodeHandle = findNodeHandle(nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands[command];\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n return {\n play: () => {\n sendCommand('play');\n },\n pause: () => {\n sendCommand('pause');\n },\n };\n },\n []\n );\n useEffect(() => {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n forceUpdate();\n }\n );\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n forceUpdate();\n }\n );\n\n if (Platform.OS === 'android') {\n const viewId = findNodeHandle(nativeComponentRef.current);\n FWLoggerUtil.log(`StoryBlock createFragment viewId: ${viewId}`);\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }\n\n return () => {\n subscriptionOfShareBaseURLUpdated.remove();\n subscriptionOfAdBadgeConfigurationUpdated.remove();\n subscriptionOfAppLanguageUpdated.remove();\n };\n }, []);\n\n const handleStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished } = 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 const generateDynamicContentParametersString = (): string => {\n const { dynamicContentParameters } = 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 const generateVastAttributesString = () => {\n const { adConfiguration } = 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 const generateKey = (): string => {\n const {\n source,\n channel = '',\n playlist = '',\n enablePictureInPicture = false,\n adConfiguration,\n hashtagFilterExpression = '',\n } = 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 generateDynamicContentParametersString();\n const appLanguage = FireworkSDK.getInstance().appLanguage ?? '';\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = generateVastAttributesString();\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 += `_appLanguage:${appLanguage}`;\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n\n return key;\n };\n\n const { style } = props;\n return (\n <FWStoryBlock\n ref={nativeComponentRef}\n key={generateKey()}\n {...props}\n onStoryBlockLoadFinished={handleStoryBlockLoadFinished}\n style={Object.assign({}, style, { zIndex: -1 })}\n />\n );\n};\n\nexport default forwardRef(StoryBlock);\n"]}
1
+ {"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","StoryBlock","props","forwardedRef","nativeComponentRef","forceUpdate","x","sendCommand","command","nativeNodeHandle","current","commandId","UIManager","getViewManagerConfig","Commands","Platform","OS","toString","dispatchViewManagerCommand","play","pause","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","FWLoggerUtil","log","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","remove","handleStoryBlockLoadFinished","event","nativeEvent","name","onStoryBlockLoadFinished","reason","generateDynamicContentParametersString","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","key","value","valueString","join","length","generateVastAttributesString","adConfiguration","vastAttributes","attribute","generateKey","shareBaseURL","FireworkSDK","getInstance","appLanguage","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","source","channel","playlist","enablePictureInPicture","hashtagFilterExpression","dynamicContentParametersString","requiresAds","adsFetchTimeout","vastAttributesString","setTimeout","viewId","create","style","assign","zIndex"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n useRef,\n} from 'react';\nimport type { ForwardRefRenderFunction } from 'react';\nimport type { NativeSyntheticEvent, StyleProp, ViewStyle } from 'react-native';\nimport { findNodeHandle, Platform, UIManager } from 'react-native';\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';\nimport type AdConfiguration from '../models/AdConfiguration';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nexport interface IStoryBlockMethods {\n /**\n * Play the story block.\n */\n play: () => void;\n /**\n * Pause the story block.\n */\n pause: () => void;\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 * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n * Only supported on iOS.\n */\n hashtagFilterExpression?: string;\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n}\n\nconst StoryBlock: ForwardRefRenderFunction<\n IStoryBlockMethods,\n IStoryBlockProps\n> = (props: IStoryBlockProps, forwardedRef) => {\n const nativeComponentRef = useRef(null);\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n useImperativeHandle(\n forwardedRef,\n () => {\n const sendCommand = (command: string) => {\n const nativeNodeHandle = findNodeHandle(nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands[command];\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n return {\n play: () => {\n sendCommand('play');\n },\n pause: () => {\n sendCommand('pause');\n },\n };\n },\n []\n );\n useEffect(() => {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n forceUpdate();\n }\n );\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n forceUpdate();\n }\n );\n\n return () => {\n subscriptionOfShareBaseURLUpdated.remove();\n subscriptionOfAdBadgeConfigurationUpdated.remove();\n subscriptionOfAppLanguageUpdated.remove();\n };\n }, []);\n\n const handleStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished } = 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 const generateDynamicContentParametersString = (): string => {\n const { dynamicContentParameters } = 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 const generateVastAttributesString = () => {\n const { adConfiguration } = 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 const generateKey = (): string => {\n const shareBaseURL = FireworkSDK.getInstance().shareBaseURL ?? '';\n const appLanguage = FireworkSDK.getInstance().appLanguage ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().adBadgeConfiguration ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n\n const {\n source,\n channel = '',\n playlist = '',\n enablePictureInPicture = false,\n adConfiguration,\n hashtagFilterExpression = '',\n } = props;\n const dynamicContentParametersString =\n generateDynamicContentParametersString();\n\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = generateVastAttributesString();\n\n let key = `shareBaseURL:${shareBaseURL}`;\n if (Platform.OS === 'ios') {\n key += `_appLanguage:${appLanguage}`;\n }\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n\n key += `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n\n return key;\n };\n const key = generateKey();\n\n useEffect(() => {\n if (Platform.OS === 'android') {\n setTimeout(() => {\n const viewId = findNodeHandle(nativeComponentRef.current);\n FWLoggerUtil.log(`StoryBlock createFragment viewId: ${viewId}`);\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }, 500);\n }\n }, [key]);\n\n const { style } = props;\n return (\n <FWStoryBlock\n ref={nativeComponentRef}\n key={key}\n {...props}\n onStoryBlockLoadFinished={handleStoryBlockLoadFinished}\n style={Object.assign({}, style, { zIndex: -1 })}\n />\n );\n};\n\nexport default forwardRef(StoryBlock);\n"]}
@@ -86,6 +86,8 @@ class VideoFeed extends _react.default.Component {
86
86
  * @ignore
87
87
  */
88
88
  componentDidMount() {
89
+ console.log('VideoFeed componentDidMount', this.props);
90
+
89
91
  _FWLoggerUtil.default.log(`VideoFeed componentDidMount ${JSON.stringify(this.props)}`);
90
92
 
91
93
  const subscriptionOfShareBaseURLUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.ShareBaseURLUpdated, () => {
@@ -104,13 +106,15 @@ class VideoFeed extends _react.default.Component {
104
106
 
105
107
  this._subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);
106
108
 
107
- const subscriptionOfAppLanguageUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.AppLanguageUpdated, () => {
108
- _FWLoggerUtil.default.log('Receive FWEventName.AppLanguageUpdated');
109
+ if (_reactNative.Platform.OS === 'ios') {
110
+ const subscriptionOfAppLanguageUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.AppLanguageUpdated, () => {
111
+ _FWLoggerUtil.default.log('Receive FWEventName.AppLanguageUpdated');
109
112
 
110
- this.setState({});
111
- });
113
+ this.setState({});
114
+ });
112
115
 
113
- this._subscriptions.push(subscriptionOfAppLanguageUpdated);
116
+ this._subscriptions.push(subscriptionOfAppLanguageUpdated);
117
+ }
114
118
  }
115
119
  /**
116
120
  * @ignore
@@ -132,10 +136,16 @@ class VideoFeed extends _react.default.Component {
132
136
 
133
137
 
134
138
  render() {
135
- var _videoFeedConfigurati, _videoFeedConfigurati2, _videoFeedConfigurati3, _videoFeedConfigurati4, _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _videoFeedConfigurati5, _videoFeedConfigurati6, _adConfiguration$requ, _adConfiguration$adsF, _videoFeedConfigurati7, _FireworkSDK$getInsta3;
139
+ var _FireworkSDK$getInsta, _FireworkSDK$getInsta2, _FireworkSDK$getInsta3, _adBadgeConfiguration, _adBadgeConfiguration2, _adBadgeConfiguration3, _videoFeedConfigurati, _videoFeedConfigurati2, _videoFeedConfigurati3, _videoFeedConfigurati4, _videoFeedConfigurati5, _videoFeedConfigurati6, _adConfiguration$requ, _adConfiguration$adsF, _videoFeedConfigurati7;
136
140
 
137
141
  _FWLoggerUtil.default.log(`VideoFeed render ${JSON.stringify(this.props)}`);
138
142
 
143
+ const shareBaseURL = (_FireworkSDK$getInsta = _FireworkSDK.default.getInstance().shareBaseURL) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
144
+ const appLanguage = (_FireworkSDK$getInsta2 = _FireworkSDK.default.getInstance().appLanguage) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : '';
145
+ const adBadgeConfiguration = (_FireworkSDK$getInsta3 = _FireworkSDK.default.getInstance().adBadgeConfiguration) !== null && _FireworkSDK$getInsta3 !== void 0 ? _FireworkSDK$getInsta3 : {};
146
+ const adBadgeTextType = (_adBadgeConfiguration = adBadgeConfiguration.badgeTextType) !== null && _adBadgeConfiguration !== void 0 ? _adBadgeConfiguration : '';
147
+ const backgroundColorOfAdBadge = (_adBadgeConfiguration2 = adBadgeConfiguration.backgroundColor) !== null && _adBadgeConfiguration2 !== void 0 ? _adBadgeConfiguration2 : '';
148
+ const textColorOfAdBadge = (_adBadgeConfiguration3 = adBadgeConfiguration.textColor) !== null && _adBadgeConfiguration3 !== void 0 ? _adBadgeConfiguration3 : '';
139
149
  const {
140
150
  source,
141
151
  channel = '',
@@ -147,19 +157,13 @@ class VideoFeed extends _react.default.Component {
147
157
  hashtagFilterExpression = ''
148
158
  } = this.props;
149
159
 
160
+ const dynamicContentParametersString = this._generateDynamicContentParametersString();
161
+
150
162
  const videoFeedConfiguration = this._getVideoFeedConfiguration();
151
163
 
152
164
  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;
153
165
  const titlePosition = (_videoFeedConfigurati3 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.titlePosition) !== null && _videoFeedConfigurati3 !== void 0 ? _videoFeedConfigurati3 : 'nested';
154
166
  const customLayoutName = (_videoFeedConfigurati4 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.customLayoutName) !== null && _videoFeedConfigurati4 !== void 0 ? _videoFeedConfigurati4 : '';
155
- const shareBaseURL = (_FireworkSDK$getInsta = _FireworkSDK.default.getInstance().shareBaseURL) !== null && _FireworkSDK$getInsta !== void 0 ? _FireworkSDK$getInsta : '';
156
- const adBadgeConfiguration = (_FireworkSDK$getInsta2 = _FireworkSDK.default.getInstance().adBadgeConfiguration) !== null && _FireworkSDK$getInsta2 !== void 0 ? _FireworkSDK$getInsta2 : {};
157
- const adBadgeTextType = (_adBadgeConfiguration = adBadgeConfiguration.badgeTextType) !== null && _adBadgeConfiguration !== void 0 ? _adBadgeConfiguration : '';
158
- const backgroundColorOfAdBadge = (_adBadgeConfiguration2 = adBadgeConfiguration.backgroundColor) !== null && _adBadgeConfiguration2 !== void 0 ? _adBadgeConfiguration2 : '';
159
- const textColorOfAdBadge = (_adBadgeConfiguration3 = adBadgeConfiguration.textColor) !== null && _adBadgeConfiguration3 !== void 0 ? _adBadgeConfiguration3 : '';
160
-
161
- const dynamicContentParametersString = this._generateDynamicContentParametersString();
162
-
163
167
  const enableAutoplay = (_videoFeedConfigurati5 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.enableAutoplay) !== null && _videoFeedConfigurati5 !== void 0 ? _videoFeedConfigurati5 : false;
164
168
  let enablePictureInPictureLegacy = false;
165
169
 
@@ -176,33 +180,41 @@ class VideoFeed extends _react.default.Component {
176
180
  const vastAttributesString = this._generateVastAttributesString();
177
181
 
178
182
  const showAdBadge = (_videoFeedConfigurati7 = videoFeedConfiguration === null || videoFeedConfiguration === void 0 ? void 0 : videoFeedConfiguration.showAdBadge) !== null && _videoFeedConfigurati7 !== void 0 ? _videoFeedConfigurati7 : false;
179
- const appLanguage = (_FireworkSDK$getInsta3 = _FireworkSDK.default.getInstance().appLanguage) !== null && _FireworkSDK$getInsta3 !== void 0 ? _FireworkSDK$getInsta3 : '';
180
- let key = `source:${source}`;
183
+ let key = `shareBaseURL:${shareBaseURL}`;
184
+
185
+ if (_reactNative.Platform.OS === 'ios') {
186
+ key += `_appLanguage:${appLanguage}`;
187
+ }
188
+
189
+ key += `_adBadgeTextType:${adBadgeTextType}`;
190
+ key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;
191
+ key += `_textColorOfAdBadge:${textColorOfAdBadge}`;
192
+ key += `_source:${source}`;
181
193
  key += `_channel:${channel}`;
182
194
  key += `_playlist:${playlist}`;
183
195
  key += `_playlistGroup:${playlistGroup}`;
196
+ key += `_dynamicContentParameters:${dynamicContentParametersString}`;
197
+ key += `_hashtagFilterExpression:${hashtagFilterExpression}`;
184
198
  key += `_mode:${mode}`;
199
+ key += `_enablePictureInPicture:${enablePictureInPicture}`;
185
200
  key += `_titleHidden:${titleHidden}`;
186
201
  key += `_titlePosition:${titlePosition}`;
187
- key += `_customLayoutName:${customLayoutName}`;
188
- key += `_shareBaseURL:${shareBaseURL}`;
189
- key += `_adBadgeTextType:${adBadgeTextType}`;
190
- key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;
191
- key += `_textColorOfAdBadge:${textColorOfAdBadge}`;
192
- key += `_dynamicContentParameters:${dynamicContentParametersString}`;
202
+
203
+ if (_reactNative.Platform.OS === 'android') {
204
+ key += `_customLayoutName:${customLayoutName}`;
205
+ }
206
+
193
207
  key += `_enableAutoplay:${enableAutoplay}`;
194
- key += `_enablePictureInPicture:${enablePictureInPicture}`;
195
208
  key += `_enablePictureInPictureLegacy:${enablePictureInPictureLegacy}`;
196
209
  key += `_gridColumns:${gridColumns}`;
210
+ key += `_showAdBadge:${showAdBadge}`;
197
211
  key += `_requiresAds:${requiresAds}`;
198
212
  key += `_adsFetchTimeout:${adsFetchTimeout}`;
199
213
  key += `_vastAttributes:${vastAttributesString}`;
200
- key += `_showAdBadge:${showAdBadge}`;
201
- key += `_appLanguage:${appLanguage}`;
202
- key += `_hashtagFilterExpression:${hashtagFilterExpression}`;
203
214
  return /*#__PURE__*/_react.default.createElement(_FWVideoFeed.default, _extends({
204
215
  key: key
205
216
  }, this.props, {
217
+ videoFeedConfiguration: videoFeedConfiguration,
206
218
  ref: this._nativeComponentRef,
207
219
  onVideoFeedLoadFinished: this._onVideoFeedLoadFinished,
208
220
  mode: mode,
@@ -274,13 +286,25 @@ class VideoFeed extends _react.default.Component {
274
286
  return videoFeedConfiguration;
275
287
  }
276
288
 
277
- if (videoFeedConfiguration.gridColumns && Math.floor(videoFeedConfiguration.gridColumns) !== videoFeedConfiguration.gridColumns) {
278
- return { ...videoFeedConfiguration,
279
- gridColumns: Math.floor(videoFeedConfiguration.gridColumns)
289
+ let resultVideoFeedConfiguration = videoFeedConfiguration;
290
+
291
+ if (resultVideoFeedConfiguration.gridColumns && Math.floor(resultVideoFeedConfiguration.gridColumns) !== resultVideoFeedConfiguration.gridColumns) {
292
+ const gridColumns = Math.floor(resultVideoFeedConfiguration.gridColumns);
293
+ resultVideoFeedConfiguration = { ...resultVideoFeedConfiguration,
294
+ gridColumns
280
295
  };
281
- } else {
282
- return videoFeedConfiguration;
283
296
  }
297
+
298
+ if (resultVideoFeedConfiguration.title && resultVideoFeedConfiguration.title.numberOfLines && Math.floor(resultVideoFeedConfiguration.title.numberOfLines) !== resultVideoFeedConfiguration.title.numberOfLines) {
299
+ const numberOfLines = Math.floor(resultVideoFeedConfiguration.title.numberOfLines);
300
+ resultVideoFeedConfiguration = { ...resultVideoFeedConfiguration,
301
+ title: { ...resultVideoFeedConfiguration.title,
302
+ numberOfLines
303
+ }
304
+ };
305
+ }
306
+
307
+ return resultVideoFeedConfiguration;
284
308
  }
285
309
 
286
310
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoFeed.tsx"],"names":["NativeComponentName","VideoFeed","React","Component","createRef","FWLoggerUtil","log","JSON","stringify","props","nativeNodeHandle","_nativeComponentRef","current","commandId","UIManager","getViewManagerConfig","Commands","refresh","Platform","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","setState","_subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","componentWillUnmount","forEach","value","remove","render","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","hashtagFilterExpression","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","customLayoutName","shareBaseURL","FireworkSDK","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 * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n * Only supported on iOS.\n */\n hashtagFilterExpression?: 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\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps> {\n /**\n * @ignore\n */\n static defaultProps = {\n mode: 'row',\n };\n\n private _nativeComponentRef = React.createRef<any>();\n\n private _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 /**\n * @ignore\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 /**\n * @ignore\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 /**\n * @ignore\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 hashtagFilterExpression = '',\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 key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\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"]}
1
+ {"version":3,"sources":["VideoFeed.tsx"],"names":["NativeComponentName","VideoFeed","React","Component","createRef","FWLoggerUtil","log","JSON","stringify","props","nativeNodeHandle","_nativeComponentRef","current","commandId","UIManager","getViewManagerConfig","Commands","refresh","Platform","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","console","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","setState","_subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","componentWillUnmount","forEach","value","remove","render","shareBaseURL","FireworkSDK","getInstance","appLanguage","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","hashtagFilterExpression","dynamicContentParametersString","_generateDynamicContentParametersString","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","customLayoutName","enableAutoplay","enablePictureInPictureLegacy","gridColumns","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","showAdBadge","key","_onVideoFeedLoadFinished","Object","assign","style","zIndex","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length","vastAttributes","attribute","resultVideoFeedConfiguration","Math","floor","numberOfLines"],"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 * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n * Only supported on iOS.\n */\n hashtagFilterExpression?: string;\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\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 * 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\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps> {\n /**\n * @ignore\n */\n static defaultProps = {\n mode: 'row',\n };\n\n private _nativeComponentRef = React.createRef<any>();\n\n private _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 /**\n * @ignore\n */\n componentDidMount() {\n console.log('VideoFeed componentDidMount', this.props);\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 if (Platform.OS === 'ios') {\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\n /**\n * @ignore\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 /**\n * @ignore\n */\n render() {\n FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);\n const shareBaseURL = FireworkSDK.getInstance().shareBaseURL ?? '';\n const appLanguage = FireworkSDK.getInstance().appLanguage ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().adBadgeConfiguration ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n\n const {\n source,\n channel = '',\n playlist = '',\n playlistGroup = '',\n mode = 'row',\n adConfiguration,\n enablePictureInPicture = false,\n hashtagFilterExpression = '',\n } = this.props;\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n\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 enableAutoplay = videoFeedConfiguration?.enableAutoplay ?? false;\n let enablePictureInPictureLegacy = false;\n if (videoFeedConfiguration) {\n enablePictureInPictureLegacy =\n (videoFeedConfiguration as any).enablePictureInPicture ?? false;\n }\n const gridColumns = videoFeedConfiguration?.gridColumns ?? 2;\n\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = this._generateVastAttributesString();\n const showAdBadge = videoFeedConfiguration?.showAdBadge ?? false;\n\n let key = `shareBaseURL:${shareBaseURL}`;\n if (Platform.OS === 'ios') {\n key += `_appLanguage:${appLanguage}`;\n }\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n\n key += `_source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_playlistGroup:${playlistGroup}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `_mode:${mode}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n\n key += `_titleHidden:${titleHidden}`;\n key += `_titlePosition:${titlePosition}`;\n if (Platform.OS === 'android') {\n key += `_customLayoutName:${customLayoutName}`;\n }\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_enablePictureInPictureLegacy:${enablePictureInPictureLegacy}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_showAdBadge:${showAdBadge}`;\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n videoFeedConfiguration={videoFeedConfiguration}\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 let resultVideoFeedConfiguration = videoFeedConfiguration;\n\n if (\n resultVideoFeedConfiguration.gridColumns &&\n Math.floor(resultVideoFeedConfiguration.gridColumns) !==\n resultVideoFeedConfiguration.gridColumns\n ) {\n const gridColumns = Math.floor(resultVideoFeedConfiguration.gridColumns);\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n gridColumns,\n };\n }\n\n if (\n resultVideoFeedConfiguration.title &&\n resultVideoFeedConfiguration.title.numberOfLines &&\n Math.floor(resultVideoFeedConfiguration.title.numberOfLines) !==\n resultVideoFeedConfiguration.title.numberOfLines\n ) {\n const numberOfLines = Math.floor(\n resultVideoFeedConfiguration.title.numberOfLines\n );\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n title: {\n ...resultVideoFeedConfiguration.title,\n numberOfLines,\n },\n };\n }\n\n return resultVideoFeedConfiguration;\n }\n}\n\nexport default VideoFeed;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["FireworkSDK"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAEA;;AAOA;;AAEA;;AAKA;;AA0BA;;AAEA;;AA0BA;;AAmBA;;;;eAEeA,oB","sourcesContent":["import type {\n IStoryBlockMethods,\n IStoryBlockProps,\n} from './components/StoryBlock';\nimport StoryBlock from './components/StoryBlock';\nimport type { IVideoFeedProps, VideoFeedMode } from './components/VideoFeed';\nimport VideoFeed from './components/VideoFeed';\nimport type {\n CustomCTAClickCallback,\n SDKInitCallback,\n VideoFeedClickCallback,\n VideoPlaybackCallback,\n} from './FireworkSDK';\nimport FireworkSDK from './FireworkSDK';\nimport type { FWNativeContainerProps } from './FWNavigator';\nimport FWNavigator from './FWNavigator';\nimport type {\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n} from './LiveStream';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport type { AdBadgeTextType } from './models/AdBadgeConfiguration';\nimport type AdConfiguration from './models/AdConfiguration';\nimport type { VastAttribute } from './models/AdConfiguration';\nimport type AddToCartResult from './models/AddToCartResult';\nimport type FeedItemDetails from './models/FeedItemDetails';\nimport type FWError from './models/FWError';\nimport type {\n AddToCartEvent,\n CustomClickLinkButtonEvent,\n CustomCTAClickEvent,\n LiveStreamChatEvent,\n LiveStreamEvent,\n SDKInitEvent,\n ShoppingCTAEvent,\n UpdateProductDetailsEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport type IOSFontInfo from './models/IOSFontInfo';\nimport type {\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n} from './models/IOSFontInfo';\nimport LiveStreamChatEventName from './models/LiveStreamChatEventName';\nimport type LiveStreamEventDetails from './models/LiveStreamEventDetails';\nimport LiveStreamEventName from './models/LiveStreamEventName';\nimport type LiveStreamMessageDetails from './models/LiveStreamMessageDetails';\nimport type { NewNativeContainerProps } from './models/NewNativeContainerProps';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport type {\n AddToCartButtonConfiguration,\n LinkButtonConfiguration,\n ShoppingCTAButtonConfiguration,\n ShoppingCTAButtonText,\n} from './models/ProductInfoViewConfiguration';\nimport type ProductUnit from './models/ProductUnit';\nimport type { ProductPrice, ProductUnitOption } from './models/ProductUnit';\nimport type ShoppingCTAResult from './models/ShoppingCTAResult';\nimport type { StoryBlockSource } from './models/StoryBlockSource';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport type VideoFeedConfiguration from './models/VideoFeedConfiguration';\nimport type {\n VideoFeedContentPadding,\n VideoFeedPlayIconConfiguration,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n} from './models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from './models/VideoFeedSource';\nimport type VideoPlaybackDetails from './models/VideoPlaybackDetails';\nimport type { VideoPlayerSize } from './models/VideoPlaybackDetails';\nimport VideoPlaybackEventName from './models/VideoPlaybackEventName';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport type {\n VideoLaunchBehavior,\n VideoPlayerCompleteAction,\n VideoPlayerCTADelay,\n VideoPlayerCTADelayType,\n VideoPlayerCTAStyle,\n VideoPlayerStyle,\n} from './models/VideoPlayerConfiguration';\nimport type {\n AddToCartCallback,\n ClickCartIconCallback,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n ShoppingCTACallback,\n UpdateProductDetailsCallback,\n WillDisplayProductCallback,\n} from './VideoShopping';\nimport VideoShopping from './VideoShopping';\n\nexport default FireworkSDK;\n\nexport {\n AdBadgeConfiguration,\n AdBadgeTextType,\n AdConfiguration,\n AddToCartButtonConfiguration,\n AddToCartCallback,\n AddToCartEvent,\n AddToCartResult,\n ClickCartIconCallback,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n CustomClickLinkButtonEvent,\n CustomCTAClickCallback,\n CustomCTAClickEvent,\n FeedItemDetails,\n FireworkSDK,\n FWError,\n FWNativeContainerProps,\n FWNavigator,\n IOSFontInfo,\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n IStoryBlockMethods,\n IStoryBlockProps,\n IVideoFeedProps,\n LinkButtonConfiguration,\n LiveStream,\n LiveStreamChatEvent,\n LiveStreamChatEventName,\n LiveStreamEvent,\n LiveStreamEventDetails,\n LiveStreamEventName,\n LiveStreamMessageDetails,\n NewNativeContainerProps,\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n Product,\n ProductInfoViewConfiguration,\n ProductPrice,\n ProductUnit,\n ProductUnitOption,\n SDKInitCallback,\n SDKInitEvent,\n ShoppingCTAButtonConfiguration,\n ShoppingCTAButtonText,\n ShoppingCTACallback,\n ShoppingCTAEvent,\n ShoppingCTAResult,\n StoryBlock,\n StoryBlockSource,\n TrackPurchaseParameters,\n UpdateProductDetailsCallback,\n UpdateProductDetailsEvent,\n VastAttribute,\n VideoFeed,\n VideoFeedClickCallback,\n VideoFeedClickEvent,\n VideoFeedConfiguration,\n VideoFeedContentPadding,\n VideoFeedMode,\n VideoFeedPlayIconConfiguration,\n VideoFeedSource,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n VideoLaunchBehavior,\n VideoPlaybackCallback,\n VideoPlaybackDetails,\n VideoPlaybackEvent,\n VideoPlaybackEventName,\n VideoPlayerCompleteAction,\n VideoPlayerConfiguration,\n VideoPlayerCTADelay,\n VideoPlayerCTADelayType,\n VideoPlayerCTAStyle,\n VideoPlayerSize,\n VideoPlayerStyle,\n VideoShopping,\n WillDisplayProductCallback,\n WillDisplayProductEvent,\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["FireworkSDK"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAEA;;AAOA;;AAEA;;AAKA;;AA0BA;;AAEA;;AA0BA;;AAoBA;;;;eAEeA,oB","sourcesContent":["import type {\n IStoryBlockMethods,\n IStoryBlockProps,\n} from './components/StoryBlock';\nimport StoryBlock from './components/StoryBlock';\nimport type { IVideoFeedProps, VideoFeedMode } from './components/VideoFeed';\nimport VideoFeed from './components/VideoFeed';\nimport type {\n CustomCTAClickCallback,\n SDKInitCallback,\n VideoFeedClickCallback,\n VideoPlaybackCallback,\n} from './FireworkSDK';\nimport FireworkSDK from './FireworkSDK';\nimport type { FWNativeContainerProps } from './FWNavigator';\nimport FWNavigator from './FWNavigator';\nimport type {\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n} from './LiveStream';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport type { AdBadgeTextType } from './models/AdBadgeConfiguration';\nimport type AdConfiguration from './models/AdConfiguration';\nimport type { VastAttribute } from './models/AdConfiguration';\nimport type AddToCartResult from './models/AddToCartResult';\nimport type FeedItemDetails from './models/FeedItemDetails';\nimport type FWError from './models/FWError';\nimport type {\n AddToCartEvent,\n CustomClickLinkButtonEvent,\n CustomCTAClickEvent,\n LiveStreamChatEvent,\n LiveStreamEvent,\n SDKInitEvent,\n ShoppingCTAEvent,\n UpdateProductDetailsEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport type IOSFontInfo from './models/IOSFontInfo';\nimport type {\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n} from './models/IOSFontInfo';\nimport LiveStreamChatEventName from './models/LiveStreamChatEventName';\nimport type LiveStreamEventDetails from './models/LiveStreamEventDetails';\nimport LiveStreamEventName from './models/LiveStreamEventName';\nimport type LiveStreamMessageDetails from './models/LiveStreamMessageDetails';\nimport type { NewNativeContainerProps } from './models/NewNativeContainerProps';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport type {\n AddToCartButtonConfiguration,\n LinkButtonConfiguration,\n ShoppingCTAButtonConfiguration,\n ShoppingCTAButtonText,\n} from './models/ProductInfoViewConfiguration';\nimport type ProductUnit from './models/ProductUnit';\nimport type { ProductPrice, ProductUnitOption } from './models/ProductUnit';\nimport type ShoppingCTAResult from './models/ShoppingCTAResult';\nimport type { StoryBlockSource } from './models/StoryBlockSource';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport type VideoFeedConfiguration from './models/VideoFeedConfiguration';\nimport type {\n VideoFeedContentPadding,\n VideoFeedPlayIconConfiguration,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n} from './models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from './models/VideoFeedSource';\nimport type VideoPlaybackDetails from './models/VideoPlaybackDetails';\nimport type { VideoPlayerSize } from './models/VideoPlaybackDetails';\nimport VideoPlaybackEventName from './models/VideoPlaybackEventName';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport type {\n VideoLaunchBehavior,\n VideoPlayerCompleteAction,\n VideoPlayerCTADelay,\n VideoPlayerCTADelayType,\n VideoPlayerCTAStyle,\n VideoPlayerCTAWidth,\n VideoPlayerStyle,\n} from './models/VideoPlayerConfiguration';\nimport type {\n AddToCartCallback,\n ClickCartIconCallback,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n ShoppingCTACallback,\n UpdateProductDetailsCallback,\n WillDisplayProductCallback,\n} from './VideoShopping';\nimport VideoShopping from './VideoShopping';\n\nexport default FireworkSDK;\n\nexport {\n AdBadgeConfiguration,\n AdBadgeTextType,\n AdConfiguration,\n AddToCartButtonConfiguration,\n AddToCartCallback,\n AddToCartEvent,\n AddToCartResult,\n ClickCartIconCallback,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n CustomClickLinkButtonEvent,\n CustomCTAClickCallback,\n CustomCTAClickEvent,\n FeedItemDetails,\n FireworkSDK,\n FWError,\n FWNativeContainerProps,\n FWNavigator,\n IOSFontInfo,\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n IStoryBlockMethods,\n IStoryBlockProps,\n IVideoFeedProps,\n LinkButtonConfiguration,\n LiveStream,\n LiveStreamChatEvent,\n LiveStreamChatEventName,\n LiveStreamEvent,\n LiveStreamEventDetails,\n LiveStreamEventName,\n LiveStreamMessageDetails,\n NewNativeContainerProps,\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n Product,\n ProductInfoViewConfiguration,\n ProductPrice,\n ProductUnit,\n ProductUnitOption,\n SDKInitCallback,\n SDKInitEvent,\n ShoppingCTAButtonConfiguration,\n ShoppingCTAButtonText,\n ShoppingCTACallback,\n ShoppingCTAEvent,\n ShoppingCTAResult,\n StoryBlock,\n StoryBlockSource,\n TrackPurchaseParameters,\n UpdateProductDetailsCallback,\n UpdateProductDetailsEvent,\n VastAttribute,\n VideoFeed,\n VideoFeedClickCallback,\n VideoFeedClickEvent,\n VideoFeedConfiguration,\n VideoFeedContentPadding,\n VideoFeedMode,\n VideoFeedPlayIconConfiguration,\n VideoFeedSource,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n VideoLaunchBehavior,\n VideoPlaybackCallback,\n VideoPlaybackDetails,\n VideoPlaybackEvent,\n VideoPlaybackEventName,\n VideoPlayerCompleteAction,\n VideoPlayerConfiguration,\n VideoPlayerCTADelay,\n VideoPlayerCTADelayType,\n VideoPlayerCTAStyle,\n VideoPlayerCTAWidth,\n VideoPlayerSize,\n VideoPlayerStyle,\n VideoShopping,\n WillDisplayProductCallback,\n WillDisplayProductEvent,\n};\n"]}
@@ -74,14 +74,14 @@ class FireworkSDK {
74
74
  }
75
75
 
76
76
  set shareBaseURL(value) {
77
- FireworkSDKModule.setShareBaseURL(value !== null && value !== void 0 ? value : '').then(() => {
78
- const valueHasChanged = this._shareBaseURL !== value;
79
- this._shareBaseURL = value;
77
+ const valueHasChanged = this._shareBaseURL !== value;
78
+ this._shareBaseURL = value;
80
79
 
81
- if (valueHasChanged) {
82
- this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);
83
- }
84
- });
80
+ if (valueHasChanged) {
81
+ this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);
82
+ }
83
+
84
+ FireworkSDKModule.setShareBaseURL(value !== null && value !== void 0 ? value : '');
85
85
  }
86
86
 
87
87
  /**
@@ -93,16 +93,16 @@ class FireworkSDK {
93
93
  }
94
94
 
95
95
  set adBadgeConfiguration(value) {
96
- FireworkSDKModule.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {}).then(() => {
97
- var _this$_adBadgeConfigu, _this$_adBadgeConfigu2, _this$_adBadgeConfigu3;
96
+ var _this$_adBadgeConfigu, _this$_adBadgeConfigu2, _this$_adBadgeConfigu3;
98
97
 
99
- const valueHasChanged = ((_this$_adBadgeConfigu = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu === void 0 ? void 0 : _this$_adBadgeConfigu.badgeTextType) !== (value === null || value === void 0 ? void 0 : value.badgeTextType) || ((_this$_adBadgeConfigu2 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu2 === void 0 ? void 0 : _this$_adBadgeConfigu2.backgroundColor) !== (value === null || value === void 0 ? void 0 : value.backgroundColor) || ((_this$_adBadgeConfigu3 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu3 === void 0 ? void 0 : _this$_adBadgeConfigu3.textColor) !== (value === null || value === void 0 ? void 0 : value.textColor);
100
- this._adBadgeConfiguration = value;
98
+ const valueHasChanged = ((_this$_adBadgeConfigu = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu === void 0 ? void 0 : _this$_adBadgeConfigu.badgeTextType) !== (value === null || value === void 0 ? void 0 : value.badgeTextType) || ((_this$_adBadgeConfigu2 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu2 === void 0 ? void 0 : _this$_adBadgeConfigu2.backgroundColor) !== (value === null || value === void 0 ? void 0 : value.backgroundColor) || ((_this$_adBadgeConfigu3 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu3 === void 0 ? void 0 : _this$_adBadgeConfigu3.textColor) !== (value === null || value === void 0 ? void 0 : value.textColor);
99
+ this._adBadgeConfiguration = value;
101
100
 
102
- if (valueHasChanged) {
103
- this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);
104
- }
105
- });
101
+ if (valueHasChanged) {
102
+ this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);
103
+ }
104
+
105
+ FireworkSDKModule.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {});
106
106
  }
107
107
 
108
108
  /**
@@ -262,7 +262,7 @@ class FireworkSDK {
262
262
 
263
263
 
264
264
  openVideoPlayer(url, config) {
265
- FireworkSDKModule.openVideoPlayer(url, config !== null && config !== void 0 ? config : {});
265
+ FireworkSDKModule.openVideoPlayer(url, config);
266
266
  }
267
267
  /**
268
268
  * Records the user purchase. Only supported on iOS.
@@ -288,6 +288,11 @@ class FireworkSDK {
288
288
 
289
289
  if (result) {
290
290
  this.updateInternalAppLanguage(language);
291
+ const languageChanged = this._appLanguage !== language;
292
+
293
+ if (languageChanged && Platform.OS === 'ios') {
294
+ this.navigator.stopFloatingPlayer();
295
+ }
291
296
  }
292
297
 
293
298
  return result;
@@ -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","OS","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","userId","openVideoPlayer","config","trackPurchase","parameters","changeAppLanguage","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 * @deprecated The get accessor will be deprecated since RN SDK V2.0.\n */\n public get customCTALinkContentPageRouteName(): string | undefined {\n return this._customCTALinkContentPageRouteName;\n }\n /**\n * @deprecated The set accessor will be deprecated since RN SDK V2.0.\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 * @deprecated The get accessor will be deprecated since RN SDK V2.0.\n */\n public get appComponentName(): string | undefined {\n return this._appComponentName;\n }\n /**\n * @deprecated The set accessor will be deprecated since RN SDK V2.0.\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 | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\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 if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\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 | undefined | null} language Such as en, ar and en-US\n * If language is null or undefined or empty string, we will use system language.\n * @returns\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n if (result) {\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\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","customCTALinkContentPageRouteName","_customCTALinkContentPageRouteName","setCustomCTALinkContentPageRouteName","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","valueHasChanged","eventEmitter","emit","ShareBaseURLUpdated","setShareBaseURL","adBadgeConfiguration","_adBadgeConfiguration","badgeTextType","backgroundColor","textColor","AdBadgeConfigurationUpdated","setAdBadgeConfiguration","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","OS","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","userId","openVideoPlayer","config","trackPurchase","parameters","changeAppLanguage","result","languageChanged","stopFloatingPlayer","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 * @deprecated The get accessor will be deprecated since RN SDK V2.0.\n */\n public get customCTALinkContentPageRouteName(): string | undefined {\n return this._customCTALinkContentPageRouteName;\n }\n /**\n * @deprecated The set accessor will be deprecated since RN SDK V2.0.\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 const valueHasChanged = this._shareBaseURL !== value;\n this._shareBaseURL = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n FireworkSDKModule.setShareBaseURL(value ?? '');\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 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 FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n /**\n * The app component name.\n *\n * @deprecated The get accessor will be deprecated since RN SDK V2.0.\n */\n public get appComponentName(): string | undefined {\n return this._appComponentName;\n }\n /**\n * @deprecated The set accessor will be deprecated since RN SDK V2.0.\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 | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\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 if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\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 | undefined | null} language Such as en, ar and en-US\n * If language is null or undefined or empty string, we will use system language.\n * @returns\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n if (result) {\n this.updateInternalAppLanguage(language);\n const languageChanged = this._appLanguage !== language;\n if (languageChanged && Platform.OS === 'ios') {\n this.navigator.stopFloatingPlayer();\n }\n }\n return result;\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n}\n\nexport default FireworkSDK;\n"]}